Drupal 9 is expected to be released on time in June 2020. Are the most popular modules ready? How are we at MD Systems helping in the D9 readiness effort?
It’s more and more likely that Drupal 9 will be released on the first possible date: June 3rd 2020. After the extensive work done before the initial beta deadline, it has been extended by two weeks and that has paid off. The community has made impressive progress in the last three weeks, managing to fix almost 50 beta blockers. This means that Drupal 9.0.0-beta1 will be released this week and we will most likely see a stable Drupal 9.0.0 release on the 3rd of June this year.
What about modules and themes?
The contrib space is not lagging much behind. Looking at the 20 most used modules, half of them have either a stable or a dev version that is Drupal 9 compatible and almost the entire other half has a working patch.
10 have compatible stable or dev versions:
- Admin toolbar,
- Entity Reference Revisions,
- Inline entity form,
- Simple sitemap,
Video embed field is now compatible as well but encourages migrating to core provided solutions.
The other 10 have either a patch ready to be committed or need additional work:
- Google analytics: #3072207,
- Metatag: #3042590,
- Field group: #3109552,
- Webform: #3042594,
- Captcha: #3102288,
- Devel: #3042575,
- Entity Browser: #3111564,
- Bootstrap: #3096963,
- Search API: #3023170,
Note: this is the status as of 17th March, with the beta release almost upon us, we expect that most of these modules will soon be ready as well.
The Global contribution weekend organized in January helped move things forward, with the Swiss community playing an important role adding almost 20% of the contributions.
Helping with Drupal 9 readiness
At MD Systems we maintain multiple internal install profiles that cumulatively rely on more than 120 contrib modules. This means that we have been actively working on, or at least closely monitoring, the progress of those modules.
If we look for example at the state of our Primer distribution we see that 44 of the 75, or 58% of the modules used now have either a stable or a development release that is D9 compatible. 31% of the modules have patches that are waiting to be committed. And work is needed on only 11% of those modules. These numbers are based on deprecation inspection tools and automated tests, so it’s likely that new issues will surface with manual reviews after the update.
We maintain or help maintain 5 of the 10 most used D8 modules, therefore we have focused especially on those. All of these 5 modules are now Drupal 9 compatible. Besides that, almost half (49%) of the 47 modules we maintain are D9 compatible and 21% have issues ready, leaving 30% needing additional work.
We are committed to pushing the D9 readiness effort further on both the modules we help maintain and the ones we use.
We already started testing with the current Drupal 9 branch and identifying various issues that didn't surface from either drupal-check or simpletest runs. That already lead to fixing multiple issues in the install profile itself, as well as some issues in the modules we use.
We are also available for consulting with updating sites to Drupal 9 as well as working on specific contributed projects.
When can projects use Drupal 9?
As we’ve explained in a previous blog post, most projects will likely be able to update to Drupal 9 quite soon after the initial release. Still, many projects use dozens to a hundred or more contributed projects and every single one of them will need to be Drupal 9 compatible (at the very least, that involves defining that in its .info.yml file).
Until that is the case for all dependencies of a project, we recommend to build projects based on Drupal 8.8 and 8.9 once it is released. Ensure not to use any deprecated APIs in custom code, keep an eye on Drupal 9 compatibility when deciding on which modules to use and update once it is possible. Almost all APIs from Drupal core are also available in Drupal 8.8 and 8.9, with the exception of the underlying frameworks like Symfony, Twig and JS libraries.
Drupal 9 testing for early adopters
To start testing Drupal 9 in our projects, you can use an alias to install it as Drupal 8 for the modules that do not yet declare themselves as compatible with Drupal 9:
composer require "drupal/core:9.0.0-beta1 as 8.8.4"
However, be prepared to also require a lot of development versions and extra patches in the current state.