One of the most well-liked open-source content management systems is Drupal. Since its introduction, it has grown and established itself in the market. The Drupal community has come a long way and is continually working to keep up with the newest technological developments.
Since Drupal 8, the maintainers of the platform have published new CMS releases in a methodical manner. By offering a clear path for changes from one major release to another, is advantageous for anyone who builds, administers, or maintains a Drupal site.
In December 2022, Drupal v10, the most recent version, was released. There is a greater demand to migrate to Drupal 10 as the new edition of the online CMS has tools to create flexible digital web experiences.
To help you upgrade from Drupal 8/9 to Drupal 10, we have created a guide. It includes advice on how to get ready for the upgrade, as well as best practices and how to start using it. Find out why upgrading to Drupal 10 is a wise choice before we start the upgrade procedure.
Upgrade to Drupal 10: What’s New in the CMS?
Drupal 10’s release promises automated updates, improved client experiences, and other included features. Additionally, the most recent version includes a number of updates for Drupal-related third-party applications. These parts are said to be more powerful, user-friendly, and secure. Some significant updates in Drupal 10 are:
- The Claro admin theme (replacing Seven themes).
- New Olivero default theme (replacing Bartik theme).
- CKEditor 5 for a better modern editing experience (replacing CKEditor 4).
- Theme Starter Kit tools for creating more custom themes.
- Symfony 6 is required (replacing Symfony 4) and PHP 8.1 will be mandatory to keep the system secure.
- Improved versions of Layout Builder, and Media Library
Wait, there is a lot more Drupal 10 can do!
Automation technology may make it easier to update websites. For example, developers may attest that early releases largely removed the deprecated code. The upgrade procedures might be computerized.
In Drupal 10’s admin interface, site developers can browse and install modules right away. The Claro theme, Layout Builder, and Media Library are a some of the pre-installed parts. Web administrators and developers may easily manage content, use the admin interface, and design unique page layouts thanks to these modules.
The more modern Olivero theme will always be used on the front end of Drupal websites. New StarterKit theme tools and new processes for developing custom themes will also be included in the new Drupal 10.
Prepare for Drupal Upgrade:
Before we let you get started with an upgrade to Drupal 10, here are some quick, essential tips to make the move seamless.
- If you’re on Drupal 8, make that easy upgrade to Drupal 9 soon (before Drupal 8 EOL)
- Make sure you have updated to the latest (last released) version of Drupal 9.
- This will ensure that it supports all the latest released libraries, components, and latest PHP versions (as their older versions will deprecate in Drupal 10)
- From here, it is going to be an easy ride to Drupal 10 with just a simple core upgrade.
Getting Ready for Drupal 9 to Drupal 10 Upgrade
Keep the Drupal core updated keeping track of the modules that are or are not compatible with Drupal 10 to get going. Utilize the tools at your disposal to estimate the effort required to upgrade to Drupal 10.
- The Drupal Upgrade Status module aids in identifying deprecations that need to be fixed. The amount of effort required for the changeover can be estimated.
- Deprecations are removed automatically with the aid of the Drupal Rector app.
- The Drupal Check module aids with deprecation detection in static code.
The switch from Drupal 9 to Drupal 10 will happen more quickly and automatically. It will be straightforward because Drupal 9 has fewer minor releases and quicker iterations.
There are a few tools that can be useful for tracking the migration to Drupal 10. As an illustration, consider the Drupal Upgrade Status and Upgrade Rector modules. Let’s examine the convenience that the Drupal 9 to Drupal 10 upgrade brings.
Drupal Upgrade Status Module
It is the most crucial piece of equipment needed to complete the upgrading effectively. It completes each important step required to get you ready for the upgrade. It is strongly encouraged to install the Upgrade Status module via the Composer package manager because it requires external PHP dependencies.
The Git Deploy and Update Manager modules must both be enabled. After installation and activation, the Upgrade Status module’s user interface can be accessed at /admin/reports/upgrade. The module will check your core, contributed, and custom modules and themes and notify you of those that have out-of-date code.
The drupal Upgrade status module provides you with the interface as shown below:
This provides the information on the system requirements:
1. Drupal core should be at least 9.4.x
2. PHP version should be at least 8.1.0. Before updating to PHP 8, use $ composer why-not PHP 8.1 to check if any projects need updating for compatibility. Also, check custom projects manually.
3. Database JSON support is required.
4. Permissions should be defined in a permissions.yml file or a permission callback.
The downloaded report includes information on the file in which the problem is present as well as the problem itself and its root cause. Additionally, it advises removing any modules that have been uninstalled and any that are compatible with the needed version.
Drupal Upgrade Rector Module
Drupal Rector should be able to manage upgrades for common use cases, but more complex use cases may result in broken functionality from code modifications. A couple of these troubling circumstances are described in each Rector regulation.
According to a set of Rector rules, Drupal Rector updates a deprecated API that is utilized by Drupal. Adopting this tool would save you a ton of time and effort and eliminate any chance of human error because the method is automated. Naturally, there are goals for the future of the automated tool.
It can be accessed from /admin/reports/Upgrade Rector
Checklist for a Quick Drupal 9 to 10 Upgrade
1. Make sure to update the website’s current version.
2. Create a list of the websites’ installed libraries and themes. List each of the installed contributed and personal themes for the website.
3. Contributed documents and deployed custom modules on the website. The Upgrade Status module can help with module identification. This module looks through the website, lists the modules that are compatible with Drupal 10, and, if any new versions have been released, proposes updating them. Additionally, Upgrade Status advises uninstalling any deactivated modules.
4. Recognize obsolete code. The deprecations for modules and themes can be found using the Drupal-check module.
5. Update the modules that were donated. Update donated modules to the most recent Drupal 10 version that is compatible.
6. Refresh the custom modules. To be compatible with Drupal 10, custom modules must manually update their code. In the info.yml file, add the core version required key.
7. Update the themes that were contributed. Update submitted themes to Drupal 10’s most recent version which is still functional.
8. Any deprecation code must be updated or removed in order for custom themes to be compatible with Drupal 10. In the info.yml file, add the core version required key.
9. Verify that Drupal 10 and the libraries are compatible. Make sure to uninstall any unnecessary modules. Using composer, remove unnecessary modules.
10. Update Drupal 10’s core codebase. Once every module, theme, and the library is compatible with Drupal 10, add drupal/core-composer-scaffold, drupal/core-recommended, and composer update while referencing the appropriate Drupal version in composer.json.
That’s all, then! Your website’s conversion from Drupal 9 to Drupal 10 was successful. Was that not simple?
The easiest way to get ready for Drupal 10 is to keep informed. Now that Drupal has adapted to a flexible update schedule and simpler migration procedures, businesses are less likely to hesitate to make that transition.