Is it (still) too early to give Drupal 9 a try? To start fresh and build a website from scratch in the latest version of Drupal?
Should you stick to Drupal 8 for... a little longer and upgrade later?
How difficult will it be for you to find compatible Drupal 9 modules (and themes)?
Let's find out:
1. But First: Why Drupal 9?
What are the biggest benefits of Drupal 9 over Drupal 8?
Why would you choose precisely this version of Drupal to build your new website with?
- because of the automated updates that it makes possible
- because of the headless support that it ships with
- because of the robust multilingual capabilities
- because of the improved performance: your web pages will load faster thanks to the BigPipe technology
- because it removes a lot of the legacy code
- because of its layout features
- because of its extensibility: you get to incorporated third-party systems quick and easy
- because of its media library and robust media functionality
- because of the new, Twig-based theme engine
- because it's easier to use: you can make the most of its in-place editing (CKEditor)
And particularly because there will be no more major re-builds (aka "major pains to upgrade").
Instead, a set of new features gets released every 6 months, including new improvements and additions to be incorporated seamlessly into your Drupal 9 build.
2. Most Drupal 9 Modules Don't Change at All
So, stay assured: you won't be having a hard time finding compatible modules for your new Drupal 9 website.
Many of the modules on Drupal.org have been, are being made, and will be made compatible with Drupal 9. There's a collective effort coming from the Drupal community in this direction.
And where do you add that the process is pretty straightforward:
Same code, but without the deprecated APIs.
3. But What About Those that Do Need Changes?
For there have been changes under Drupal 9's hood. Changes in coding with a direct impact on some modules and APIs.
Which means that some modules have turned from Drupal core modules to... outside dependencies:
- this is good news, considering the performance gains you get
- but also a challenge if you were relying precisely on those modules for your Drupal 9 website
Luckily, you have at least 2 helpful tools at hand that you can use to:
- identify the Drupal modules that still need to get updated
- apply the fixes needed to make those modules compatible with Drupal 9
3.1. The Upgrade Status Module
Why use it?
Because it offers you a view of all that has been changed in Drupal.
Source: Drupal.org
You have links to the modules' pages there, that you can access to review those changes.
3.2. The Upgrade Rector Module
The great thing about this tool is that it provides you with automated code fix suggestions to help you make your target modules Drupal 9 compatible.
Source: Drupal.org
4. Some Module Get Removed from Drupal 9
Now, there are a few Drupal modules that didn't get the chance to grow into Drupal 9 modules.
And I'm talking here about:
- Simple Test, that's now replaced by PHPUnit
- Place Blocks, now replaced by the Layout Builder
As you can see, in both cases you get to use better alternatives. So, it's just a matter of favoring more powerful solutions.
Good to know! Expect other modules and themes (i.e. the Classy theme, the Stable theme) to get deprecated and removed by the time we reach Drupal 10.
5. What About the Contributed Modules?
What if you need more than the out-of-the-box Drupal 9 modules to build your new website?
What if you depend on particular contributed modules? Or on... many contributed modules?
Well, then things get a little more challenging...
Because many of the contributed Drupal modules still need to be made compatible with Drupal 9. They need some time to catch up with the new version of Drupal.
Take for instance: updating tests to PHPUnit or updating deprecated API usages.
Now, what you can do is give a helping hand to accelerate the updating of these modules.
And the steps/best practices to follow are pretty simple, as suggested in this guide on Drupal.org :
- use the patch referred to here, create an issue in the module project (first, make sure it doesn't exist already), and choose a title suggestive enough to let the maintainer know that it needs to be tested for Drupal 9 deprecations
- add an explanation for the signaled issue
- ... and follow all the other steps suggested in that Drupal.org guide.
Tip! Ask that contributed module's maintainer how he/she would like to address the issues you're signaling.
Because the guidelines available for Drupal core aren't always relevant for addressing contributed module issues, as well.
The END!
Now, assuming that:
- you only need a limited no. of contributed modules for your new Drupal 9 build
- it's not a heavily customized website that you're building
... how do you get it up and running in?
We're here to help. Just drop us a line!
We've been building Drupal websites since... Drupal 5.
Image by Siggy Nowak from Pixabay
We do Drupal development
Go to our Drupal page!