Meeting will happen in #d10readiness on drupal.slack.com.
| Gábor Hojtsy (he/him) |
@daffie raised this |
| Gábor Hojtsy (he/him) |
issue at #3248106: [POLICY] Release Symfony 5.4 with which Drupal branch and how much support will it get? |
| Gábor Hojtsy (he/him) |
@daffie I believe last time @catch indicated the 5.4 beta would be a good checkpoint to open the 10.x branch, so an initial 10.x alpha would be on 5.4 beta possibly |
| daffie |
That is fine, only how long do we want a branch with Symfony 5.4 to be supported. Only at the start for 10.x or much longer? |
| catch |
Only at the start imo. Still needs discussion but I am thinking only dependency updates*, then tag an alpha as a point for ontrib to test against. Then start removing deprecated code and update to Symfony 6 after that. |
| catch |
So it is essentially 9.4 with symfony 5.4 tagged as 10.0.0-alpha1 |
| daffie |
Is that what we want site owners to use in 6, 12 and 18 months from now? Or do we want a maintained branch with Symfony 5.4? |
| andypost |
I bet all projects starting next 6 month (and 12 too) will be based on 9.x because of contrib inertia. So 5.4 sounds is the safest ATM (edited) |
| andypost |
Also looking at pace of SF changes probably 6.x sounds like approach too. Legacy custom code will need changes anyway and there's rector this days, so instead of fixing deprecations twice (5.x and coming 6.x before June'22) better to break harder if code using dated SF instead of core's bridges |
| Gábor Hojtsy (he/him) |
@andypost the big question is how do we bridge the deprecated API gaps between 4.4 and 6.0 |
| daffie |
To me the easiest and best way is to have an extra 9.4 branch with Symfony 5.4 that will be maintained until the main 9.4 branch goes EOL. |
| andypost |
Main gap is PHP 8, I see it's the hardest transition, so 5.4 with polyfills is very helpful |
| Gábor Hojtsy (he/him) |
Hm, is PHP 8 hard or PHP 8.1 or both? |
| andypost |
I got few huge codebases and 8.0 is hard( 8.1 is just more strict |
| larowlan |
Is this resolved if we make 9.4 or 10.0 use `^5.4 || ~6` |
| larowlan |
But have core-recommended be more specific |
| larowlan |
Our LTS plan for d11 requires 10 to be on sf6 |
| larowlan |
Well I guess 9.4 would be 4 || 5 |
| larowlan |
Then we could ship a meta package with 5.4 rather than a tagged release |
| larowlan |
E.g drupal/core-transition |
| larowlan |
And document the update process to go via that transition package |
| Gábor Hojtsy (he/him) |
Hm, if you allow 9.4 to use 4 || 5, then it might get updated to 5 for people by surprise though? |
| daffie |
If we do sf4 || sf5 in the main 9.4 branch, do we then also need testbot runs with sf5? |
| catch |
Yeah we can't do that. There's an old issue here, it's had no interest. It only comes up when we get to this point, then it gets forgotten again. #3020303: Consider using Symfony flex to allow switching between major Symfony versions |
| catch |
I don't think site owners need a branch with 5.4, it's for contrib modules with direct symfony dependencies we might not know about. Only sites with tonnes of custom code interacting with symfony directly might need it. |
| daffie |
If a contrib or custom module is overriding some class or method from the stuff that we cannot commit to the 9.4, because it will be a BC break, will need D9.4 with sf5.4 |
| daffie |
See all the sub-issues we cannot do in D9.4 from #3161889: [META] Symfony 6 compatibility |
| catch |
Yes, but we know that the majority of these won't affect either contrib or custom code. We also know that none of them break the continuous upgrade path in that modules can add type hints now. The only thing that potentially breaks is getting nice deprecation notices about them, but none of these are used in lots of contrib modules so it's unlikely to be overly disruptive. |
| daffie |
Maybe I am just worrying to much about this and (almost) everything goes smoothly from D9 with sf4 to D10 with sf6. :grin: |
| catch |
The one thing that is hard to predict is deprecations that core isn't affected by, but that contrib is - but again that's probably going to be a tiny number of modules and a tag to test against them ought to be enough. |
| daffie |
@catch You are probably right. Can I mark #3020303: Consider using Symfony flex to allow switching between major Symfony versions as critical as it is needed for getting Symfony 6 in D10? |
| Gábor Hojtsy (he/him) |
@catch @daffie we are already running phpstan against Drupal 9 modules for a while :) so at least we know the symfony 4 deprecation affected contribs https://dev.acquia.com/drupal10/deprecation_status/errors?error=%2Amfony%2A |
| Gábor Hojtsy (he/him) |
We do not have the same data about what they might hit with SF5 to 6 though. |
| Gábor Hojtsy (he/him) |
OTOH this list can provide some guidance as to which projects to look out for for possible issues. (Since these use parts of symfony directly). (edited) |
| daffie |
Would it be possible to do the same for deprecation warnings in sf5.4? |
| daffie |
Or are those deprecation warning only those who we also have in core? |
| Gábor Hojtsy (he/him) |
It does find all the third party ones too. Theoretically we could run it with SF5 if there is a variant of core that could run fine with SF5 (upgrade status is a module that needs to run within the Drupal instance so it needs to be as stable to be able to run it while analysing). Then it's a @mixologic task to make a version of this job that runs with SF5 to gather that data. I can then number-crunch it for you and put it up on a temporary site let's say. |
| mixologic |
I pretty sure you can submit a drupalci.yml that contains some composer commands that does whatever extra you would need. |
| catch |
@daffie I don't think symfony flex is needed - I would like to have it, since it would help with 5.4 || 6 and things like that, but like I said there's no interest and some active opposition on there. If we have to we can just release with >= 6. |
| catch |
"Theoretically we could run it with SF5 if there is a variant of core that could run fine with SF5" this is what I'm thinking alpha1 with symfony 5.4 would be useful for. |
| daffie |
@catch I thought that we will need it for D9.4 with sf4.4 or sf5.4. |
| catch |
@daffie If we want to do that, we'd need it - but again I don't think that's necessary. I think we can tag an alpha of 10.0.0 with Symfony 5.4 - and then that provides a tag that people can test/run phpstan against. |
| daffie |
ok, fine by me. Lets do your solution. :+1: (edited) |
| catch |
the big one on https://dev.acquia.com/drupal10/deprecation_status/errors?error=%2Amfony%2A is Symfony\Contracts - but this is one where we had to provide a forward compatibility layer for it in Drupal 9. We haven't had that with the Symfony 6 changes that I can remember, it's been a lot of adding type hints. |
| daffie |
That one is going to be fun. Can we automate those changes? |
| catch |
It should just be changing a use statement - change record is here https://www.drupal.org/node/3159012 |
| daffie |
The change is small, only it need to be done lots of times. |
| catch |
Found this #3226796: Include SymfonySetList::SYMFONY_43 for Drupal 9#comment-14285992 |
Comments
Comment #8
gábor hojtsySaving notes, thanks all!