As everyone in the Drupal community knows, Drupal 8 was a major shift in the way the software was built and will be developed into the future. Prior to Drupal 8, each major release essentially caused major rewrites for core and all of the contributed modules. Drupal 8 aimed to fix this; moving forward, Drupal upgrades will be easy and fast. You get a great return on investment upgrading to D9 because you can seamlessly upgrade to Drupal 10, then 11.
Development is looking forward to newer versions, not looking back. This is great news if you want to upgrade to Drupal 9. Over half of the top 50 D7 contrib modules have versions which are Drupal 9 compatible or have compatible releases in progress. Many or all of the features you rely on are ready to go in the new versions.
Upgrading modules to Drupal 8 or greater has been an iterative process, like previous versions. Issue trackers, sprints, and focused sessions helped move many of the major modules into readiness for later versions. There aren't many sprints for Drupal 7 development anymore, but there are people working to upgrade D7 modules to D8 and D9.
What does that really mean for my most important modules?
There are two major ways that Drupal 7 module upgrades are being tracked:
The project has a very useful link: Upgrading and converting Drupal 7 modules | Drupal guide on Drupal.org to help contributors upgrade their projects. Once that’s completed, moving forward towards Drupal 9 and beyond seems much less difficult. There’s still activity in this area, as interested parties try to make their final moves off of the EOL versions of Drupal.
Of the top 50 Drupal 7 contrib modules (according to Drupal's Module project page:
- Thirty three (66%) are Drupal 9 compatible, converted to a D9 compatible project, or are in progress on compatibility.
- Sixteen modules (32%) are in core, or merged with other projects.
That’s nearly all of the top 50. Only one has a D8 release but is not currently listed as compatible with D9 - Module Filter.
Overwhelmingly, this means that sites using the most popular modules can start upgrading to Drupal 9 more easily, because the functionality they need and use may already mostly exist.
Of the top 50 most installed Drupal 7 modules, these went into core in Drupal 8:
- Localization update
- D7 Media
- Entity reference
- jQuery update
Additionally, the Entity API module is aiming to move into core.
Many of these modules were moved into core as part of Community Initiatives - tasks that were large, but important enough for the community to raise their voices. Initiatives important enough stand up and make the effort to make this code available to everyone when they first install Drupal, without requiring additional research or configuration on the part of an inexperienced user.
What isn’t available?
It’s a little hard to say - on one hand, we know some of the big ‘useful to nearly everyone’ modules went into core either in Drupal 8, or Drupal 9. While the list available for Drupal 9 is over 6,100 modules and growing daily, it’s nowhere near the number of modules available for Drupal 7 - 14,500+. While many modules moved into core, or were deprecated, there’s still a fair amount of discrepancy.
Comparing the top 50 modules in Drupal 7 to the top 50 modules in Drupal 9, 17 modules have overlap between the lists. 17 modules went into core or were deprecated (often by being merged into other projects that went into core). The number of issues in the contrib tracker are relatively small, especially in comparison to the size of Drupal core’s queue. If you’re not running a lot of custom code, there’s a good chance you can upgrade without losing much, if any, functionality.
What if I have custom code?
Even if your website is dependent a little - or a lot - on custom code, you may not have as tough a time upgrading as you think. Many upgrade tools exist to help you understand the complete scope of your upgrade process, from deprecated code, to revised modules, to data conversion. Making a plan to convert your custom code might be the first step in your upgrade process.
Looking to the future
Because Drupal 9 and Drupal 10 are directly connected, building on previous code, ‘major version’ upgrades should continue to be significantly less difficult than the initial jump from Drupal 7. If you’re ready to make that jump, Tag1 is here to help you.