Postponed on #3257837: Use or ignore-requirement-for PHP 8 in Drupal 10 lockfile generation.
Problem/Motivation
Based on reasoning in #3118143-32: [meta] Release Drupal 10 on December 14... or 15... 2022, I think we should try to tag an 'early alpha' snapshot, with as many dependencies updated as possible (Symfony 5.4 with as many deprecations addressed as possible , not 6.0), so that there is a target to test contrib against.
Once we've done that we, can then start on deprecation removals and updating to Symfony 6 - which can then lead onto later alphas and betas.
Note that while we should try to update as many dependencies as possible, if we have most things updated and one or two tricky ones not, there's still benefit to releasing an alpha1, then following up with alpha2 later on.
Proposed resolution
- DONE: #3252088: Increase Drupal::MINIMUM_PHP to 8.0.0
- DONE: Increase PostgreSQL required version to 12 and require pg_trim (currently only a warning in D9) (reference: #3190635: [policy] Require PostgreSQL 12 with pg_trgm for Drupal 10 (raise from v10 in Drupal 9))
- DONE: Require
json1extension for SQLite (reference: #3190641: [policy] Require SQLite 3.26 for Drupal 10 (same as Drupal 9) with the json1 extension required (new requirement for Drupal 10)) - Symfony 5.4
- MUST HAVES DONE: First resolve API deprecations that can only be done on Drupal 10, so our state is as compatible with Symfony 6 while still being compatible with Symfony 5.4 as possible. #3161889: [META] Symfony 6 compatibility
- DONE: Then do the actual update to Symfony 5.4 #3197482: Update Drupal 10 to depend on Symfony 5.4 (as a stepping stone to Symfony 6, for deprecation checking support)
- DONE: Twig 3 #3094493: Upgrade to Twig 3
- DONE: Guzzle 7 #3104353: Upgrade to Guzzle 7
- DONE: Guzzle psr/7
- DONE: Remove Diactoros #3039047: Adopt php-http/guzzle6-adapter 2.x to get PSR-18 support without losing Guzzle's async support
Optional (pre-alpha targets)
- #3250585: Highlight deprecated modules and themes at admin/reports/status page, providing warning and link with explanation
- #3252084: [meta] Remove support for Internet Explorer
- #3213895: [META] Remove deprecated classes, methods, procedural functions and code paths outside of deprecated modules on the Drupal 10 branch
Any more?
Comments
Comment #2
catchComment #3
gábor hojtsyUpdating the list in the summary to be a list :)
Comment #4
gábor hojtsyAlso meta-ifying.
Comment #5
mondrakeFiled #3252010: Lock PHPUnit to 9.5
Comment #6
andypostasm89/stack-corsneeds upgrade to 2.0 because of https://github.com/asm89/stack-cors/issues/64added as child #3128982: Upgrade asm89/stack-cors to ^2.0 to fix cacheability
Comment #7
gábor hojtsyUpdate Symfony 5.4 plan to make the role of the two issues clearer.
Comment #8
xjm@catch and I agreed to allow the commit of #3253148: Remove IE from core's browserlist, remove non-essential CSS importing and recompile assets as well since browser requirements are similar to platform requirements.
We're missing the issues to bump the platform requirements, also. To my knowledge, the only two are bumping the PostgreSQL required version to 12, and increasing the required PHP version to 8.0?
Comment #9
xjmOops #3252088: Increase Drupal::MINIMUM_PHP to 8.0.0 already landed, just wasn't in the IS.
Comment #10
xjmComment #11
gábor hojtsyBroke out Guzzle PSR-17 to two issues as per @xjm's recommendation.
Comment #12
taran2lthere is set of Symfony packages, not following the regular versioning (copy paster from #3255245-9: [Symfony 6] Revert 3231603 to use our own TranslatorInterface)
Should not those be updated to
v3as well ?Comment #13
longwaveWe can't update all of these yet, e.g. translation-contracts 3 requires Symfony 6:
We do have a good reason to bump to a minimum of PHP 8.0.2 though:
Comment #14
catch#3255271: Increase Drupal::MINIMUM_PHP to 8.0.2 is ready to land (again) when DrupalCI is.
Comment #15
mherchelThoughts on adding #3219958: [META] Make Olivero the default theme to the requirement?
We're stable, and have a our tests passing on #3219959: Update standard profile so Olivero is the default theme (although we need to rebase the branch into
10.0.x)Comment #16
gábor hojtsy@mherchel: the first alpha is meant to be a technical step mainly for updating the major dependencies, especially Symfony. There will be various further alpha releases and beta releases. There is nothing wrong with aiming to have it the default in the alpha release, but to hold the alpha for Olivero not being the default is not in line with the scope of the first alpha.
Comment #17
mherchelSounds good!
Comment #18
alexpottDiscussed the idea of not removing deprecated code until after the first alpha with @catch. I think there are a couple of reasons that we should remove code immediately. These are:
Comment #19
catchSo the idea here has been to release '9.4 + dependency updates'. We've nearly done everything in the issue summary now, down to Twig 3 and one Symfony 5.4 issue. That would allow us to tag alpha1 this month.
If we make removing Drupal deprecations a requirement for alpha1, then we're looking at an extra few weeks/months, and because we're still deprecating things in 9.4, it won't be a complete list so will be hard to define exactly what it means. We could decide to just start committing as many deprecation removals as we can, without making it an alpha1 blocker, but that might take as long to decide as tagging the alpha and beginning deprecation removals.
I think contrib will get some benefit from having Symfony 5/Twig 3/Guzzle 7 etc. without Drupal deprecations, but even if they don't, it's cost us a tag rather than actual time and we can continue to release new alphas including with Drupal deprecations removed as we go.
Comment #20
gábor hojtsyOf the two current showstoppers here #3094493: Upgrade to Twig 3 needs a reroll, but otherwise is ready. The translation one needs more discussion, but with a bit of focus I hope we can solve it one way or another? At worst we can defer the deprecation notice. So it does not seem like we are too far away from alpha1 and indeed it would be great to have a way to reliably test Drupal 9 projects against Drupal 10 + SF5 given the SF4 to SF6 jump otherwise.
Comment #21
alexpottI don't think we should make deprecation removal a requirement - but I don't think we should hold up removing anything that is ready. The more deprecated code that is removed by the time alpha 1 is released the better it is for contrib testing.
Comment #22
gábor hojtsyAll must haves on #3161889: [META] Symfony 6 compatibility are now done. The only remaining must have on this issue is #3197482: Update Drupal 10 to depend on Symfony 5.4 (as a stepping stone to Symfony 6, for deprecation checking support) for the alpha, and that is RTBC. #holdingbreath
Updating issue summary.
Comment #23
longwave#3197482: Update Drupal 10 to depend on Symfony 5.4 (as a stepping stone to Symfony 6, for deprecation checking support) landed, so all requirements are met.
Comment #24
catchWe should do a final round of dependency updates before actually tagging, e.g. #3255353: Update dependencies for Drupal 10.0.x before alpha1.
I'd love to get #3250585: Highlight deprecated modules and themes at admin/reports/status page, providing warning and link with explanation in too if we can, although it shouldn't block.
Comment #25
gábor hojtsyAll alpha requirements are now done. We are working on the release notes. In the meantime, adding #3250585: Highlight deprecated modules and themes at admin/reports/status page, providing warning and link with explanation as per @catch since that would be a really nice to have in alpha1.
Comment #26
andypostI think deprecation removal could go before alpha because there's 9.4 branch to run linters/sniffers and fix custom/contrib codebases
Added to IS #3213895: [META] Remove deprecated classes, methods, procedural functions and code paths outside of deprecated modules on the Drupal 10 branch
Comment #27
gábor hojtsy#3257837: Use or ignore-requirement-for PHP 8 in Drupal 10 lockfile generation is the only thing that needs resolving prior to alpha as far as I know.
Comment #28
gábor hojtsyAlpha1 is now available at https://www.drupal.org/project/drupal/releases/10.0.0-alpha1
See you all in #3118149: [meta] Requirements for tagging Drupal 10.0.0-beta1.
Comment #30
xjmBelatedly saving credits for those who helped maintain this plan.