State of Drupal 10
June 1, 2022

@gaborhojtsy

Slides are open source

(CC BY-NC-SA 2.5)

Created by @gaborhojtsy at @acquia

Review links, check out speaker notes and present your own from slides.com/gaborhojtsy/state-of-drupal-10-readiness-june-1-2022

Gábor Hojtsy

Acquia

Initiative coordinator for Drupal 10.
Drupal contributor since 2003, committer since 2007.

 

Contact me at @gaborhojtsy

Why Drupal 10?

2020 2021 2022 2023 2024
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Q1 Q2 Q3 Q4

Symfony 3 End of Life

8.9
9.0 9.1 9.2 9.3
9.4 9.5

SF4 / CK4 End of Life

Drupal 9 security and
bug fix support

Drupal 8 security and
bug fix support

Drupal 10 security and
bug fix support

10.0 10.1 10.2 10.3 10.4

When is Drupal 10 released?

Beta requirements done by Release date
March 18 June 15, 2022
May 13 August 17, 2022
September 9 December 14, 2022
2020 2021 2022 2023 2024
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Q1 Q2 Q3 Q4
8.9
9.0 9.1 9.2 9.3
9.4 9.5

Drupal 9 security and
bug fix support

Drupal 8 security and
bug fix support

Drupal 10 security and
bug fix support

10.0 10.1 10.2 10.3 10.4

Drupal 7 security and
bug fix support

 [Don't know
yet]

Drupal 10 is
on Symfony 6.x

 

Theoretic end of life could be as late as
November 2027*****

Potential to have 6 month overlapping LTS releases: #3238652

What's in Drupal 10?

Same features as in Drupal 9.5

Drupal core initiatives

Olivero is stable
and the default

 

Claro is stable and
default admin

Automatic updates
Starterkit
 

Bugfixes to existing core functionality

Done by 9.4

Could be in 9.5/10.0

10.1 or later

Decoupled menus
Project Browser

 

New Easy out of the Box
Features: Media/Layouts

Starter templates/recipes
Core module migration

Starterkit theme

Experimental from Drupal 9.2

Changes the paradigm of theming and responsibility of Drupal themers.

Drupal 10 will hopefully include Starterkit tools. #2659890

Starterkit theme

My
theme

New: Copy & customize for your site

Current: runtime inheritance

My theme

Base theme

Automatic updates

Built as a contributed project.

 

Supports attended (manual) patch updates by default. Unattended (cron) dependent on TUF, minor update supported as experimental.

 

Help test in contrib to get into core sooner: #3275810

Live site

Staged copy

Drupal 10 readiness initiative

CKEditor 5

Released experimental in 9.3.0

Upgrade path included that converts CKEditor 4 configuration to the new version. Very close collaboration with CKSource.

Drupal 10 will include

CKEditor 5, CKEditor 4 moves
to a contrib. #3238333

  1. Object model
  2. Plugin system
  3. Configuration
  4. Migration

Symfony 5

Started updates as of Drupal 9.1.0

Symfony 5.4 is available and stable.

Symfony 6

6.0 is out as of November 2021
6.1 is out as of May 2022

Two Drupal core committers are on Symfony security team now and can make releases of non-LTS versions.

Released Drupal 10.0.0-alpha1 as a stepping stone,
based on Symfony 5.4.

Drupal 10.0.0-alpha2 based on Symfony 6.0, will update to Symfony 6.1 soon.

PHP 8 support

PHP 8.0 since Drupal 9.1.0,
PHP 8.1 since Drupal 9.3.0

Updated Drupal Core and worked heavily with dependencies to make compatible releases available.

Composer 2

Backported even to 8.9.x

Core composer plugins updated to be Composer 2 compatible.

Final PHP requirement is
PHP 8.1 due to Symfony 6.1
requiring PHP 8.1.

Drupal 10 requires 2.3 for dev (CLI still a question)

jQuery UI

Many components removed in Drupal 9.0.0 already

Dialog, Autocomplete, Dropbutton remain. jQuery UI announced renewed security support.

jQuery

Not changed in Drupal 9.


Many components still use it.

These components will
stay around. #3067261

Would have liked to remove it but will stay. #3052002

Moving to contrib

Quickedit #3228986
Aggregator #1136482
Forum #1898812
HAL #3049856
RDF #2152459
Tracker #3261679
Color #3274149

In Drupal 10 these will move to contributed projects.

System requirements

No support for Internet Explorer
MySQL 5.7.8 (same) / MariaDB 10.3.7 (same)

SQLite 3.26 (same) + json1

PostgreSQL 12 (up from 10) + pg_trgm
PHP 8.1
Composer 2

Upgrade tools

phpstan-drupal ➡️ drupal-check ➡️ Upgrade Status

phpstan-drupal Upgrade Status

drupal-rector ➡️

Project Update Bot

Half of projects only need an info.yml file change

Drupal 10 compatibility fixes already mostly automated

Most problems to solve are Drupal 8 to 10 changes

Drupal 9 contrib 6 months in

"In total, the Drupal community worked on 4,195 different Drupal.org projects [in 2020]"
https://dri.es/who-sponsors-drupal-development-2020

Drupal 9 to 10

Drupal 8 to 9

Lenient Composer
Endpoint

 

#3240297

Composer plugin or
default constraint loosening

#3267143

Drupal 7 (core) migrations
to Drupal 10 will
still be provided

"Drupal 11"

Distributions

+ Can really tailor the experience
+ Supported upgrades (for a while)


- Expensive to maintain
- Hard to move on if abandoned
- Impossible to combine

- Not exposed in the installer

Drupal recipe

Not final name. Formerly also starter templates.

+ Easier to create / maintain
+ Supports composition
+ Planned to be exposed in installer

- No upgrade path by default
- Does not exist yet

Project Browser

More modules will move to contributed projects

Summary

Drupal 10.0: Dec 14
Beta requirements done: Sept 9

1. Make your code PHP 8.1 compatible now

2. Drupal 9.4 beta defined all the deprecations,
so start using Upgrade Status and drupal-rector

Drupal 10 meetings
every Monday in #d10readiness

Dedicated channels for
#ckeditor5
#autoupdates

#distributions-and-recipes
#project-browser