Meeting will happen in #d10readiness on drupal.slack.com.
Gábor Hojtsy (he/him) |
Raised by @Ilcho Vuchkov (vuil) |
Gábor Hojtsy (he/him) |
SF6 compatibility patches are regularly landing |
Gábor Hojtsy (he/him) |
Thanks all for their efforts |
Gábor Hojtsy (he/him) |
Some are postponed to Drupal 10 branch opening |
Gábor Hojtsy (he/him) |
Not sure if we can state yet that 10 can be based on SF6 |
Gábor Hojtsy (he/him) |
#3161889: [META] Symfony 6 compatibility |
Gábor Hojtsy (he/him) |
Maybe @catch can provide a more accurate summary |
catch |
At the moment there's nothing to indicate we can't, but we've still got some Symfony 5.4 deprecations to get through and possibly more to come before they release an RC. |
Gábor Hojtsy (he/him) |
And their RC would be next month? |
xjm |
RC will be in Nov. |
xjm |
We might get a beta next month though |
xjm |
(Basing this on past releases, no totally official schedule) |
larowlan |
We'll need Drupal level deprecation warnings to get to 6 on 10 |
larowlan |
e.g. the things we can't fix now (and are punting to 10) will be disruptive for contrib too because of core changes. So we need to be emitting deprecation errors now (ala symfony debug class loader) for those things |
longwave |
it looks like SF6 is going to add return types everywhere, and personally it feels like the window for this is too short for us to add deprecations for this in D9 |
longwave |
there are also tricky cases for e.g. union types that are PHP 8 only - even if we trigger deprecations for them now, contrib/custom code can't upgrade until it stops supporting PHP 7 |
Gábor Hojtsy (he/him) |
Yeah if they need to stop supporting PHP 7 then multi-core compatibility is a no-go and therefore the in-place update contribs first then core update does not work. Has this been discussed yet @catch ? |
xjm |
Well, D9 does support PHP 8.0 |
xjm |
So it's not that multi-core compatibility is a no-go, just that you have to have PHP 8+ to support both D9 and D10 |
xjm |
(This also again brings us back to how important PHP 8 compatibility in contrib is) |
xjm |
But there is an issue that was filed for the Symfony return type deprecation stuff: #3232131: [Symfony 5] Symfony's DebugClassLoader triggers deprecation messages for missing return type hints, where there is no deprecation |
xjm |
This doesn't help us if Symfony requires union types anywhere for SF 6, so we might need to add compatibility layers if that happens like we did with the void typehints for phpunit |
xjm |
Other than union types, though, PHP 7 does generally support the typehints, so it's more about the BC of the individual classes and implementations |
Gábor Hojtsy (he/him) |
@xjm while Drupal 9 supports PHP 8, it does not require it so there will be side effects of practically requiring PHP 8 due to contributed modules if they go multi-core compatibility even for sites not updating to 10. Now that I wrote that down I don't know if that is a problem though :joy: |
xjm |
This is not different from the D9 update |
Gábor Hojtsy (he/him) |
@xjm hm my understanding is the Drupal 10 contrib updates would potentially require new language features not present in PHP 7? If so, that would be different, no? |
longwave |
there is a concrete case that affects contrib already #3232113: [Symfony 6] Add "static" type hint to the method Drupal\Component\HttpFoundation\SecuredRedirectResponse::setTargetUrl() |
catch |
@Gábor Hojtsy (he/him) yeah I don't think it's a problem if some contrib modules start to require PHP 8, that's always been possible. There are not that many cases where contrib directly subclasses Symfony classes, and there'll be even less where they override a method that's adding a union type, so doubt it's going to be overwhelming. (edited) |
Gábor Hojtsy (he/him) |
Sounds good! |
catch |
Also even if we only updated to Symfony 5.4, the deprecation message is there (if we didn't explicitly suppress it), so to get to no deprecations against Drupal 10, both contrib and core still have to add the type hint, even though the module would work without it. (edited) |
catch |
And we'd still have to resolve the deprecations ourselves in Drupal 10 which would still rely on PHP 8, which potentially affects a smaller subset of modules subclassing our Symfony subclasses. So the real difference is whether contrib not resolving something results in a deprecation message or a hard-fail from Symfony in Drupal 10. (edited) |
Gábor Hojtsy (he/him) |
Ah thanks for the insight. |
catch |
Thanks for asking - took me a while to realise the last bit. |
Gábor Hojtsy (he/him) |
That is why I like discussion in these meetings :) |
Comments
Comment #2
Gábor HojtsyComment #10
Gábor HojtsySaving credits. Thanks all for coming!
Comment #12
Gábor Hojtsy