Upgrading is synonymous to enhancement and an enhancement can never be a bad thing. Yet, upgrading has always been considered as something that is complex, time- consuming and hard to adjust to. Drupal has always gotten better - more efficient & more user-friendly with every major version release. It has always added more features to the core so that developers do not have to add additional modules for a lot of basic and complex functionalities.
While the changes have always been huge and progressive from upgrades like Drupal 7 to 8, there was undoubtedly a steep learning curve, a sudden change and a difficult upgrade path. Dries Buytaert, the founder of Drupal, and his team of devout developers, always envisioned Drupal version upgrades to have a simpler approach while making the learning curve smoother and faster. They not only wished for it; they worked towards it and how! I think they’ve found a brilliant solution to this issue that also addresses a couple of other challenges too.
Drupal has been successfully around for about 17 years now because of its ability to accept and integrate colossal changes with every upgrade for it to be able to catch up with the current technology needs. Drupal’s culture of breaking backward compatibility between version upgrades also helped them to innovate and focus better on the forward-looking changes.
However, it not only took users a lot of time to adjust with the new version updates but users also had to wait for a long time for fixes, updates and upgrades. This not just took a toll on the users but also on the core contributors as well since there would be very long release cycles, expensive and complex upgrade path and less incentives to them because of the lengthy release cycles.
To address all these issues, the Drupal core team decided to evolve their philosophy from the release of Drupal 8. Instead of big and long releases, their goal now is to continuously innovate and be able to make small but effective and frequent updates and upgrades. This will make the learning curve smoother, faster and easier to absorb. It also means API additions, new features, easy upgrade paths would be a part of the frequent Drupal version releases! Isn’t that just awesome?! The semantic versioning scheme would typically look like – major.minor.patch. For example, Drupal 8.1.0. Also, minor releases with new features and functionalities are scheduled to come out twice a year for predictability. Modules, themes and distributions will also be provided with smooth upgrades from one minor release to the other. So upgrading from say Drupal 8.1 to 8.2 will be as simple as updating for a security release or bug fix.
What about major version updates?
Now, this continuous innovation module will also help us out here as the changes are small and frequent so the learning curve and upgrade path will definitely be a smooth transition which will gradually help us land into a major version. With the introduction of new features and APIs, the old systems will need to be deprecated – which typically means that it should be suspended from use without entirely removing them. Module maintainers will be encouraged to update the modules to the new systems which means that custom code and modules will continue to work.
When more new APIs, modules and features are introduced in the minor releases of Drupal 8, there will be more and more deprecated code accumulated. That’s when Drupal 9 will be released which will be just like your previous minor version release of Drupal 8 but without all the deprecated code. So upgrading from Drupal 8’s last release version to Drupal 9 will be as easy and simple as upgrading from one minor release to the other. Why upgrade to Drupal 9 after all? Well, Drupal 9 will have some amazing new features while Drupal 8 will not be added with anything new.