State of Drupal 10
Oct 4, 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-oct-4-2022

Gábor Hojtsy

Acquia

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

 

Contact me at @gaborhojtsy

1. Why Drupal 10
2. What's included
3. How to get there (tools)
4. Features coming after

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?

Beta1 Sept 16, 2022
Currently at beta2 Sept 29, 2022
RC1 Week of Nov 14, 2022
10.0.0 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*****

Current support timelines

Drupal 9.2.0

Released:
2021. June

EOL:
2022 June

Within a major version, you must update every 12 months or so to keep security coverage.

* Except the last LTS which could go for 18 months max.

Potential future (#3238652)

Drupal 10.0
Released:
2022. Dec

Drupal 11.0
Released:
2024. June

Drupal 12.0
Released:
2026. June

Drupal
10.4 LTS

2024. Mar

Drupal
11.4 LTS

2026. Mar

EOL 2026. Sept

EOL 2028. Sept

What's in Drupal 10?

Same features as in Drupal 9.5,

with the deprecated parts removed

Drupal core initiatives

Olivero is stable
and the default

 

Claro is stable and
default admin

Starterkit
Many modules to contrib
 

Bugfixes to existing core functionality

Done by 9.4

Done by 9.5/10.0

10.1 or later

Decoupled menus
Project Browser
Automatic updates

New Easy out of the Box
Features: Media/Layouts
Starter templates/recipes
Core module migration

Starterkit theme

Beta from Drupal 9.4, stable in 9.5

Changes the paradigm of theming and responsibility of Drupal themers.

Drupal 10 will support Starterkit tools to create custom themes.

Starterkit theme

My
theme

New: Copy & customize for your site

Current: runtime inheritance

My theme

Base theme

Drupal 10 readiness initiative

CKEditor 5

Experimental in 9.3, stable in 9.5.

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

Drupal 10 includes

CKEditor 5, CKEditor 4 moved
to contrib.

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

Symfony 5

Started updates as of Drupal 9.1.0

 

Symfony 6

Backported as possible to Drupal 9

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-beta1 based on Symfony 6.1, will update to Symfony 6.2 before stable.

PHP 8 support

PHP 8.0 since Drupal 9.1.0,
PHP 8.1 since Drupal 9.3.0
PHP 8.2 in the works #3283358

Updated Drupal Core and worked heavily with dependencies.

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

Modules:
Quickedit
Aggregator
HAL
RDF
Color
CKEditor 4

In Drupal 10 these will move to contributed projects.

Themes:
Bartik
Seven
Classy
Stable

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

Upgrade Status

drupal-rector

Project Update Bot issues posted

6896
issues opened

 

775
fixed/closed (fixed)

Drupal 9.4.0 defined all deprecated APIs!

*Other than whole modules and themes being deprecated

1. Update to Drupal 9.4
and PHP 8.1

2. Start updating projects to Drupal 10 compatibility

dev.acquia.com/drupal10

1149 projects are compatible and stable!

79% of Drupal 10
fixes are 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
https://packagist.org/packages/mglaman/composer-drupal-lenient

Or default constraint loosening
#3267143

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

"Drupal 11"

Automatic updates

Stable in contrib!

 

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: #3308319

Live site

Staged copy

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 recipes

(Formerly starter templates)


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

- No upgrade path by default
- Still under devel

https://www.drupal.org/project/distributions_recipes

Project Browser

More modules will move to contributed projects

Summary

Drupal 10.0: Dec 14

1. Make your code PHP 8.1 compatible now

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

Drupal 10 meetings
every Monday in #d10readiness

Dedicated channels for
#ckeditor5
#autoupdates

#distributions-and-recipes
#project-browser