Welcome to day 13 of the Drupal Advent Calendar.
If all goes to plan, Drupal version 10 will be released tomorrow, so this seems a good time to talk about the Upgrade Status module.
Upgrade Status is all about telling you if your site is ready to upgrade to Drupal 10.
It will scan all of the modules present on your site and tell you if there is a Drupal 10 version of the module available.
Many modules are already ready for Drupal 10, and quite a few that don’t have a full release ready, have a patch available to make the Drupal 9 version compatible. It’s likely that most of the modules will release a fully compatible Drupal 10 version in the near future, so if you don’t fancy applying patches, you can just check the Upgrade Status report periodically.
The report will also tell you about any deprecated modules you may be using. Some of these are moving from Drupal Core to contributed modules, so if you need any of these modules, you can just use Composer to add the contrib version to your site, and then it should upgrade easily.
Other modules don’t have an exact replacement. An example being the CKEditor 4 module, which is replaced by CKEditor 5 in Drupal 10. CKEditor 5 is available as a contrib module for Drupal 9, so a good strategy is to install it and test for your content, then deactivate the CKEditor 4 module. In most sites version 5 is a drop in replacement, and should just work as an improved editor.
In talking about Upgrade Status, it’s also worth mentioning Drupal Rector. If you have a site with custom modules or themes, or if you happen to be a module maintainer, Rector can automate much of the work of upgrading to Drupal 10, and can apply many fixes automatically.
Apart from Drupal 9, Upgrade Status can be run on several older versions. If you still have any Drupal 8 sites, you will need to upgrade them to Drupal 9 before you can upgrade to 10. It is highly recommended to do this as soon as possible, as version 8 has been unsupported since November 2021. Most Drupal 8 sites can upgrade to 9 with a simple upgrade script, so there’s really no excuse at this point.
There is also a version for Drupal 7. There are still a lot of Drupal 7 sites running. However, Drupal 7 sites cannot be directly upgraded to Drupal 8/9/10, so the general strategy should be to build a new site and migrate the content over. There are, unfortunately, many modules that have not been ported to 8/9/10, so some work will likely be needed to work around those. Often, similar functionality can be found in another module, or even in Core, but sometimes your options may be to live without that functionality or develop it yourself (or hire someone to develop for you).
Fortunately, it’s not all doom and gloom, and more often than not there is a module or combination of modules that can achieve what you need, and many Drupal 8/9/10 modules are far more powerful than their version 7 equivalents.
Personally, I found the upgrade from 7 to 8 a bit terrifying, and the Upgrade Status module helped finding the right modules, but the real challenge was in migrating the content. I may talk some more about that in future entries.
For Drupal 10, there isn’t an urgent need to migrate as 9.5 will be supported until November 2023. There is feature parity between 9.5 and 10.0, so you’re not getting left behind. However, 9.5 is the last version of Drupal 9, and while it will receive bugfixes and security patches, new features that get added to later Drupal 10 versions will not be available in Drupal 9, so start getting ready for an upgrade in 2023.
Hope you’ll take some time out from playing with the new Drupal release to see what’s behind tomorrow’s Advent Calendar door!