[FFe] Symfony 6
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
php-symfony-contracts (Ubuntu) |
Fix Committed
|
Undecided
|
Athos Ribeiro | ||
symfony (Ubuntu) |
Fix Committed
|
Undecided
|
Athos Ribeiro |
Bug Description
Debian started the Symfony 6 transition after Ubuntu's Feature Freeze started. This is an upstream LTS releases to be maintained until November, 2027 (https:/
Symfony is not only a PHP web framework, but a (large) set of re-usable libraries.
PHP Standard Recommendations (PSR) are specifications that aim to standardize programming concepts and techniques in PHP.
The php-psr-* set of packages is used to enforce such specifications through the interfaces those packages expose to their users.
Symfony 5.x depends on versions 1.x of the php-psr-* stack.
When Ubuntu transitioned to PHP 8 ahead of Debian, back in Jammy, some of the php-psr-* stack was updated to versions 2.x or 3.x.
Several PHP packages were patched back then to adapt to the new psr stack, including symfony. However, symfony 5.x is not compatible with the new PSR stack and the patches left some of the package features broken.
Moreover, here is the changelog for our current symfony delta:
- d/rules: Disable running phpunit testsuite during build.
- d/p/implement-
- d/p/implement-
- d/p/implement-
- d/p/implement-
- d/t/control: Mark tests flaky for now due to remaining php8.1
inadequacies.
As one can see, despite all the compatibility patches being added, the fact that the test suite needed to be completely disable should suffice to show the package is currently not php-psr-* > 1 compatible.
With the Debian transition going on, this seems to be a great opportunity to fix the situation for noble.
It is also worth mentioning that, since auto-sync was still enabled for a while after feature freeze, some new package versions required for the symfony 6 transition ended up being sync'd already.
Finally, I staged part of the transition in a PPA at
https:/
https:/
This was needed so we could figure out how to deal with the symfony circular dependencies so we could get a proper symfony 6 build if/once this is approved.
Here are the steps we will need to take (not considering potential test failures):
- Remove the php-symfony-
* d/control: remove php-symfony-
symfony6 build in the archive.
* d/rules: do not run test suite during build.
- Introduce php-symfony-
- No-change rebuild symfony with php-symfony-
- Revert the symfony changes introduced above, and patch symfony to build with the latest version of libicu (the patch is already available in the PPA linked above).
- Check reverse dependencies for pinned symfony versions, to ensure they are all ready for symfony 6.
For now, we need a FFe to update both
* symfony; and
* php-symfony-
The upstream changelogs are attached as comments to this bug.
This is the list of reverse dependencies which will need to be checked:
composer
doctrine
gregwar-captcha
libphp-swiftmailer
pdepend
php-async-aws-core
php-composer-
php-doctrine-
php-doctrine-cache
php-doctrine-
php-doctrine-dbal
php-doctrine-
php-embed
php-fruitcake-
php-giggsey-locale
php-league-
php-monolog
php-nyholm-psr7
php-oscarotero-
php-phpstan-
php-proxy-manager
php-symfony-mercure
php-symfony-
php-symfony-
php-symfony-
php-tijsverkoye
php-twig
phpmyadmin
phpmyadmin-
phpunit-diff
tweeper
== Where problems could occur? ==
While we playd the builds in a PPA to ensure we can rapidly untangle the circular dependencies for symfony, we did not play its migration. We may need additional FFes in the PHP stack to complete symfony's migration (or to request removals). If that is needed, we will add additional components to this bug with the additional requests.
description: | updated |
description: | updated |
description: | updated |
Changed in php-symfony-contracts (Ubuntu): | |
status: | New → Triaged |
Changed in php-symfony-contracts (Ubuntu): | |
status: | Triaged → Fix Committed |
Changed in symfony (Ubuntu): | |
status: | Triaged → Fix Committed |
Changed in php-symfony-contracts (Ubuntu): | |
assignee: | nobody → Athos Ribeiro (athos-ribeiro) |
Changed in symfony (Ubuntu): | |
assignee: | nobody → Athos Ribeiro (athos-ribeiro) |
This is symfony's changelog. I parsed the entries for the versions being introduced and only fetched the entries listed as new features here.