Drupal release cycles, time will tell

My Watch Broke!

Today, it is 614 weeks ago that Drupal 1.0 has been released, 4.295 days in the past, or 103.080 hours ago. During this time period, the Drupal community released 14 major versions, from 1.0 to 7.0. The new release is planned around mid august 2013 and hence will be the 15th major release. For those less in to the history of Drupal releases but can count and think that 8.0 as the 15th major release doest add up, it doesn't. Between 4.0 and 5.0 we spend 5 years releasing 4.1 up to 4.7, in our numbering scheme back then major releases.

During all these versions the Drupal community supported the current version and the version before. So with 7 being the current major release, we also support the 6 release that first saw the light of day on 13 february 2008 and will continue to do so up to around 15th of august 2013. Work on Drupal 6 started around december 2006, six and a half years ago by the time Drupal 8 will be released.

During all these versions the Drupal community had a no backwards compatibility philosophy. Modules that work in version 6 will not work in version 7. So for many of the thousands of modules we host on Drupal.org we have a stable and a development release for version 6 of Drupal and for version 7.

Today is also the day that people are using SaaS for all kinds of services. People and companies rely on the Google mail and experience a new version of this product on a daily basis, even without knowing it or seeing the difference cosmetically. Today people have hundreds of apps installed on their tablets and phones and upgrade those on a weekly or even daily basis at a touch of a finger.

Today is also the day that a manufacturer like Apple releases new major OS versions every year at extremely low prices and with a low barriers when it comes to the upgrade pain. Ubuntu -a leading Linux distribution package company- releases new versions of their product time boxed, complete predictable. Every 6 month users have the latest supported Linux distribution available and can update and upgrade with great ease.

Days between major Drupal releases in line graph

I often explained Drupal’s lack of backwards compatibility towards users and customers as “Breaking with yesterday, building tomorrow”. Comparing it to Windows 7 that contains code of Windows XP, windows ME, Windows 95, Windows 3.11 and even all the way up to emulating code of MS-DOS 6.2. In order to move forward, we break with supporting the past unlike that product of Microsoft. Where Microsoft had to put every piece of history in its backpack when stepping forwards and carry all the weight of the history around towards the future, the Drupal community could break with yesterdays code and API’s and jump towards a brand new tomorrow.

Today I have problems saying so. Microsoft isn't the dominant example anymore and as stated, the competitors like Google, Apple and Linux are moving towards a “real time” experience of their products where users can enjoy the tools of today that have been build for them today on technologies available today.

With this in mind, it is good to look back at Dries’ last talk during the most excellent DrupalCon Munich. In a small room that was completely packed, Dries hinted around on what Drupal might be in the future. As always, he choose his words wisely and made sure what he said could be a thought experiment and might or might not happen, no promises no demands.

Days between major Drupal releases in pie chart

One of the things Dries hinted at that not many people seem to have picked up on, was that Drupal should be shortening it’s release cycles, towards for example half a year. And when you shorten your release cycle like that, you have to make sure that upgrades are cheap. Meaning you must stop our mantra of breaking compatibility between major versions. I do think that a new way of looking at our releases (what) and cycles (when) is more then needed.

the passenger

Today planning and sticking to the plan is just as hard as it was yesterday. And hence even when we aim at an 18 month release cycle we end up with twice the amount in a code slush. Note though that even the18 month was derived from looking at the past, like steering a car by looking rearview mirror. It is possible, but assumes conditions remain constant.

While we know that the Ceteris Paribus world is not real, the world is continuously changing and the constant being that people constantly say that the change is only going faster. And in fact, even if the conditions in the future are the same, fact is that we as a community are in the risk of being overtaken by the past, proprietary CMS-es and other open source CMS-es that have been looking up towards us up to now.

Today I don't know what the answer is for the best release date of Drupal 9 and higher. But I do know that the current release cycles are breaking us up. I have seen very talented frontend designers quit Drupal because they didnt want to work anymore with outdates templates systems or jQuery versions. But, didn’t they want to “scratch their own itch?”. Sure they did, they just scratched it on another place, not in Drupal. I think Dries and others know that something has to change, I do not know the answer, but I would welcome a timeboxed (half a year) cycle and 3 older versions supported with backwards compatibility. Or an Long Term Support version next to more cutting edge version. Or something Dries will come up with on the next month.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Bert, almost a year ago I

Bert, almost a year ago I wrote something very similar, http://steveburge.com/blog/general-cms-issues/no-upgrades/

That post isn't nearly as detailed as yours, but the key point is the same: times have changed.

5 years ago no-one expected software to update smoothly from version to version. Now users don't expect anything less.

The problem is not only the

The problem is not only the recycle time, but also the 'smoothness' to upgrade from one version to another. Upgrading is a real PITA, considering the many problems. You have practically start over with a website when a new major comes (a little bit overreacting, but you get the point).

Old jQuery versions could be

Old jQuery versions could be a thing of the past once 8.x is out: http://drupal.org/node/1787222

The time is right

Bert,

As you know, I've been a longtime user and observer of Drupal. We've heard for a very long time people complaining that there is no backward compatibility between the Drupal release, but until now there hasn't been a very compelling argument to change the Drupal culture. I think you hit it right on the head though that times have changed due to SaaS and also with what the ecosystem at large is doing.

Also, by providing backward compatibility you also provide additional incentive for site owners to upgrade much more quickly to the latest version of Drupal. I still have a few D6 sites that I'm reluctant to move over to D7. When D7 came around there were few contributed modules available that I needed and now that it's been so long since I've looked at the D6:D7 variances, I've lost some of my D6 to D7 mojo (and quite frankly don't have the time). To go with your battle cry for shorter release cyles, I would argue that D9 should focus on one change and only one change...the architecture and API system changes required to provide backward compatibility.

Understand the breadth of

Understand the breadth of change in the framework and you'll find that the current cycle is necessary and well measured. This might be an issue for some who will migrate away from Drupal and onto another CMS. Surprisingly, no wars will break out and no children will starve because of this.

Blessing/curse of bloated core

With all the hoopla over Drupal core becoming bloated recently, there is an upside that figures into this equation. As core begins to handle more and more of the heavy lifting (entities, views, mobile theming, wysiwyg etc.) modules can become lighter and faster to retool. This streamlines and enhances the module development cycle, thereby allowing a faster transition to newer versions. People tend to forget that the biggest delays in Drupal 7 centered around critical add-on modules, not core itself. I'm actually looking forward to a far more robust Drupal 8 that takes care of many of the modern issues that have previously been addressed by the module community.

every time when Drupal

every time when Drupal release a new major verison, developers have to re-learn it and customer as well. Drupal should try to shorten it's development time and focus on less mission with every release. (either focus on UI / Code changes.)