Third & GroveThird & Grove
Sep 30, 2020 - Nathaniel Catchpole

What's Going On With Drupal 10?

What's Going On With Drupal 10?

Drupal 10 is targeted for release in June 2022, but why is it necessary so soon after Drupal 9, and what will be in it?

Drupal 9.1’s first alpha release will be in October, and we’ve already started to prepare for Drupal 10. Drupal 10 will be the third major release since the adoption of a new development cycle for Drupal 8, however it will also be the first major release where the development has started with that cycle fully in place. Whereas Drupal 9.0 was released four and a half years and nine minor releases after Drupal 8, Drupal 10 will be released two years after Drupal 9 and just four minor releases.

Many aspects that allowed us to release Drupal 9, such as the deprecation policy, were developed while we were still building up to it, but Drupal 10 has all this infrastructure in place, and with few minor releases in between, the total change between Drupal 9 and 10 will be smaller. However, there are pressing reasons to release a new major version sooner than later.

Drupal 8 adopted a number of external PHP and JavaScript dependencies, notably Symfony and CKEditor. Both Symfony 4 and CKEditor 4 will reach end of life in 2023, meaning unless we backport security fixes for those projects ourselves, this also needs to be the end of security support for Drupal 8. Major versions are also when we tend to drop support for operating system requirements like older versions of PHP and databases, and for example PHP 7.4 will also go out of security support in 2023.

Symfony

Drupal 9 released on Symfony 4.4, the LTS release for that major version of Symfony. However while we released on Symfony 4.4, we still had some Symfony 4 deprecations to deal with. We’re therefore updating Drupal 9’s codebase so that it’s up-to-date with the latest Symfony 4 code and where necessary providing bridges and custom deprecation notifications to enable contributed modules to become Symfony 5 compatible. In addition, Symfony 5 has already been released and is adding it’s own deprecations for Symfony 6, many of which can be addressed in Drupal 9. The goal then, is to release Drupal 10 on at least Symfony 5.4, but also keep up with Symfony 6 development and potentially jump to Symfony 6, if we can do so without disruption to contributed modules

CKEditor

CKEditor 5 was released in spring 2018, which means CKEditor 4 will go out of support during 2023. CKEditor 5 was rewritten from the ground up, and according to the CKEditor team should be considered an entirely new editor. This means we need to update to CKEditor 5, or even switch to a different modern editor in order to benefit from bugfixes and new features. Either approach has significant challenges both for adapting our integrations to the new editor as well as preserving existing content when it’s edited.

To make CKEditor available for Drupal 10, it actually needs to be available as a new module in Drupal 9 beforehand, so that sites can switch to the new editor and update their configuration before they actually update to Drupal 10. This means that time is short!

jQuery UI

jQuery UI was added to core eleven years ago and is stil used in several places in Drupal 9. However the rest of the JavaScript world, including the jQuery team itself, has moved on and it is not really supported any more, there is also no new version of jQuery UI to update to. Work is in progress to replace jQuery UI components we use in core with supported solutions. There’s also work to reduce our dependencies on jQuery itself, now that writing vanilla JavaScript is a lot cleaner than over a decade ago.

Guzzle, Twig, and more!

Guzzle 7 was released this month. Twig 3 was released in November last year. As time goes on, new major versions of different dependencies may be released, which we’ll in turn need to update to.

As with jQuery UI, Drupal 10 also gives us the opportunity to factor out dependencies from core, this has already been done with Symfony CMF.

New Features in Drupal 10?

As with Drupal 8 and Drupal 9, the Drupal 10.0.0 release is not really a target for new features, since we aim to minimise the changes between Drupal 9.LAST and Drupal 10.0.0. The good news though, is that features can be added to each Drupal 9 minor release. This means that CKEditor 5, the new Olivero front end theme, the new Claro admin theme etc. may well be available in Drupal 9 either as experimental or stable components before Drupal 10 itself.

How Can I Help With Drupal 10?

As well as the issues linked above, there is an overall tracking issue + several child issues for Drupal 10 In the Drupal 10 issue queue.

Every Monday at 6pm UTC, there is a Drupal 10 readiness meeting in the #d10readiness channel in Drupal slack.