{"id":2947,"date":"2010-09-16T08:02:53","date_gmt":"2010-09-16T06:02:53","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=2947"},"modified":"2010-09-16T08:02:53","modified_gmt":"2010-09-16T06:02:53","slug":"openark-kit-facebook-online-schema-change-and-thoughts-on-open-source-licenses","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/openark-kit-facebook-online-schema-change-and-thoughts-on-open-source-licenses","title":{"rendered":"openark-kit, Facebook Online Schema Change, and thoughts on open source licenses"},"content":{"rendered":"<p>MySQL@Facebook team have recently published an <a href=\"http:\/\/www.facebook.com\/note.php?note_id=430801045932\">Online Schema Change<\/a> code for non blocking ALTER TABLE operations. Thumbs Up!<\/p>\n<p>The code is derived from <em>oak-online-alter-table<\/em>, part of <a href=\"http:\/\/code.openark.org\/forge\/openark-kit\">openark-kit<\/a>, a toolkit I&#8217;m authoring. Looking at the documentation I can see many ideas were incorporated as well. And of course many things are different, a lot of work has been put to it by MySQL@Facebook.<\/p>\n<p><em>openark-kit<\/em> is currently released under the new BSD license, and, as far as I can tell (I&#8217;m not a lawyer), Facebook&#8217;s work has followed the license to the letter. It is a strange thing to see your code incorporated into another project. While I knew work has begun on the tool by Facebook, I wasn&#8217;t in on it except for a few preliminary email exchanges.<\/p>\n<h4>And this is the beauty<\/h4>\n<p>You release code under open source license, and anyone can pick it up and continue working on it. One doesn&#8217;t have to ask or even let you know. Eventually one may release back to the community improved code, more tested (not many comments on <em>oak-online-alter-table<\/em> in the past <strong>18<\/strong> months).<\/p>\n<p>It is a beauty, that you can freely use one&#8217;s patches, and he can then use yours.<\/p>\n<h4>And here is my concern<\/h4>\n<p>When I created both <em>openark-kit<\/em> and <em>mycheckpoint<\/em>, I licensed them under the BSD license. A very permissive license. <em>Let anyone do what they want with it<\/em>, I thought. However Facebook&#8217;s announcement suddenly hit me: what license would other people use for their derived work?<\/p>\n<p>The OSC has been release under permissive license back to the community (again, I am not a lawyer). But, someone else could have made it less friendly. Perhaps not release the code at all: just sell it, closed-source, embedded in their product. And I found out that <em>I do not want anyone to do whatever they want with my code<\/em>.<\/p>\n<h4>I want all derived work to <em>remain open<\/em>!<\/h4>\n<p>Which is why in next releases of code I&#8217;m authoring the license will change to <em>less permissive<\/em> and <em>more open<\/em> license, such as GPL or LGPL. (Of course, all code released so far remains under the BSD license).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MySQL@Facebook team have recently published an Online Schema Change code for non blocking ALTER TABLE operations. Thumbs Up! The code is derived from oak-online-alter-table, part of openark-kit, a toolkit I&#8217;m authoring. Looking at the documentation I can see many ideas were incorporated as well. And of course many things are different, a lot of work [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5],"tags":[49,57,34,51],"class_list":["post-2947","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-mycheckpoint","tag-open-source","tag-openark-kit","tag-opinions"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-Lx","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/2947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/comments?post=2947"}],"version-history":[{"count":12,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/2947\/revisions"}],"predecessor-version":[{"id":2959,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/2947\/revisions\/2959"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=2947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=2947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=2947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}