Drupal 9 is Coming: Upgrading has Never Been This Easy
Recently, there has been a lot of buzz in the Drupal community about Drupal 9. The plans for launching Drupal 9 as well as for supporting Drupal 7 and Drupal 8 have come into focus. With every release of a new major version of Drupal, there is anxiety about how challenging the upgrading process will be. With Drupal 9, there is no reason to be anxious.
Alongside the release of Drupal 9, there has been a change in the philosophy of how Drupal is developed. In the past, each new major version of Drupal was seen as a break from the last major version. The Drupal community did not guarantee compatibility between the new major version and the old major versions. This had some benefits but caused major disruption because of the compatibility issues, upgrading was not an easy process.
Upgrading to the latest Drupal core was just part of the process. Most sites use contributed modules and themes and those modules and themes needed to be upgraded to be compatible. Many of these contributed modules lagged for years (if they were ever ported) providing uncertainty if your site depended on those modules. You also needed to migrate the content to the new version of Drupal. There were upgrade paths for the content, but they were not always robust or ready when the new major version of Drupal was shipped.
There had to be a better way to upgrade Drupal and with the shift in philosophy for Drupal 9, there is! The new philosophy makes it easier to plan for, prepare for, and upgrade your Drupal 8 site. Upgrading from Drupal 8 to Drupal 9 will be easy, if you are prepared.
Acquia recently hosted a webinar: "Drupal 9 is coming. How should you prepare?" During the presentation Dries Buytaert and Gabor Hojtsy provided an update on Drupal 9. Here are the key things to consider as you think about upgrading.
What’s New With Drupal 9?
One of the primary reasons for a major release is code clean-up. Drupal 8 came with a new innovation model where minor releases occur every six months. This has accelerated the number of new features being added to Drupal. As features are added, new and improved ways to solve problems are being implemented and code is deprecated. The deprecated code is needed for backward compatibility but a major release of Drupal 9 provides an opportunity to remove this code and anything else that is no longer needed.
The second reason for a major release relates to third-party dependencies. Now that Drupal integrates with common PHP projects like Twig and Symfony, it needs to adhere to the vendor support lifecycles for these projects. With the release of Drupal 9, we’ll have supported versions of software that will be around for a long time such as Twig 2 and Symfony 4/5.
When Do I Need To Upgrade To Drupal 9?
This visual from the presentation provides a timeline for the future releases of Drupal 8/9. Drupal 8.8 is set to be released in December 2019 and will be the last minor release with features. Drupal 8.9 and 9.0 will be released in June 2020 and will contain the same features. The difference will be that Drupal 9 will have deprecated code removed. Drupal 8 will reach the end of life at the same time as Symfony 3 which will be November 2021. Existing Drupal 8 sites will have a year and a half to upgrade to Drupal 9.
How to Prepare for Drupal 8 Upgrade?
If you are running Drupal 8 already, the best way to prepare is to keep your site up to date. Essentially, Drupal 9 will become the latest version of Drupal 8 with updates for third-party dependencies and deprecated code removed. When Drupal 8.7 is released in December 2019, it will optionally support Twig 2 so developers can begin testing their code against this version of Twig. Drupal 8.8 will optionally support the latest version of Symfony. Ideally, the Drupal community would like to release Drupal 9 with support for Symfony 5 which will be released in November 2019 (read more about this here from Dries Buytaert).
If your site is using contributed modules, just keep them up to date and work with module maintainers to help remove the deprecated code.
Since Drupal 9 is being built within version 8, developers will have an opportunity to test their code and make updates before the release of Drupal 9. This is awesome and isn’t something that has been possible with past versions of Drupal!
How to Know If You Are Using Deprecated Code?
There are a few tools that can be used to help identify deprecated code. The first one is drupal-check. This is a command-line utility that you can run against your modules and alert you to instances of deprecated code. Another tool will be a “Drupal 9 Readiness,” contributed module expected to ship with Drupal 8.8. This will be a GUI-based tool users and developers can run from within the Drupal user interface to easily determine what it will take to prepare their site for Drupal 9.
What About Drupal 7?
The end of life for Drupal 7 will be November 2021. After this date, support will be available from vendors like Acquia. If you’ve been wanting to upgrade your site from Drupal 7 to Drupal 8 you can do so now. There is really no benefit in waiting for the release of Drupal 9.
Unlike upgrading from past versions of Drupal, upgrading from Drupal 8 to Drupal 9 should be simple. Provided your Drupal 8 codebase isn’t using any deprecated code, upgrading will be as easy as getting the latest version and running update.php.
For more information about the planning for your Drupal 9 Upgrade, check out what Dries Buytaert had to say in his post, How to Prepare for Drupal 9.