Closed (fixed)
Project:
Drupal core
Version:
11.3.x-dev
Component:
composer
Priority:
Critical
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
27 Oct 2025 at 11:14 UTC
Updated:
10 Jun 2026 at 07:55 UTC
Jump to comment: Most recent
Comments
Comment #3
longwaveThis is where we run into #3522497: Passing an $options array to constraint constructors is deprecated, use named arguments instead, plus we can't call
$request->get()directly any more, we have to specifically know whether we want POST (request) or GET (query) data; but in Drupal we sometimes use both interchangeable...Comment #4
longwaveFinding it impossible to debug most of the remaining failures due to way too many deprecations via #3522497: Passing an $options array to constraint constructors is deprecated, use named arguments instead
Comment #5
longwaveTrying an upgrade of everything except symfony/validator, which hopefully we can deal with in a followup given there are many new deprecations.
Comment #6
longwaveFound a regression in Symfony: https://github.com/symfony/symfony/issues/62226
Comment #7
longwaveThere are a bunch of functional test failures that I can't reproduce locally, and some Ajax JavaScript failures that I haven't had chance to investigate yet.
Comment #8
longwaveComment #9
longwaveSome fun here in that DomCrawler now behaves differently on PHP 8.3 and 8.4 - on 8.4, Symfony now uses the native HTML5 parser instead of masterminds/html5 - so we need to make sure we run tests on both.
See https://github.com/symfony/symfony/commit/bd7fb5178b998e4f863d388850e93b...
I think this is the cause of some/most of the remaining test failures.
Comment #10
longwaveI think this is a second regression in Symfony: https://github.com/symfony/symfony/issues/62233
Comment #11
longwaveThe second regression is fixed in Symfony 7.4.x-dev, but I found a third: https://github.com/symfony/symfony/issues/62236
Comment #12
larowlan#3522497: Passing an $options array to constraint constructors is deprecated, use named arguments instead is in
Comment #13
andypostComment #16
longwaveTrying to make the MR as minimal as possible, we will have to deal with new deprecations in followups (but ideally the big ones need to be removed before 11.3.0 so contrib gets notified of them)
Currently has the following changes:
Comment #17
quietone commentedjust putting links to the Symfony issues in the issue summary.
Comment #18
longwaveFirst green run. Let's try adding back symfony/validator...
Comment #19
longwaveThis is now the minimal amount of changes required to land 7.4.0-BETA1, all deprecation skips or other temporary fixes (such as the "UTF-8" to "utf-8" change) have been moved to child issues of #3555526: Update to Symfony 7.4.0.
Comment #20
godotislateMR is pretty straightforward and overall looks good.
I had a couple questions about whether followups need to be created for a deprecation and PHPStan issue.
Also, it looks like two of the Symfony regressions have been addressed, but the third about the ampersand is an inconsistency in the HTML spec and won't be addressed by Symfony. Is there any adjustment to Drupal tests needed?
Comment #21
longwaveWe will have to figure out how to solve the ampersand issue over in #3555527: Since symfony/dom-crawler 7.4: Disabling HTML5 parsing is deprecated. Symfony 8 will unconditionally use the native HTML5 parser. The code generates some very questionable HTML for the sake of an XSS-like test but I'm not sure how valid it really is. https://github.com/symfony/symfony/pull/62252 has comments from both a Symfony maintainer and the author of the PHP HTML5 extension commenting that my solution was a bad idea, so I will go along with what they say!
Comment #22
godotislateAll questions addressed, lgtm.
Comment #23
longwaveBumped to BETA2: https://symfony.com/blog/symfony-7-4-0-beta2-released
This means we can remove a workaround for a bug in beta1 that was fixed in beta2: https://github.com/symfony/symfony/issues/62226
Comment #24
andypostI bet it needs CR and update CR https://www.drupal.org/node/2150267 which is wrongly points to
$request->get()but should tell to use one of propertiesComment #25
longwave@andypost Followups for the deprecations all exist as children of #3555526: Update to Symfony 7.4.0
Not sure we need a change record, we haven't made any API changes - this is just a release notes thing really. We might need change records for some of the deprecations but that will happen in the followups.
Comment #26
catchOne question on the MR, leaving RTBC.
Comment #27
quietone commentedComment #30
catchAsked for a comment on the test change, but @longwave pointed out that while it's the odd one out now, it won't be when we remove the bc layer, so no comment is needed indeed.
Committed/pushed to 11.x and cherry-picked to 11.3.x, thanks!
Comment #33
quietone commentedIt would help if this had a snippet.
Comment #35
quietone commentedRemoving tag no longer needed.