Drupal 10 was released on December 14, 2022, with new features and new possibilities. Here's what you need to know.
Making Drupal beautiful with Claro and OIivero
Drupal 10 has two new default themes, and we are proud to say that we helped push these initiatives forward so that they would be ready and stable for this release.
Olivero, the new front-end theme, has a modern design that accommodates common features like secondary navigation, media embeds, and layout builder. It is also WCAG AA conformant. Learn more about the design process for Olivero.
Claro, the new administration theme, came out of Drupal's Admin UI & JavaScript Modernisation initiative. Claro refreshes the administration UI with an up-to-date look and feel and brings in well-known UI patterns used on the web. It also has a focus on being accessible to as many users as possible. In the future, you can expect Claro to focus on UX improvements for each persona who has a hand in managing a Drupal website.
Theme starter kit
Currently, if you want to create a custom theme, you could use a core or contrib theme as a base theme and inherit all of its code and functionality. This works great…unless you want to modify or remove parts of the base theme. Drupal 10 comes with a theme generation tool that copies all of a theme's files and performs some string replacement to create the same theme but under a different name.
You can use this tool to copy the new starter_kit
theme and have a new theme with basic templates and CSS. This barebones theme provides useful scaffolding, ready to be customized. If you want to streamline theme development further with different templates and defaults, you can create your own "starter" theme and use that as a base from which to copy.
More upcoming features
The plan is to make Automatic Updates and Project Browser a part of Drupal Core during Drupal 10's lifecycle. These features help match user expectations for using a modern content management system.
Automatic Updates lets you update Drupal Core with the push of a button, but only patch-level changes. You won't be able to use it to upgrade to Drupal 11, for example, but you will be able to use it to update to new minor versions of Drupal 10. Listen to our podcast with three of the people working to make Automatic Updates a reality.
Project Browser lets users search for modules and themes and install them without leaving their Drupal site, even if the site uses Composer to manage packages and dependencies.
Upgrading from Drupal 9
Drupal 9 will reach its end of life on November 2023, which matches the end of life for Symfony 4. This gives you almost a year to plan your upgrade. While upgrading to Drupal 10 shouldn't be a huge endeavor, you'll want to pay attention to the modules you use and your hosting infrastructure. Both can cause unexpected snags. Here is what to look out for:
- Contributed modules - make sure the contributed modules you have installed are ready for Drupal 10. If they aren't, consider working with the maintainers to help create and test patches. Acquia has a running list of modules and their Drupal 10 readiness status.
- Custom modules - make sure your custom code is not using any deprecated functionality.
- Hosting infrastructure - Drupal 10 will require PHP 8.1. Drupal 9 requires PHP 7.3, so you might have some system administration work to do.
Porting your code to Drupal 10
Drupal 9.5 and Drupal 10 will be identical, but Drupal 9.5 will still have all deprecated functionality remaining. This means you can update to Drupal 9.5, update your code to remove any deprecated functionality, and then it will be ready for Drupal 10. Here are the steps you want to take:
- Have two testing environments available: one with Drupal 9.5 and one with Drupal 10.
- Run the
upgrade_status
script to analyze your modules (or use the Drupal Upgrade's module UI) on the Drupal 9.5 environment. View more detailed instructions on creating Drupal 10 patches. Apply the code fixes suggested. - Manually test the changes on the Drupal 9.5 environment.
- Manually test the changes on the Drupal 10 environment.
After you have worked through all the fixes, your codebase will be ready to upgrade to Drupal 10. You won't have much to do here if you have kept up with Drupal 9 deprecations as they have been updated.
Moving to CKEditor 5
Drupal 9 uses CKEditor 4 as its default rich text editor, but Drupal 10 will use CKEditor 5. This latest version of CKEditor is a complete rewrite with a modern JavaScript architecture and an improved UI. You'll have access to several new features.
But since it is a rewrite, CKEditor 4 plugins are not compatible. If you only used its out-of-the-box Drupal features, then moving to CKEditor 5 is simple. After updating to Drupal 9.5, switch your text formats to use CKEditor 5, which will trigger a semi-automatic upgrade path.
If you want to stay on CKEditor 4 for a while, install the CKEditor 4 module before moving to Drupal 10. This can buy you some time if you have some custom CKEditor 4 plugins you need to migrate because all custom JavaScript code will need to be rewritten. Like Drupal 9, CKEditor 4 becomes end-of-life near the end of 2023, so the sooner you start, the better.
Time to get prepared
A year goes by faster than you think. It's almost the end of 2022 already, and many people will be surprised despite the previous eleven months of hints, clues, and warnings. Time doesn't crawl, it gallops at a thundering pace. Drupal 9's end-of-life will be here before you know it. Start planning for Drupal 10 now.
Still on Drupal 7? Find out what your options are, including the possibility of migrating to Drupal 10.
Already feel behind? Maybe a little overwhelmed? Maybe your development has been focusing on new features and enhancements, and you don't want to grind their progress to a halt so you can do updates. Either way, we can help. Our support and maintenance services prioritize long-term maintenance by creating automated end-to-end testing and automated package updaters that keep your website updated, stable, and secure. When your website stays current with the latest Drupal core and contrib releases, upgrading to Drupal 10 (and beyond) becomes much easier.