{"id":879,"date":"2007-08-10T11:11:30","date_gmt":"2007-08-10T01:11:30","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/2007\/08\/10\/thoughts-on-mysql-release-cycle\/"},"modified":"2009-02-21T13:45:46","modified_gmt":"2009-02-21T03:45:46","slug":"thoughts-on-mysql-release-cycle","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2007\/08\/10\/thoughts-on-mysql-release-cycle\/","title":{"rendered":"thoughts on MySQL release cycle"},"content":{"rendered":"<p>Thoughts on latest changes:<\/p>\n<ul>\n<li>don&#8217;t think there&#8217;s really much to it.<\/li>\n<li>I rather disagree with t<a href=\"http:\/\/rss.slashdot.org\/~r\/Slashdot\/slashdot\/~3\/142556270\/article.pl\">his slashdot headline<\/a> (MySQL Closing Off Its Source) as I just don&#8217;t think it&#8217;s true.<\/li>\n<\/ul>\n<p>However, I have other thoughts (that are a lot more interesting to discuss):<\/p>\n<p>We should:<\/p>\n<ul>\n<li>Release major version every 6 months. e.g. N.0, N.2, N.<\/li>\n<li>Odd numbers are used during the 6months of development, with very frequent releases. In fact, with a strict policy of keeping pushbuild green, you could automate this. Yes, some of these releases would be utter shit due to whatever problem seeped in. Get over it &#8211; it&#8217;s called a development release.\n<ul>\n<li>No new features merged for last 3 months of cycle for release.<\/li>\n<li>source only releases&#8230; if you can&#8217;t build from source then you&#8217;re too stupid to run this. (or, diplomatically &#8220;you shouldn&#8217;t run this&#8221;)<\/li>\n<li>For features that take longer than 3 months, we can have a &#8220;-proposed&#8221; patch set. i.e. a staging area for new things before they go in.<\/li>\n<\/ul>\n<\/li>\n<li>Minor versions to latest N.x when needed (N.x.z)\n<ul>\n<li>Until the next N.x version, where N.x-1 is forgotten. I mean forgotten as in no patches at all&#8230; others can if they care.<\/li>\n<\/ul>\n<\/li>\n<li>Pick a N.x and support it for Y years (a good N.x that is)\n<ul>\n<li>i.e. provide N.x.z<\/li>\n<li>this can be our &#8220;RHEL&#8221; so to speak.<\/li>\n<li>fixes go here.<\/li>\n<li>call it &#8216;enterprise&#8217; or whatever.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Past problems:<\/p>\n<ul>\n<li>5.0 took too long to get to a real GA status\n<ul>\n<li>A bunch of things were broken in that release cycle&#8230; Although I joined it relatively late.<\/li>\n<li>It&#8217;s been a decent release for a good while now, so that&#8217;s a good thing.<\/li>\n<\/ul>\n<\/li>\n<li>5.1 has taken too long to get to GA\n<ul>\n<li>good news is that 5.1 at GA should be a lot better than 5.0 at GA<\/li>\n<li>As a developer I can honestly say I think we&#8217;ve improved processes a lot for making sure that a release doesn&#8217;t suck.\n<ul>\n<li>and as a result of this&#8230; I feel like 5.1 is the release where a lot of this stuff is fixed, and others should go a lot smoother.<\/li>\n<\/ul>\n<\/li>\n<li>It&#8217;s passed the <a href=\"http:\/\/www.flamingspork.com\/blog\/2006\/04\/19\/beat-on-state-of-the-dolphin-or-why-software-is-never-really-ready-until-a-20-release\/\">dot-twenty rule<\/a> for a release that doesn&#8217;t annoy you.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>There are a lot of things looking good and being done right too (or if not right, a lot better than a year or two ago). e.g.<\/p>\n<ul>\n<li>NDB -telco (Carrier Grade Edition) releases<\/li>\n<li>worklog (open to the wider web)<\/li>\n<li>forge<\/li>\n<li>bugs db<\/li>\n<li>commits, code reviews and all that<\/li>\n<\/ul>\n<p>Things we should fix with commits, code review and all that:<\/p>\n<ul>\n<li>drop the commits list all together except for crazy people.<\/li>\n<li>everything posted to internals@lists for review, and reviews take place there\n<ul>\n<li>or IRC or whatever&#8230; but outcome posted there<\/li>\n<\/ul>\n<ul>\n<li> hrrm&#8230; i should make people do that to get me to review things&#8230; (i.e. i should listen to myself)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Things we should fix internally:<\/p>\n<ul>\n<li>We should have 20% time&#8230; if only for random MySQL related things&#8230; lots of cool stuff has come out of engineers just hacking&#8230; even when we weren&#8217;t 100% meant to.<\/li>\n<\/ul>\n<p>Things I don&#8217;t think will happen but could be useful&#8230;:<\/p>\n<ul>\n<li> dropping commercially licensed product\n<ul>\n<li>It would be really nice to use\u00c2\u00a0 GPL licensed libraries around the place instead of either having #ifdef or reinventing the wheel.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>What if it all goes proprietary:<\/p>\n<ul>\n<li>Some people speculate this could happen. Well, what then happens is a crapload of engineers leave the company &#8211; and not on good terms. So at least unlikely to happen without a massive implosion.<\/li>\n<li>I&#8217;ll say it here: if the code I&#8217;m writing isn&#8217;t available under the GPL (or other good free software license), I&#8217;m looking for work (and you should contact me with offers).<\/li>\n<\/ul>\n<p>My thoughts on the non-free Network Monitoring and Advisory Service:<\/p>\n<ul>\n<li>It&#8217;s not free software&#8230; so really isn&#8217;t interesting to me personally.<\/li>\n<li>Others see it differently and attach value to it &#8211; good for them. I hear it makes us money as well &#8211; which does keep me in adequate supplies of scotch.<\/li>\n<li>I have used it a bit and it is quite neat &#8211; so hats off for a neat product.<\/li>\n<\/ul>\n<p>P.S. there&#8217;s nothing here I wouldn&#8217;t say to anybody&#8230; and they&#8217;re welcome to disagree (and they do&#8230; sometimes even for good reasons).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thoughts on latest changes: don&#8217;t think there&#8217;s really much to it. I rather disagree with this slashdot headline (MySQL Closing Off Its Source) as I just don&#8217;t think it&#8217;s true. However, I have other thoughts (that are a lot more &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2007\/08\/10\/thoughts-on-mysql-release-cycle\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/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,"font":"","enabled":false},"version":2}},"categories":[14],"tags":[628,54,121],"class_list":["post-879","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-mysql","tag-ndb","tag-release"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-eb","jetpack-related-posts":[{"id":3813,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/10\/08\/quick-mysql-5-7-5-thoughts\/","url_meta":{"origin":879,"position":0},"title":"Quick MySQL 5.7.5 thoughts","author":"Stewart Smith","date":"2014-10-08","format":false,"excerpt":"It was great to see the recent announcement of MySQL 5.7.5 over at the MySQL Server Team blog. I'm looking forward to throwing this release at some of the POWER8 systems we have for a couple of really good reasons: 1) Does it work better than previous MySQL 5.7 releases\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3697,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/03\/11\/ghosts-of-mysql-past-part-8-the-first-fork\/","url_meta":{"origin":879,"position":1},"title":"Ghosts of MySQL Past, Part 8: The First Fork.","author":"Stewart Smith","date":"2014-03-11","format":false,"excerpt":"This is the 8th installment in the rather long series that started with Part 1 about a month ago. Back in 2006, we were in the situation where MySQL 5.0 had taken forever, and the first \"GA\" release was not suitable for production. Looking towards MySQL 5.1, it was also\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3235,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/05\/mysql-code-size\/","url_meta":{"origin":879,"position":2},"title":"MySQL code size over releases","author":"Stewart Smith","date":"2013-03-05","format":false,"excerpt":"As the start of a bit of a delve into the various MySQL branches and patch sets that have been around, let's start looking at the history of MySQL itself. This is how big MySQL has been over all of the major releases since the beginning (where beginning=3.23). (edit: These\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"increase in MySQL source code size over version","src":"https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=1&zx=5h67vlc175bd","width":350,"height":200,"srcset":"https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=1&zx=5h67vlc175bd 1x, https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=1&zx=5h67vlc175bd 1.5x"},"classes":[]},{"id":3505,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/10\/11\/the-road-to-percona-server-5-6\/","url_meta":{"origin":879,"position":3},"title":"The road to Percona Server 5.6","author":"Stewart Smith","date":"2013-10-11","format":false,"excerpt":"Over a year ago now, I announced the first Percona Server 5.6 alpha on the Percona MySQL Performance Blog (Announcing Percona Server 5.6 Alpha). That was way back on August 14th, 2012 and it was based on MySQL 5.6.5 released in April. I'm really happy now to point to the\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2353,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/04\/12\/innodb-and-memcached\/","url_meta":{"origin":879,"position":4},"title":"innodb and memcached","author":"Stewart Smith","date":"2011-04-12","format":false,"excerpt":"I had a quick look at the source tree (I haven't compiled it, just read the source - that's what I do. I challenge any C\/C++ compiler to keep up with my brain!) that's got a tarball up on labs.mysql.com for the memcached interface to innodb. A few quick thoughts:\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3793,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/09\/19\/mysql-5-6-20-on-power\/","url_meta":{"origin":879,"position":5},"title":"MySQL 5.6.20 on POWER","author":"Stewart Smith","date":"2014-09-19","format":false,"excerpt":"It's been a little while since I blogged on MySQL on POWER (last time was thinking that new releases would be much better for running on POWER). Well, I recently grabbed the MySQL 5.6.20 source tarball and had a go with it on a POWER8 system in the lab. There\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=879"}],"version-history":[{"count":2,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/879\/revisions"}],"predecessor-version":[{"id":1508,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/879\/revisions\/1508"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}