Upgrade to Drupal 9 Now That Drupal 7 and 8 are 'End of Life'
Drupal 7 and Drupal 8: End of Life
Drupal 9 was released to the public in June 2020, with Dries Buytaert, Drupal founder and project lead, touting Drupal 9 as "the most author-friendly and powerful version of the platform to date."
The announcement from Drupal highlights several notable features of the platform:
- Dramatically easier tools: A new layout builder, WYSIWYG media management system and content workflow tools make Drupal much easier to use.
- Continuous innovation: Powerful new features are delivered continuously, keeping Drupal at the cutting edge of the web.
- Easiest upgrade in a decade: Drupal’s commitment to easier upgrades in the future means never having to worry about a major re-platforming to stay up to date.
If you have a Drupal website or have been following Drupal for a few years, you may know that they typically support two versions of the platform at a time given that it often takes people a few years to migrate their website to the newer platform.
But that's not the case this time around.
When did Drupal 7 and 8 reach ‘end of life?’
Support for Drupal 8 ended on November 2, 2021. Support for Drupal 7 ended on November 28, 2022.
Why will Drupal 8 no longer be supported?
One of the main contributors to the sunsetting of Drupal 8 is its reliance on Symfony — the PHP framework utilized by Drupal to build its CMS system.
Symfony announced that they are ending support for Symfony 3, the PHP framework Drupal 8 is built on. Drupal, which has no control over when Symfony chooses to release and end support, needed to upgrade its own CMS so that websites aren’t built on components that were past their end of life. Drupal 9 is built on the most recent version of Symfony.
A long-term-support (LTS) Drupal 8.9 minor release was released alongside Drupal 9. No new features will be added to Drupal 8, and minor releases will not be made available.
How difficult is it to upgrade to Drupal 9?
One of Drupal’s goals is to make the process of major version upgrades easier. In the past, upgrading between versions required building an entirely new website in Drupal and migrating any content or designs over to re-implement them. Thankfully, upgrading to Drupal 9 should be fairly straightforward.
When moving from Drupal 8 to Drupal 9, you will hear about “code deprecation.” This is developer-speak for the process of taking older code and marking it as no longer being useful within the codebase, usually because it has been superseded by newer code.
So upgrading to Drupal 9 is a process of identifying code in the Drupal API that has been marked as deprecated, and then updating it to the newer code/functions as needed. There are tools available that will identify and fix deprecated APIs in your codebase. So it can be as simple as running one of the scan tools to see what needs adjusting.
You likely won’t see substantial changes moving from Drupal 8 to Drupal 9, and custom code is likely to work without issue just as long as it doesn’t rely on deprecated functions of methods that are being removed.
The release of Drupal 9 and the end of support for Drupal 7 and 8 are not far apart. But because of the change to major version upgrades, you can start the process of migrating to Drupal 9 immediately. There's no reason for anyone on Drupal 8 not to upgrade to Drupal 9.
You can migrate to Drupal 8 and simply upgrade to Drupal 9 as you currently should be doing with minor version upgrades. The first release of Drupal 9 is very similar to the last release of Drupal 8.
What happens if I don’t migrate before 'end of life?'
New methods of performance optimization, new bugs, and new system vulnerabilities are being discovered frequently. The minor releases supported by Drupal help keep your platform up to date with recent security vulnerabilities and optimization improvements.
Without those updates, it’s as if you stopped paddling in the middle of a river — all you can do is be swept backward by the current.
Here is what Drupal has announced about how it will end support for Drupal 7 and 8:
- Community support for Drupal 7 will end. There will be no more updates or security fixes. However, Drupal has extended Drupal 7’s community support and moved the end-of-life date to November 28, 2022. Support for Drupal 8 has already ended.
- Drupal Association support for Drupal 7 will end.
- There will be no more automated testing services or updates provided by the Drupal Security Team for Drupal 7.
- There will be no more new documentation for Drupal 7 projects.
- It’s likely that after (November 2022), websites on Drupal 7 will be flagged by third-party systems for being unsafe.
- If you don’t make the move in time, you’ll be on your own when it comes to dealing with security updates, maintenance, and bug fixes for your Drupal 8 code. This can be time-consuming and frustrating.
How do I start preparing for the upgrade to Drupal 9?
If you’re on Drupal 8, the best way to prepare for Drupal 9 is to keep up with minor version releases and to update deprecated code. According to Drupal, you should "fully update your Drupal 8 site to the most recent version of both core and contributed modules and themes, prior to updating to Drupal 9."
Deprecated code will not be supported in Drupal 9, but there are ways to search your system and update identified code. Here’s a module for website admin to locate deprecated code: Upgrade Status module.
If you’re on Drupal 7, you can upgrade directly to Drupal 9. In many cases, this is a good option because it assures that your upgraded site will have maximum expected life. Another good option to prepare would be to migrate your website to Drupal 8 as soon as possible to ensure your website will be Drupal 9 compatible so there is very little work left to do when it comes time for your upgrade.
There are three key tools used when migrating a Drupal 7 site to Drupal 8 or Drupal 9:
- Drupal core provides the migration module suite to execute data/content migrations from Drupal 7. This provides a good opportunity to build your site in the best way in Drupal 8 or Drupal 9 and import content to the right new places.
- The Drupal 7 version of the Upgrade Status module summarizes the Drupal 8 or Drupal 9 availability of the modules currently in use.
- The Drupal Module Upgrader is a command-line script that scans the source of a Drupal 7 module, flags any code that requires updating to Drupal 8 or 9, points off to any relevant API change notices, and (where possible) will actually attempt to convert the Drupal 7 code automatically to the Drupal 8 and 9 versions. Drupal Module Upgrader has been updated to not use deprecated APIs in the generated code, meaning that if you are doing an upgrade first to Drupal 8 your eventual path to Drupal 9 will be smoother.
To ensure a Drupal 8 update is also compatible with Drupal 9, use drupal-check and/or the Drupal 8 version of Upgrade Status in your development and/or continuous integration environment and pay attention to Drupal 9 incompatibilities in your custom code.
To wrap things up, we recommend you upgrade to Drupal 9 sooner rather than later. It boasts an easier upgrade process, and there are plenty of options to upgrade depending on which version of Drupal you currently have.
Don’t wait — sites operating with Drupal 7 will have a longer period of support, but those with Drupal 8 won’t have an extended support program now that the end-of-life date has been reached (ended November 2, 2021).
Feel free to reach out to us or explore our Drupal expertise if you ever have any questions about your Drupal site.