State of Drupal 10
June 25, 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-25-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?

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*****

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

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

Beta from Drupal 9.4

Changes the paradigm of theming and responsibility of Drupal themers.

Drupal 10 will 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
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

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

Upgrade Status

drupal-rector

Project Update Bot restarted 9 days ago

4748
issues opened

 

127
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

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
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"

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