On June 3, 2020, Drupal 8.9 and Drupal 9 will be released. An upcoming release, especially two releases in one day, surely brings up questions like…
How long will my existing site be supported? Why are they being released at the same time? How do I upgrade? Should I upgrade? What’s the meaning of life, etc.?
A quick history lesson
Let’s take a moment to look into the past. In 2015, Drupal 8 was released and it was a major upgrade from Drupal 7. Every major release is a large enough evolution that the subsequent “upgrade” is really a rebuild and migration project. The changes introduced in Drupal 8 are highly relevant to the advent of Drupal 9.
Drupal 8 adopted “semantic versioning”, which means each minor release (8.1, 8.2, etc.) is backward-compatible. An update to the next, or next couple, minor releases will not break the site. Along the way, various chunks of code become “deprecated”. Deprecated code should not be used, but it is left in for backward-compatibility. A major version update (Drupal 9 enters the room) will remove that deprecated code and break that backward-compatibility. Any change that would break site features has to be handled in a major version release.
Additionally, Drupal 8 is dependent on the Symfony 3 framework. Symfony 3 is going end-of-life and will stop receiving security fixes in November 2021. Updating Drupal’s dependency to Symfony 4 will be a major change that breaks backward-compatibility, thus it requires a new major version, Drupal 9.
1. How to prepare for Drupal 9 upgrade
The first step is to install the Upgrade Status module and scan all custom and contributed projects. This tool scans the codebase and will flag any issues that need attention before the upgrade. In contributed modules, the scan may show errors and provide access to a patch in the issue queue to bring the module into compliance. Other modules may have already been updated and others still will have no update or patch available. Custom modules may require a developer (like Fíonta) to manually update the deprecated code.
2. Drupal 8.9 is the last release of Drupal 8
This is a bit of a cheat because we titled the blog, 6 Things To Know About Drupal 9, but guess what? Drupal 9.0 is Drupal 8.9 with the removal of deprecated code and all dependencies updated.
3. There are no new features in Drupal 9
Wait, what?? Drupal 9 is Drupal 8.9 as mentioned above. The purpose of Drupal 9 is not to introduce new features, but to progress the codebase while maintaining code sanity and backward-compatibility. Drupal 9.1 and beyond will include new features within Drupal core.
4. The level of effort to upgrade to Drupal 9 is not “major”*
This is actually a much smaller change than upgrading from Drupal 7 to 8. Drupal 9 was actually built in Drupal 8 and module and theme developers have had plenty of notice to update their code to be compatible. *For a well built and well-maintained Drupal 8.x website, upgrading to Drupal 9 should be as easy as upgrading to Drupal 8.9.
“The big deal about Drupal 9 is…that it shouldn’t be a big deal” says Drupal project lead Dries Buytaert.
5. Remaining in Drupal 8 is ok, for now
As mentioned above, Symfony 3 will reach end-of-life in November of 2021. Drupal 8.9 and Drupal 9 are being released well in advance of Symfony 3’s end-of-life precisely so site administrators have plenty of time to make any necessary changes in order to update to 9.0.
6. However, the party has moved to Drupal 9
New features will be released in Drupal 9 only so while you still have time on the calendar to upgrade, don’t let the grass grow too long and miss out on new functionality.
If you are a Fíonta client under a Drupal support and maintenance agreement, we will be reaching out to you individually to discuss upgrading to Drupal 9.