Drupal 10: Uncovering New Features and Benefits
Drupal 10 will be arriving summer of 2022. Much like the update from Drupal 8 to Drupal 9, this update will be a smooth transition for any well-built and maintained Drupal site. Since Drupal 8, the maintainers of Drupal have implemented a predictable approach to releasing new versions of the CMS. This benefits everyone that builds, maintains, or manages a Drupal site by giving us a clear path for updates from one major version to another.
In many cases, this update is trivial for developers and can be performed with a few simple steps. For site administrators and content creators, it's a seamless transition that brings in new features and enhancements that makes managing Drupal sites easier and faster.
The first beta version of Drupal 10 will be released alongside a beta version of Drupal 9 (either 9.4 or 9.5, depending on Drupal 10's readiness). The release of these together is intentional and reveals the commonality between these two major versions of Drupal. When Drupal 10 drops, it will essentially be the same as the last minor version of Drupal 9, with a few key differences that will benefit site managers and developers.
Deprecated Code Removed
Drupal core code and libraries that have been identified as "deprecated" in Drupal 9 will be removed. Throughout the life of Drupal 9, improvements have been made to the code that runs the framework. When an enhancement is made in the code, there's likely some other code that can be retired.
That retiring code can't be immediately removed as it may break functionality in a site's custom code or contributed modules, so this code is marked as deprecated to communicate that it's being removed in the next major version of Drupal. This gives developers ample time to update their code to be compatible with Drupal 10.
An example of deprecated code in Drupal core in Drupal 9 is the class "NodeAddAccessCheck." This helps determine if a user has permission to add a new Drupal node (content entity) to the site. This is being removed in favor of "EntityCreateAccessCheck" which performs the same function but is used to check for permissions to add any entity type rather than just nodes. This streamlines the codebase and makes writing code that needs to check user permissions more consistent.
Another type of deprecation that Drupal needs to account for is when external code and libraries Drupal uses are going end of life. Drupal leverages the Symfony framework "under the hood" to provide a lot of functionality that's common to almost every website—things like managing cookies, handling and routing incoming requests, and services. This gives us a great starting point for building Drupal core rather than having to reinvent the wheel for each of these components. Drupal 9 uses Symfony version 4, which is slated to go end of life in November 2023. Drupal 10 will use Symfony version 6, which brings the latest enhancements of Symfony to Drupal and will help to keep the system secure.
Some of these may seem like trivial updates to Drupal 10, but these improvements help with site security, performance, and consistency from page to page in the admin UI. Together this makes Drupal 10 easier for content creators and site administrators to carry out their work on the site.
Changes to Some Drupal Defaults
When installing Drupal for a new website application, there are a lot of settings that implement the out-of-the-box look and functionality of the site. When installing a new site in Drupal 9 with the standard installation profile, we are greeted with this frontpage on the site:
This familiar face is the default theme, Bartik, for the site.
The default front-end theme for Drupal 10 is now Olivero which is described as "A clean, accessible, and flexible Drupal front-end theme." It was originally introduced as an experimental theme to Drupal core in version 8.8. The Olivero theme has been available as a stable theme since Drupal version 9.3.
Another visual change to Drupal is a new administration theme, Claro, which is replacing the older Seven theme.
Here is the old Seven administration theme:
Here is the refreshed Claro theme:
The new default themes in Drupal 10 will provide a better experience for content managers of Drupal sites. Content managers and site administrators will be able to more easily find and do the work they need to do in the back end of their Drupal sites.
Removing Some Core Modules
Drupal 10 core will say goodbye to a few modules that are redundant or not widely used. These modules will be moved to the Contributed Module space for continuity. This move will help make Drupal's core leaner and easier to maintain. According to Drupal core discussions, these modules are likely to be removed from Drupal core:
- Aggregator - Gathers and displays syndicated content (RSS, RDF, and Atom feeds) from external sources.
- QuickEdit - In-place content editing.
- HAL - Serializes entities using Hypertext Application Language.
- Activity Tracker - Enables tracking of recent content for users.
- RDF - Adds metadata to pages to let other systems understand its attributes.
- Forum - Provides discussion forums.
Some of these core modules were enabled by default, but hardly ever used according to usage statistics and user surveys. Clearing these from Drupal core will help remove visual clutter and improve the content management experience for users.
Saying goodbye to QuickEdit will make Drupal 10 easier for content creators to manage. The QuickEdit module added a pencil icon next to any content field on the site. While this was a nice-to-have feature when it was first introduced in Drupal 7, its usefulness has diminished since the introduction of workflows with content revisions. Once content moderation workflows are added to a Drupal site, the inline editing experience of QuickEdit can't be used as it's not compatible with workflows.
Among the great improvements to the overall system, are some new features that content creators are going to enjoy.
New Editing Experiences
CK Editor 5 will be the default rich text (WYSIWYG) editor in Drupal 10. With it comes a lot of features that will improve the content editing experience. These include Autoformatting where you can add bold with **asterisks**, headings with #, inline code with 'text', code block with ''', and bulleted lists with *.
There are also improvements to the paste-from-document functionality. The new version of CK Editor touts the ability to remove the extraneous markup that comes from pasting from Word or Google Docs. It also automatically uploads images when pasting images from the clipboard, rather than simply adding it as an <img> tag that points to a third-party site.
Drupal's popular page-building tool, Layout Builder is also slated to have improvements that will make managing content on the site better for content creators. The full details of these improvements are not yet available. I hope and suspect that a new layout editing experience will include a modal rather than sticking to the small sidebar that we have today.
Editing large blocks of text in the sidebar can be cumbersome and confusing, especially when there are more than just a few fields to edit. Improvements to this experience will make managing layouts much easier.
Other enhancements to Layout Builder could include improvements to the interface itself. For some, the Layout Builder interface is clunky, and pending feature requests ask for better ways to move and manage blocks that are placed within Layout Builder.
Foundation for Future Improvements
The release of Drupal 10 clears the path for additional improvements to Drupal that will be built over the next few months and years. Keeping Drupal up-to-date with the latest, fastest, and most secure open source libraries and components give Drupal developers the ability to continually innovate and bring new features to Drupal.
With the emergence of composable experiences and the further intertwining of web and social media in marketing, Drupal 10 continues to pave the way for some great user experiences into the future.