Symfony 6.0.0 Latest Version Released: What it Means to Drupal?

https://unsplash.com/

Symfony  6.0.0, the latest version just got released 18 hours ago and is reported to be stable.

What is Symfony?

A PHP web application framework, Symfony has a library of reusable PHP components. Licensed under MIT, it was published as a free software first in October of 2005.
Fabien Potencier, the founder created Symfony as an open-source framework to create web applications.

What does this mean to Drupal?

Drupal 10 is scheduled to be released as early as June 2022 because Drupal 9's Symfony 4 and CKEditor 4 are both having End of Life around the end of 2023. According to Gabor Hojtsy, Acquia’s Drupal Core Product Manager and Initiative Coordinator,

(Quote paraphrased)

The plan is to give enough time for people to update to Drupal 10 before Drupal 9 goes end of life. A similar situation happened with Drupal 8 to 9 driven by Symfony 3 to 4. However, moving Drupal 10 from Symfony 4 to 5 would again only give a couple of years of time to move on to Symfony 6 next, so the current plan is to move to Symfony 6 straight.

Symfony security extension for Drupal-used packages

First of all, Symfony normally supports minor releases for 8 months starting with Symfony 5. On the other hand Drupal minor releases are supported for 12 months, so if there are security fixes to be made, this would not be possible on a non-LTS version of Symfony. However arrangements are made with the Symfony team to have two of the Drupal core committers be part of the Symfony security process and be able to backport security fixes as needed for components used by Drupal even if the given Symfony minor version would be normally out of support. The two Drupal core committers involved are Alex Pott and Lee Rowlands!

Bridging the deprecations jump with Symfony 5.4

Second is bridging API deprecations. The problem is that Symfony 4 deprecated some APIs for removal/changes in Symfony 5 and Symfony 5 deprecated some APIs for removal/changes in Symfony 6. Jumping through two versions gives Drupal 10 a potentially longer lifetime but with a need to solve identifying all deprecated API uses for both. Now that both Symfony 5.4 and 6.0 are out, the plan is to open the Drupal 10.x-dev branch for development very soon and update to Symfony 5.4 as well as other big dependency updates. Then release a Drupal 10.0.0-alpha1 that is based off of Symfony 5.4, which would allow contributed projects and custom code to check against deprecated APIs towards Symfony 6. And only later update to Symfony 6. This way there is a middle-point that allows to make the necessary updates and check deprecated APIs against.

A proposal with overlapping LTS release versions of Drupal core

Releasing Drupal 10 on Symfony 6 would give it longer support, up to November 2027. However it does not mean that Drupal 11 cannot be released earlier than 2026 let's say. Releasing earlier would allow the jump to Symfony 7 faster while still giving Drupal 10 users a more comfortable, longer support timeline.