Drupal 10 is planned to release in December 2022, the expected release date is 14 December 2022.

Drupal-10 is coming with lots of new features and improvements, Developer who didn't fall in love with the Gin Admin theme will experience a clean and modern admin design. 

In this article, we will discuss key features and other possibilities of Drupal-10

Drupal-10 - PHP Requirements

Recommended PHP version is 8.1.6 for Drupal-10 with a minimum 64MB memory size and with the following PHP extension.

  • XML extension
  • GD library
  • PHP OpenSSL
  • PHP cURL
  • PHP mbstring

Full details are listed here - https://www.drupal.org/docs/system-requirements/php-requirements


Drupal-10 - New Features

Claro Administration Theme

Claro admin theme is replacing seven. It's a clean accessible admin theme with a new fresh look and improved and modernized underlying javascript code, which will support all types of decoupled applications.  It's a part of  Admin UI & JavaScript Modernisation initiative. 

They may also create a react admin app in the future under this initiative.

Claro Admin Theme

Olivero Theme

It's a new frontend theme replacing the default Bartik theme. It provides a modern look and feel, WCAG AA compliance, and is a responsive theme developed using CSS grid. Its minimal clean theme with stunning and eye-catching design, and is best for bloggers who want to start their blogs quickly.

Olivero Theme

CKEditor 5 - Improved editing experience

Another improvement is CKeditor 5, CKeditor 5 introduced to improve the editing experience, and also because CKEditor 4 is retiring next year (2023), CKEditor 5 is a completely new build. Drupal-10 CKEditor includes some advanced features like autoformatting, for example, it will allow you to add bold with **asterisks**, headings with #, inline code with 'text', code blocks with "', and bulleted lists with *.   
A few features like "print to pdf", "@mentions", and "comments" are not included in Drupal-10. but those can be added by developing a contributed module using CKeditor 5 plugin structure.

CKEditor 5

Symfony 6

Symfony 6 is being used in Drupal-10 which required PHP version 8.1 and above, so we can expect improvement in performance here. Symphony 6 itself introduces several improvements compared to its previous version with some new features, We can check the latest symphony features here    
https://symfony.com/blog/symfony-6-1-curated-new-features

Recipes

Recipes will assemble purposeful functionality to achieve a goal (e.g. LMS site, News portal). It will be easy to install and uninstall, We can install and uninstall it at any phase of development, It will be extensible and one recipe can also be dependent on another recipe.    
Earlier we use distribution and profiles for this which are hard to uninstall and update once the project started with that.

Decoupled Menus

Decoupled menus are part of decoupled menus initiative. Initial goal of this initiative is to provide a structured, configurable JSON response of menu items that can be consumed by the frontend javascript application in order to render the menu. It will allow frontend developers to avoid hardcoding of menu items. 
Right now the decoupled menu is developed and available as a contributed module. Later it will be included in drupal core. 
More information - https://www.drupal.org/docs/develop/decoupled-drupal/decoupled-menus/decoupled-menus-overview 
Module - https://www.drupal.org/project/decoupled_menus

Project Browser

Project browser is currently available as a contributed module, It provides a dedicated screen in admin to get contributed module information, It's easy to find modules using different kinds of filters available there, It also shows us installation instructions.

Automatic Updates

This is one of the key features developed as a contributed module but there is no release for Drupal-10 till now (9-Nov-2022)


Migration & Upgrade

Drupal-7 to Drupal-10 Migration

Drupal-7 to Drupal-10 will be a migration process, we have to follow a typical process that we usually follow for Drupal-7 to Drupal-9 migration.

Drupal-8/9 to Drupal-10 Upgrade

Drupal-8/9 to Drupal-10 will be an upgrade process, and we can follow typical upgrading steps for it.     
If we want to upgrade Drupal-8 to Drupal-10, then it is necessary to update Drupal-8 to Drupal-9 and then to Drupal-10. In this way, we will get all the schema updates that are introduced in Drupal-9 

Although CKEditor 5 is developed in a way that we will not lose our data during migration but still if we are using some CKEditor plugins which are not compatible with CKEditor 5 then we have to face some discrepancies during migration.

Steps to upgrade Drupal-9 to Drupal-10

  • Our server needs to fulfill PHP version requirement of Drupal-10.
  • Install upgrade status module.   
    composer require drupal/upgrade_status
  • Fix compatibility issues of modules by updating them to the correct version (Which supports both 9 & 10)
  • Install drupal reactor (https://github.com/palantirnet/drupal-rector)   
    composer require --dev palantirnet/drupal-rector
  • Run the reactor command to fix deprecated code of custom module
  • Sometimes we may also need to fix the code manually.
  • Run the composer command to update Drupal core.

Drupal-9 End of Life

Symfony-4 is being used in Drupal-9, and Symfony-4 is reaching to end of active support by 21-Nov-2022 and its security support will end by 21-Nov-2023, at the same time Drupal-9 will also retire.