- Issue created by @longwave
- Status changed to Needs review
almost 2 years ago 3:43pm 1 February 2023 The last submitted patch, 2: 3338328-2.patch, failed testing. View results β
- π¨π³China jungle Chongqing, China
Rerolled and removed "minimum-stability": "beta" from two components' composer.json file.
The last submitted patch, 4: 3338328-3.patch, failed testing. View results β
- Status changed to Postponed
almost 2 years ago 7:23pm 1 February 2023 - π¬π§United Kingdom longwave UK
This revealed no new deprecations yet, so I think we can just leave this for a month or more.
- π¬π§United Kingdom longwave UK
Let's try again.
+------------------------------------+--------+-----------+ | Production Changes | From | To | +------------------------------------+--------+-----------+ | symfony/console | v6.2.5 | 6.3.x-dev | | symfony/dependency-injection | v6.2.6 | 6.3.x-dev | | symfony/deprecation-contracts | v3.2.0 | v3.2.1 | | symfony/error-handler | v6.2.5 | 6.3.x-dev | | symfony/event-dispatcher | v6.2.5 | 6.3.x-dev | | symfony/event-dispatcher-contracts | v3.2.0 | v3.2.1 | | symfony/http-foundation | v6.2.6 | 6.3.x-dev | | symfony/http-kernel | v6.2.6 | 6.3.x-dev | | symfony/mime | v6.2.5 | 6.3.x-dev | | symfony/process | v6.2.5 | 6.3.x-dev | | symfony/routing | v6.2.5 | 6.3.x-dev | | symfony/serializer | v6.2.5 | 6.3.x-dev | | symfony/service-contracts | v3.2.0 | v3.2.1 | | symfony/string | v6.2.5 | v6.2.8 | | symfony/translation-contracts | v3.2.0 | v3.2.1 | | symfony/validator | v6.2.5 | 6.3.x-dev | | symfony/var-dumper | v6.2.5 | 6.3.x-dev | | symfony/var-exporter | v6.2.5 | v6.2.8 | | symfony/yaml | v6.2.5 | 6.3.x-dev | | symfony/polyfill-php83 | NEW | v1.27.0 | +------------------------------------+--------+-----------+ +------------------------+--------+-----------+ | Dev Changes | From | To | +------------------------+--------+-----------+ | symfony/browser-kit | v6.2.5 | 6.3.x-dev | | symfony/css-selector | v6.2.5 | 6.3.x-dev | | symfony/dom-crawler | v6.2.5 | 6.3.x-dev | | symfony/filesystem | v6.2.5 | 6.3.x-dev | | symfony/finder | v6.2.5 | 6.3.x-dev | | symfony/lock | v6.2.5 | 6.3.x-dev | | symfony/phpunit-bridge | v6.2.5 | 6.3.x-dev | +------------------------+--------+-----------+
- π¬π§United Kingdom longwave UK
ExecutionContext has added return types. It's tagged @internal so Symfony can do this in a minor, but we extend it anyway, so we have to match.
This also reminded me of π Remove unused Symfony 2.x methods from ExecutionContext Fixed
- π³π±Netherlands spokje
Adding the deprecation skip from #3351556-8: Update dependencies for Drupal 10.1 β to this patch would help reduce the noise?
- π³π±Netherlands spokje
+---------------------------------+--------+--------------+ | Production Changes | From | To | +---------------------------------+--------+--------------+ | symfony/console | v6.2.8 | v6.3.0-BETA1 | | symfony/dependency-injection | v6.2.8 | v6.3.0-BETA1 | | symfony/error-handler | v6.2.7 | v6.3.0-BETA1 | | symfony/event-dispatcher | v6.2.8 | v6.3.0-BETA1 | | symfony/http-foundation | v6.2.8 | v6.3.0-BETA1 | | symfony/http-kernel | v6.2.8 | v6.3.0-BETA1 | | symfony/mime | v6.2.7 | v6.3.0-BETA1 | | symfony/process | v6.2.8 | v6.3.0-BETA1 | | symfony/psr-http-message-bridge | v2.1.4 | v2.2.0 | | symfony/routing | v6.2.8 | v6.3.0-BETA1 | | symfony/serializer | v6.2.8 | v6.3.0-BETA1 | | symfony/validator | v6.2.8 | v6.3.0-BETA1 | | symfony/var-dumper | v6.2.8 | v6.3.0-BETA1 | | symfony/var-exporter | v6.2.8 | v6.2.10 | | symfony/yaml | v6.2.7 | v6.3.0-BETA1 | | symfony/polyfill-php83 | NEW | v1.27.0 | +---------------------------------+--------+--------------+ +------------------------+--------+--------------+ | Dev Changes | From | To | +------------------------+--------+--------------+ | symfony/browser-kit | v6.2.7 | v6.3.0-BETA1 | | symfony/css-selector | v6.2.7 | v6.3.0-BETA1 | | symfony/dom-crawler | v6.2.8 | v6.3.0-BETA1 | | symfony/filesystem | v6.2.7 | v6.3.0-BETA1 | | symfony/finder | v6.2.7 | v6.3.0-BETA1 | | symfony/lock | v6.2.8 | v6.3.0-BETA1 | | symfony/phpunit-bridge | v6.2.7 | v6.3.0-BETA1 | +------------------------+--------+--------------+
- last update
over 1 year ago Custom Commands Failed - last update
over 1 year ago Custom Commands Failed - π³π±Netherlands spokje
As said by @longwave in #7 π Update to Symfony 6.3 Fixed :
Symfony\Component\Validator\Context\ExecutionContextInterface has added return types. The methods are tagged @internal so Symfony can do this in a minor, but we extend it anyway, so we have to match
So I added the return type PHPStan wanted.
Let's see where that gets us. - last update
over 1 year ago 25,288 pass, 534 fail - Status changed to Needs review
over 1 year ago 12:32pm 1 May 2023 - π¬π§United Kingdom longwave UK
Thanks! No need to postpone now the beta is out - we can release Drupal 10.1.0-beta1 on a beta or RC of Symfony.
The last submitted patch, 14: 3338328-14.patch, failed testing. View results β
- Status changed to Needs work
over 1 year ago 1:14pm 1 May 2023 - π³π±Netherlands spokje
So what's our strategy here?
- Ignore all deprecations with one "mega" reg-ex in
core/.deprecation-ignore.txt
- Ignore all deprecations with their own reg-ex incore/.deprecation-ignore.txt
, so we can tackle them individually in issues
- Try to fix all and everything in here? - π«π·France andypost
Looks like this changes will break a lot of contrib as well, having tons of deprecation messages is worst we can expect in 10.1 release
As I got the most serious effect will get serializers (adding array return type)
The most useless (contr-productive) is void types
1x: Method "Symfony\Component\DependencyInjection\ContainerInterface::set()" might add "void" as a native return type declaration in the future. Do the same in implementation "Drupal\Component\DependencyInjection\Container" now to avoid errors or add an explicit @return annotation to suppress this message. 1x: Method "Symfony\Component\DependencyInjection\ContainerBuilder::set()" might add "void" as a native return type declaration in the future. Do the same in child class "Drupal\Core\DependencyInjection\ContainerBuilder" now to avoid errors or add an explicit @return annotation to suppress this message.
- π³π±Netherlands spokje
So...
IIRC, adding a return type is a BC Break
Adding an explicit@return void
makes coder sad:
If there is no return value for a function, there must not be a @return tag
Looks like we need to ignore a lot of deprecation messages until D11?
- π¬π§United Kingdom longwave UK
We need to check what will happen to subclasses in contrib/custom code - we need to ensure they are notified correctly so they can add the return types now, and then we can do the same in Drupal 11. Not sure whether that means adding exact deprecation skips, or using @return and adding ignores for Coder, or something else.
- π¬π§United Kingdom catch
For the normalizers/denormalizers I would think we can probably make the change directly since those aren't supposed to be extended, but whether that is actually true or not is a different question.
- π³π±Netherlands spokje
but whether that is actually true or not is a different question.
http://codcontrib.hank.vps-private.net/search?text=Drupal%5Cserializatio...
Third normalizer I've randoml put through Hank has 2 Contrib Module extending it.
- last update
over 1 year ago 27,164 pass, 150 fail - @spokje opened merge request.
- π³π±Netherlands spokje
For the normalizers/denormalizers I would think we can probably make the change directly since those aren't supposed to be extended
Added a (very naive) MR for this.
AFAICT we're replacing our
protected $supportedInterfaceOrClass
with Symfony's
public function getSupportedTypes(?string $format): array
.
If that is the case can/should we try to deprecate our class property$supportedInterfaceOrClass
?Two more questions in the MR.
- Open on Drupal.org βEnvironment: PHP 8.1 & MySQL 5.7last update
over 1 year ago Not currently mergeable. - π³π±Netherlands spokje
- last update
over 1 year ago 27,232 pass, 149 fail - π³π±Netherlands spokje
MR is not mergeable somehow
Sorry, crappy rebaser at weekend work there...
Should be fixed now. - last update
over 1 year ago 27,232 pass, 149 fail - π³π±Netherlands spokje
Looks like this is what's left when I aggregate the deprecation messages.
- π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
~90% of the changes in the current MR are for https://symfony.com/blog/new-in-symfony-6-3-performance-improvements#imp....
Symfony is now doing what we've been wanting since 2018 β see π± [META] Normalization System: clean up/speed up/provide schema Active . Then Symfony shippedCacheableSupportsMethodInterface
which was a step in the right direction β see #3031214-19: Introduce "deterministic" normalizers β .Now it's finally doing the sensible thing for serializing any slightly complex data structure, of which Drupal has plenty π
Great! π
Based on https://github.com/symfony/symfony/pull/49291's profiling, I expect this to make complex JSON:API responses significantly faster.
- ππΊHungary GΓ‘bor Hojtsy Hungary
Tagging for release notes and highlights for at least the JSON:API speed improvement.
- Status changed to Needs review
over 1 year ago 6:38pm 8 May 2023 - last update
over 1 year ago Custom Commands Failed - last update
over 1 year ago 29,370 pass, 2 fail The last submitted patch, 32: 3338328-32.patch, failed testing. View results β
- last update
over 1 year ago 29,380 pass - π«π·France andypost
2 more validators fixed, tests should be green but that means that not all validators are covered by tests
- Status changed to Needs work
over 1 year ago 1:35pm 9 May 2023 - πΊπΈUnited States smustgrave
This appears to be adding a ton of deprecation. Should there be an Omni change record for them? Also a ton of phpcs ignore lines. Should that rule just be disabled?
- π¬π§United Kingdom catch
Agreed with #35, however I think we should open a follow-up to deal with the phpcs issue and just press ahead with ignoring here.
Tagging for
+++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/BundleConstraintValidator.php @@ -12,6 +12,9 @@ class BundleConstraintValidator extends ConstraintValidator { + * + * phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn + * @return void */
Let's open a follow-up, not sure that rule is actually useful if we have to be able to add these.
A single change record for ::hasCacheableSupportsMethod() seems OK although afaict it's really an upstream Symfony deprecation rather than ours, still useful to have the trigger_eror() though.
- Status changed to Needs review
over 1 year ago 1:46pm 11 May 2023 - π¬π§United Kingdom catch
If we just need the change record here then this is probably more 'needs review'.
- π³π±Netherlands spokje
I (maybe) see some more NW items:
- What about the open threads on the MR?
- What about
AFAICT we're replacing our
protected $supportedInterfaceOrClass
with Symfony's public function getSupportedTypes(?string $format): array.
If that is the case can/should we try to deprecate our class property $supportedInterfaceOrClass? - π¬π§United Kingdom catch
Added the change record.
I'm getting confused between the patch and MR.
__NAMESPACE__ vs __CLASS__ this should be __CLASS__ I think.
Deprecating the property I also think we should move to a follow-up since we'll need to decide whether to deprecate or just remove the properties on normalizers.
Could we do something like this, and avoid all the boilerplate on the extending classes?
I think this will be moved vs added boilerplate in the long run so better to just implement the method now.
- π«π·France andypost
+++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkNotExistingInternalConstraintValidator.php @@ -15,6 +15,9 @@ class LinkNotExistingInternalConstraintValidator extends ConstraintValidator { + * phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn + * @return void
It needs own issue for coder to dig if the rule valuable
But as this deprecation (requirement to add void) coming from SF at means all validators (at least) need to add this doc-block or :void to method which is no-go as API break
that's why doc-block update needs rector rule or kinda
- πΊπΈUnited States smustgrave
Change record looks good.
Only other thing I see #34 mentions not all validators are covered. Should we open up follow ups for the ones not covered?
- π«π·France andypost
RE #41 I'm sure yes, not every validator used in tests but will fire for contrib/custom code
- Status changed to RTBC
over 1 year ago 8:50pm 12 May 2023 - πΊπΈUnited States smustgrave
Opened π Missing test coverage for some validators Active
- last update
over 1 year ago Patch Failed to Apply - Status changed to Needs review
over 1 year ago 9:22pm 12 May 2023 - last update
over 1 year ago 29,388 pass - πΊπΈUnited States effulgentsia
A reroll was needed due to π Update dependencies for Drupal 10.1 Fixed . Here it is. The way I made it was by applying #34 but without the changes to composer.lock, CoreRecommended/composer.json, and PinnedDevDependencies/composer.json, followed by running
composer update drupal/core symfony/*
.AFAICT, this is a clean reroll and ends up with the same state as #34 did. However, marking this as Needs Review so that someone else validates that.
- Status changed to RTBC
over 1 year ago 10:15pm 12 May 2023 - πΊπΈUnited States smustgrave
Compared with the version numbers in #34 and reroll seems good.
- Status changed to Needs work
over 1 year ago 10:41pm 12 May 2023 - π¬π§United Kingdom catch
Still think __NAMESPACE__ needs to be __CLASS__ in the deprecation messages?
Opened π Deprecate ::supportedInterfaceOrClass property on normalizer/denormalizers Fixed for the supportedInterfaceOrClass deprecation.
- Status changed to Needs review
over 1 year ago 11:47pm 12 May 2023 - last update
over 1 year ago 29,388 pass - πΊπΈUnited States effulgentsia
Still think __NAMESPACE__ needs to be __CLASS__ in the deprecation messages?
Or even better, __METHOD__? This patch changes to that, moves the word "instead" to the end of the sentence, and links to the change record.
- πΊπΈUnited States smustgrave
Should 10.2.x be an option now?
https://www.drupal.org/about/core/policies/core-release-cycles/schedule β says the branch was created.
- π³π±Netherlands spokje
Unsure why we ended up in patch-land after starting out as an MR, but closed MR to prevent confusion.
- last update
over 1 year ago 29,388 pass - Status changed to RTBC
over 1 year ago 8:28am 13 May 2023 - π¬π§United Kingdom catch
This looks good.
We're holding off tagging the beta until this lands since having it in the beta is more likely to flush out anything unexpected affecting contrib.
I opened π Consider disabling the Drupal.Commenting.FunctionComment.VoidReturn rule Active for the @return void issue.
- π³π±Netherlands spokje
https://git.drupalcode.org/project/drupal/-/merge_requests/3907#note_172971
I think this will be moved vs added boilerplate in the long run so better to just implement the method now.
(@catch in #39 π Update to Symfony 6.3 Fixed )
I think this needs to be done before we're ready for an RTBC, or am I reading this wrong and can this be done in a follow-up?
- π¬π§United Kingdom catch
I opened π Deprecate ::supportedInterfaceOrClass property on normalizer/denormalizers Fixed for that.
- π³π±Netherlands spokje
Thanks @catch, updated CR to the latest state of the patch.
I think this is now truly RTBC.
- π«π·France andypost
+1 rtbc! All followups exist and beta3 happened
@Spokje I did switch to patch because there was broken UI to queue tests for MR for a few days.
- π³π±Netherlands spokje
@Spokje I did switch to patch because there was broken UI to queue tests for MR for a few days.
Thanks for clearing that up @andypost, I knew "something" was wrong, since you're normally not the one to switch between patches and MRs. :)
- Status changed to Fixed
over 1 year ago 2:49pm 14 May 2023 - π¬π§United Kingdom catch
I RTBCed this but there's been +1s since then so I think I'm OK to commit it.
Committed/pushed to 11.x and cherry-picked to 10.1.x, thanks!
- π«π·France andypost
Automatically closed - issue fixed for 2 weeks with no activity.