Upgrading From Drupal 9 to Drupal 10

Chelsea's picture with durham in the background
Siro Ausili

Chelsea Murphy & Siro Ausili

Drupal 10 logo on a blue to pink gradient background

As of November 1st, 2023, all sites hosted on Drupal 9 need to be upgraded to Drupal 10. In this article, we will be discussing what’s changed in Drupal 10, the risks associated with not upgrading, and sharing resources on how to prepare for this transition.

What’s new in Drupal 10?

Drupal 10 builds on many of the features that were released as part of Drupal 9. However, here are a few of the things that will change or be upgraded as a part of the update.

Technical Changes 

CKEditor: Version 4 to 5

CKEditor 5 is a complete redesign of CKEditor 4 and introduces a fundamentally different architecture and feature set. It overcomes many limitations and challenges of CKEditor 4 and provides a more robust foundation for complex web applications, especially those that require modern features like collaborative editing. For instance, CKEditor 4 managed content directly as HTML, closely tying it to the browser's DOM. In contrast, CKEditor 5 uses a custom and virtual DOM designed for greater flexibility and consistency. This new data model simplifies the implementation of features such as complex nesting, block merging, and collaborative editing.

Important Note: Just like CKEditor, Symfony, and Twig are also being updated as they are a part of Drupal’s core dependencies. Therefore, you’ll have to update any code in your projects that relies on an older version of these dependencies.

Composer: Version 1 to 2

The release of Composer 2.0 brought several improvements. The most substantial ones include the significant speed and performance increase due to the adoption of HTTP/2 and enhanced cache control. Secondly, Composer 2.0 added a "--dry-run" option to "composer require" and "composer remove," which prevents changes until all dependency requirements are met.

Modern JavaScript components to replace some uses of jQuery

 jQuery and jQuery UI have been fundamental parts of Drupal for many years. However, as the web has evolved, many of the functionalities provided by jQuery UI can now be achieved using vanilla JavaScript. Therefore, the most common functions of jQuery UI are being replaced or removed in favor of modern alternatives that can be part of the Drupal core or contributed modules. Reducing reliance on jQuery and jQuery UI can increase performance, as less JavaScript needs to be loaded, parsed, and executed.

Deprecated code removed

The following modules were deprecated in Drupal 9 and officially removed in Drupal 10.

  • Aggregator
  • Color
  • HAL
  • Quick Edit
  • RDF

If your site uses a deprecated module, you need to switch to a supported module.

Improved User Experience

Updated front and admin themes

The accessible and user-friendly interface of Drupal 10's new admin theme (Claro) dramatically improves the content editor experience. Claro is part of Drupal's initiative to make the CMS more appealing and intuitive for content editors and site administrators alike. In addition, Olivero replaced the Bartik front-end theme that has been the default since Drupal 7. With its focus on accessibility and its modern and responsive design, Olivero provides an ideal foundation for building beautiful and functional websites with Drupal.

Risks of not upgrading

The latest version of Symfony isn’t compatible with Drupal 9, and Symfony 4 (on which Drupal 9 is based) stopped receiving security updates in November 2023. So, this has a waterfall effect on Drupal.

Lack of compatibility

New releases of Drupal modules may only be compatible with Drupal 10. Our team has already updated modules that only have Drupal 10-supported releases.

Security risks

With Drupal 9’s end of life, it will no longer be supported. That means if a security risk is identified, there will not be a team working to release a fix, and your site could be at risk. For example, the most recent (and final) Drupal 9 core update addressed a security vulnerability where sensitive information could potentially be cached and made available to anonymous users. 

Limited community support

The Drupal community is focused on prioritizing security issues and updates needed for Drupal 10 core and Drupal 10 compatible versions of plugins. As a result, there will no longer be official security updates or patches provided by the Drupal project maintainers.

Transitioning from Drupal 9 to Drupal 10

The 9 to 10 upgrade process is similar to 8 to 9, which can be very smooth with the proper planning. As with any upgrade, you'll need to replace all deprecated methods and functions. You can quickly find these by using the contributed module Upgrade Status. Additionally, we recommend checking out the official Drupal documentation for upgrading your site from Drupal 9 to Drupal 10.

It’s not too late

Although it is generally recommended to upgrade to the latest version of Drupal before the EOL date, our developers are ready and available to help you with the Drupal 10 migration process. Reach out to us today!

Still on Drupal 7?

That's a much more intensive upgrade, and with the end of life set for January 5, 2025, we recommend making a migration plan now.