Happy Birthday Drupal 8
By Daniel Schiavone on November 19, 2017
Drupal 8 was released two years ago on November 19, 2015 but the latest version really came of age in 2017. Before this year, building on Drupal 8 was an adventure filled with custom code, limited contributed modules, and dependency roadblocks. Every Drupal release is followed by several months when contributed modules are catching up - but Drupal 8 changed the way we code.
As of today there are 1,496 modules with stable releases for Drupal 8. But until recently there have been some notable omissions. Back in April when the community was sprinting at DrupalCon Baltimore there was still a lot of work to be done with Media and we didn’t have a working release for Rules. Essential modules like these are installed on most Drupal sites. Building without these modules necessitates custom code or less desireable solutions. We’re just getting to the point where the most popular modules have caught up.
Updating contrib modules has also been made more complicated by some major changes introduced in recent point releases. Each of the last two major point releases has introduced APIs that other modules depend on. For example, the 8.3 release included a Layout API that supplies the underpinnings for popular modules like Display Suite, Panelizer and Panels. Though the capabilities introduced by the new Layout API propel Drupal into a whole new level of functionality, the update also sent a waves of updates into the contributor community. For more about Layouts see Dries’ post “An update on the Layout Initiative for Drupal 8.4/8.5”.
Similarly, the inclusion of Media API in the Drupal 8.4 release this October opened a floodgate of changes needed for Media related modules. Many Media module maintainers are just catching up with necessary adjustments. The new release schedule makes module updates more complicated than what we’re used to.
There were many big changes in Drupal 8 but in many ways the most dramatic change was the move to a semantic versioning. And as we’ve seen with the last two point releases major functionality and APIs are getting introduced regularly. For site owners this means a constant flow of new capabilities and functionality. But this also means more complicated point updates necessitating additional testing and patches for modules. The trade off is well worth the steady advancement were seeing. In 2017 we all had to learn to step into point releases cautiously and budget time accordingly.
When a major Drupal release arrives those of us who build on the platform immediately find ourselves trying to answer questions like, “When should I upgrade?” or “Should I build this new site with the latest Drupal”. Until this year the answers to these questions have depended on specific information about a project. How complex is the project? How long will the project take? Back in November 2015 I even posted a Drupal upgrade decision tree. For new sites the decision is simple: Build in Drupal 8. The decision to upgrade Drupal 7 is still a bit complicated.
Drupal 7 will be supported for a while yet. Historically, version support has been tied to Drupal releases but this is likely to change as evidenced by the discussion on the release cycle page. Back in November 2015 in my post, “When will support end for Drupal 6?”, I estimated end of life for Drupal 7 would occur at the beginning of 2019. That date seems too soon now. Right now there’s not a lot of chatter about Drupal 9. Besides, there’s too much work being done on the Drupal 8 ecosystem anyway. And even if a new version could be released in two or three years, support for Drupal 7 is likely to continue for some time after that. There’s just too large of an installed base. We don’t know when we’ll have to upgrade Drupal 7 sites but it’s not going to be soon.
If you’re ready to move to Drupal 8 you’ll be happy to know that there’s a lot of work being done on making upgrades easier. Check out the tools and processes we already have for upgrading Drupal 6 and 7 sites to Drupal 8. We’ll be ready when the time comes.