Blog

A Guide to Preparing for Drupal 9

Sarah LeNguyen

Chief Technology Officer, Forum One

Drupal is an open-source content management framework that was initially released 19 years ago. Since then, there have been eight major releases. What makes Drupal different and special from proprietary content management systems that also serve “enterprise” is that it is supported by a community of ~1.4 million members. We’ve put together this handy guide to prepare for Drupal 9.

Prior to Drupal 8, “major version upgrade” usually meant a long tedious process. Upgrading Drupal to the next major version usually meant you had to rebuild your site from the ground up, which could have been a big undertaking. The Drupal upgrade process used to involve:

  1. Using a migration module or have a developer write migration scripts to move your data from your old Drupal site into a new one.
  2. Checking to see if the contributed modules you were using had a new release for the newer version of Drupal. If there was no version of the contributed module, you either had to find a new solution or upgrade the module yourself. 
  3. Updating/rewriting any custom modules to incorporate API changes.

After the release of Drupal 8, many organizations on older versions of Drupal opted to redesign their websites because of the amount of work involved. Drupal 8 was a pivot toward enterprise and made it more competitive with fully featured proprietary systems like Adobe Experience Manager (AEM) and Sitecore. Drupal 8 was a ground-up rewrite “start over” of the entire core application. Previous version upgrades had major changes to the APIs and overall architecture, but the fundamentals were still largely there. That changed in Drupal 8 leaving many small and grassroots organizations wondering if Drupal was still right for them, and many flocked to other systems, like WordPress. 

Why Drupal 9 is different

The Drupal community learned from the Drupal 8 upgrade experience and decided to change the way upgrades are handled, starting with Drupal 9. The one feature that Drupal developers are most excited about in Drupal 9 is the update system—meaning how Drupal will handle major version upgrades going forward. 

Drupal 9 will build on Drupal 8’s architecture and will have built-in backward compatibility. It will use Drupal 8’s codebase rather than start with a new codebase altogether. New minor versions will continue to be released every six months (9.1, 9.2) with new features, following the cadence that began with Drupal 8’s adoption of semantic versioning. 

The concept of “using the same codebase”
This image is from drupal.org, and it explains the concept of “using the same codebase” a little more visually. 

Before Drupal 8, each major version was its own independent codebase rather than parallel to other major versions. Eventually, major versions reached “end of life” status, meaning they were no longer supported by the community and their codebases stopped being maintained. That changed with Drupal 9. The codebase will be the same and Drupal 8 will eventually become Drupal 9.  

At launch, Drupal 9 should feel very similar to 8, so don’t expect big changes in functionality out of the gate. Drupal 9 will be identical to the final Drupal 8 release, but with deprecated code removed and third-party dependencies updated. Those updates include: 

  • Symfony is updated from version 3 to 4.4 (version 3 reaches End of Life status in November 2021)—Drupal’s biggest dependency
  • Twig is updated from version 1 to 2 (Drupal version 8.7.0 was released with optional support for Twig 2 in May 2019)
  • Drupal 9 will continue to use CKEditor 4, but a later minor version update will likely include CKEditor 5. CKEditor 4 would then be marked for deprecation and be removed in Drupal 10. 
  • Drupal 9 will continue to depend on jQuery though jQuery UI has reached its end of life. Drupal is in the process of moving toward vanilla JS solutions rather than continue to depend on jQuery. 

“The big deal about Drupal 9 is … that it should not be a big deal.”

Dries Buyaert, Drupal Project Lead

Drupal 8.9 will be released the same day (June 3, 2020) and becomes the “long-term support” (LTS) release of Drupal 8. From a feature perspective, they will be identical. Drupal 8.9 will include a handful of API and UX enhancements, but the focus is prepping the codebase for Drupal 9. 

Difference between Drupal 8.9 and 9.0
Putting it more visually, this is what the difference between Drupal 8.9 and 9.0 will be like. 

Drupal 8.9 will include older versions of some third-party dependencies and code that has been marked for deprecation. Drupal 9.0 will upgrade those dependencies, and it will remove the deprecated code. If your site relies on code that is deprecated, you will have to fix that before moving to Drupal 9.  

When to upgrade to Drupal 9

If you are on Drupal 7, it is not too late to upgrade to Drupal 8. Aim for version 8.8 now, then upgrade to 8.9 in June. Another option is to wait until Fall to upgrade to Drupal 9 when more contributed modules have Drupal 9 releases. The investment to go from Drupal 7 to Drupal 8 or 9 is going to be roughly the same at this point and that investment is going to be relatively high. Once you are in Drupal 8 or 9, future major version upgrades will be much simpler. 

If you are on Drupal 8, you should upgrade to 8.8 now (if you haven’t already), and 8.9 in June. Then wait until all the contrib modules you need have Drupal 9 releases. Your site will have to be on Drupal 8.8 or Drupal 8.9 to upgrade to Drupal 9. 8.8 came out in December. We are currently on patch release 5 (8.8.5); that’s where you want to be. 

Support timelines

Drupal 7 will receive community support until November 2021. After that, it will be supported through selected vendors until at least 2024. Previously, community support only extended to the previous major version. Usually, Drupal 7 would have stopped receiving community support in June when Drupal 9 is released, however, because it is still so widely used, it will be supported for an additional 18 months and will reach end of life at the same time as Drupal 8. 

Drupal release schedule
This is another image from drupal.org that more visually explains Drupal’s release schedule. 

We can expect new minor releases of Drupal 9 every other quarter (June and December), and those will likely include new features. 

How to prepare if you are on Drupal 7

If you are on Drupal 7 or earlier, start your upgrade to Drupal 8 with this upgrade process. 

  • Review upgrade paths: Find out which contributed modules don’t have Drupal 8 releases and find alternatives. Many contributed modules did not provide an upgrade path, so you might have to migrate your configuration changes manually
  • Rewrite any custom modules: The code you wrote for custom work in Drupal 7 will no longer work in Drupal 8 or 9.
  • Take stock of your content: Delete/archive anything you don’t need.
  • Migrate your configuration: This includes content types, taxonomies, and module configuration, etc.
  • Migrate content: Use the core Migrate suite (in Drupal 8) to automatically move content (nodes, users, terms, etc).
  • Rebuild “complex” layouts: If you were using Panels, Page Manager, Panelizer, or Context, etc, to build complex pages (like your homepage), you will need to rebuild those pages using Layout Builder, Paragraphs or directly in the Twig templates.
  • Re-write your theme: Drupal 7 used PHPTemplate, and Drupal 8 is using Twig for a template engine.

How to prepare if you are on Drupal 8

If you are on Drupal 8, make sure you are running the latest minor version (8.8.5) and use this upgrade process:

  1. Update your contrib modules
  2. Remove deprecated code from custom modules
  3. Update core

Automated tools to check for compatibility:

If you need help

Reach out to our team! We have deep expertise in using Drupal to help organizations drive their mission, engage with audiences, and ensure they are getting the most out of their digital ecosystems.

Written By

Sarah LeNguyen

Chief Technology Officer, Forum One

Have questions about Drupal?

Get in touch today. Our Drupal expert developers love it and can help you find the best solutions for your Drupal questions.