How can I tell if my site is ready for Drupal 9?
Drupal 9 is coming. Are you ready for it?
With the announcement that a Drupal 9 beta version is expected this week, you may be wondering how to know if your Drupal 8 site will be ready to upgrade when Drupal 9 is officially released. The most important thing is keeping your site well maintained. Here are some tools to help and the information they’ll give you.
Status Report: Check your server software and more
On your production site, check your site’s status report at /admin/reports/status and compare the system information listed to Drupal 9’s minimum system requirements:
- Apache 2.4.7
- PHP 7.3
- MySQL/Percona 5.7.8 or MariaDB 10.2.7 or SQLite 3.26 or PostgreSQL 10
Take a look at anything listed in the Errors Found section. In particular, if it shows any pending database updates or outdated entity/field definitions, then you should run updates at /update.php after following the recommended precautions.
Status Report will also warn you about pending updates, but we would recommend heading to /admin/modules/update to see the full list of updates available.
Update Manager: Check your Drupal code
The list provided by core’s Update Manager module will tell you what updates you have available, and which ones are security updates. Obviously the security updates are the most important, but having all your modules up-to-date (if possible) will make for the smoothest transition to Drupal 9 -- especially if it means tackling major version updates that require some work. Best to get that out of the way now, even if the latest version isn’t Drupal 9 ready yet.
Using the latest Drupal version is your best chance to move to the Drupal 9-ready version when it’s released, or even apply a patch for Drupal 9 compatibility before there’s an official release of the module.
Upgrade Status: Evaluate Drupal 9 Readiness
The Upgrade Status contrib module will scan your site’s current modules and themes and show you if there are specific warnings or errors in compatibility with Drupal 9. If you’re already up-to-date with all your contrib modules and themes, that means any flagged by Upgrade Status don’t yet have a version that’s ready for Drupal 9. If you haven’t kept up with your updates, then Upgrade Status will tell you about any updates that are available.
Helping Contrib Modules That Aren’t Yet Drupal 9 Ready
For contrib modules with issues and no update available, a good first step is to look in the module’s issue queue. For example, the Queue UI module showed 9 errors and 3 warnings in a recent scan, and someone has already started an issue to get those resolved. How can you help? If the issue already has a patch and is marked “Needs Review”, try applying the patch to a development version of your site and give feedback. There’s a lot more detail on drupal.org. If there isn’t yet an issue, by all means open one. Better yet if you can also post a patch with the necessary changes.
On the other hand, you may be using an obscure module that hasn’t been updated in several years. It may be time to consider if the functionality it provides is still a requirement, or could be a “nice to have” and something your site could do without. If it really is critical, you could also look for alternatives, and ideally something that seems more actively maintained.
You’re likely to have some custom modules and themes, and Upgrade Status will tell you about what needs to be addressed for those too. Often the changes required are trivial, for example swapping out a deprecated function call for Drupal 9-ready object method instead. When more substantial changes are needed you can try using the Upgrade Rector or Drupal Module Upgrader modules to give you suggestions on the specific code changes needed to get your custom code ready.
The last thing to keep in mind is that Drupal 9 will use an updated version of Twig for its presentation layer. Upgrade Status will also identify anywhere your theme is using deprecated twig syntax.
Bonus: Give Yourself a Grace Period
With all that said, you should consider is how important it really is to upgrade right after Drupal 9 is released. For the most part, Drupal 9.0 isn’t expected to have any new features, as compared to Drupal 8.9, which will be released at the same time. The big difference is the removal of deprecated code, and updated versions of underlying libraries like Symfony and Twig. The only new feature in Drupal 9 that’s really being worked on is a new front-end theme, but if you’re planning to keep using a custom theme, that won’t really be of any use to you.
Realistically, it’s more advantageous to target a major version upgrade after the release of Drupal 9.1, currently planned for December 2, 2020. By then Drupal 9 should have any lingering quirks worked out, and you’ll be able to take advantage of the new features in 9.1. That gives you an extra six months, but that’s still only nine months away, as of this writing.
If your site has a lot of custom code, this is a great opportunity to make sure it follows Drupal coding standards and has eliminated technical debt wherever possible. If your site uses a large number of contrib modules, you may need the time to plan out strategies for the outliers that seem unlikely to be upgraded for Drupal 9-readiness anytime soon.
For anyone who remembers the pain of rebuilding sites to migrate from Drupal 7 to Drupal 8, the relatively modest work needed to prepare your site for Drupal 9 is much more modest. That said, with the announcement of a Drupal 9 beta the time is growing increasingly short. Now’s the time for action!
If you need any help with this transition, our team would be happy to chat with you.
Are You Ready For Drupal 9?
Download this free Drupal 9 Checklist and you'll also receive our monthly free e-newsletter, Thoughts On All Things Digital. You can unsubscribe at any time!