Problem/Motivation
Installing core-recommended 10.5.7 will lower symfony/* package versions.
Steps to reproduce
composer require drupal/core-recommended:10.5.7 -W, where previously there was 10.5.6 shows downgraded packages.
Proposed resolution
Re-update the locked versions and metapackages.
Remaining tasks
Release notes snippet
Issue fork drupal-3561574
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
longwavegit show -m -p 5c892149b638207f9e48cfb322aa35bc8efd18d2shows the merge commit accidentally reverting the changes to composer.lock and the metapackages.I think the fix is to run
composer update symfony/* drupal/coreon 10.5.x.Comment #4
longwaveComment #5
longwaveComment #6
xjmThis may have been due to an error during the tagging process that was corrected for the other branches but possibly not for 10.5. We should double-check to ensure that 10.4 doesn't have the same issue.
Comment #7
xjmPipeline failure was:
Sounds random, so I requeued it.
Comment #8
xjmI just checked and while 10.4.x has not had a release since 10.4.9, it looks like it has the same lockfile merge issues that 10.5.x does. (Installing 10.4.x HEAD after 10.4.9 potentially downgrades Symfony HTTP-Foundation from 6.4.29 to 6.4.15.) This means that the next time a 10.4.x security release is changed, it will revert the Symfony update. So we will need an MR for 10.4.x as well.
I think this is due to an issue with the security release tagging script naively assuming that security updates do not change the lockfile beyond the version constant. So while we resolved the new issue that came up with the new attempted process tags themselves during the security window, we did not resolve the second, similar, existing issue with the "Back to dev" commit.
In the longer term this might require a change to the tagging script in order to create proper "Back to dev" commits, or at least a manual workaround by the release manager to amend the commit prior to pushing branch endpoints after the window.
Comment #9
xjmCritical was an overreaction on my part because I was annoyed with myself; downgrading to major. While this is a serious bug from a release process standpoint, it is not a security issue. The site owner can still update the Symfony dependency easily -- it is only a patch-level update -- and Drupal itself isn't even vulnerable to the issue.
Comment #10
xjm@longwave correctly pointed out that 10.4.x is end-of-life in about 6 days, so we probably don't actually need to make a 10.4.x merge request because we're unlikely to create another 10.4 release unless some highly critical core security issue comes up that we would backport outside normal policy. Hopefully that doesn't happen. 😅 If that happens, or if we backport some other upgrade path fix to 10.4.x for some reason, then we can fix this, but otherwise 10.5.x itself is enough for now. Thanks!
Comment #11
xjm10.6.x should be fine because it did not have a merge commit, just a forward-port, and also did not even have an alpha yet when the advisory was released. Edit: Confirmed it installs HTTP-Foundation 6.4.29.
However, I just checked and 11.2.9 has the same issue. It installs with 7.3.0, while 11.2.8 installs with 7.3.7. We definitely need an MR for 11.2.
Comment #13
quietone commentedDraft release notes for both !0 and 11 are in the same doc.
Comment #14
quietone commentedComment #15
longwaveFix for 11.2, there might be a more efficient way but this works for me to temporarily pin Composer deps to ~7.3.0 and update before reverting:
This results in:
Comment #17
catchBoth the 11.2.x and 10.5.x MRs look good.
Comment #18
xjmOne thing that's interesting is that these are lockfile-only issues. Did we not increase constraints for the Symfony updates last month?
Comment #19
xjmSorry, I think this is actually NW. There should be a corresponding increase in the constraint of
http-foundationin core-recommended to the secure version. 10.6.x has this, and these branches also did prior to the merge commit eating it. See #3557393: Update Symfony to 7.3.7 / 6.4.29.Comment #20
xjmI addressed 10.4.x by cherry-picking the original fix from #3557393: Update Symfony to 7.3.7 / 6.4.29 and pushing it again. That worked since there were no commits on 10.4.x since the release and none of the other changes in the security release touched the metapackages or lockfile.
Comment #21
xjmIt's interesting that no tests are failing despite the dependencies in
composer.locknot matching what's in the metapackages in the above MRs.Probably we should just try to follow the documented steps for updating core Composer dependencies for at least HttpFoundation.
Comment #22
xjmSorry I have no idea what diff I was looking at that had only lockfile changes and nothing else. Please disregard above several comments (aside from the 10.4.x cherry-pick which is fine).
Comment #24
xjmReassuringly, the branch I created by cherry-picking the original commit to 10.5.x differs from the new MR that was created above by only:
I made a similar cherry-pick on 11.2 for comparison. That diff includes different versions of numerous Symfony packages than what we had before. To some extent, this is to be expected; however, I did notice that we're upgrading the minor version from 7.3.0 to 7.4.0 of
symfony-stringandsymfony/var-exporter. That shouldn't be happening in a patch release. In the previous issue, they were updated to 7.3.4.Comment #26
xjmI went ahead and committed the 10.5.x MR despite the normal backport policy. In some ways, the 10.5.x hotfix release is more urgent, since 10.5.x sites are more in need of security-only dependency management and less likely to want to simply update Symfony to the latest release for the sake of updating it.
NW for the 11.2.x fix to remove the minor updates of those two components which must be slipping by indirect constraints or something. (The patch-level updates are fine.)
Comment #29
xjmComment #30
longwaveAh, those are transient dependencies so temporarily pinning composer.json doesn't work because they aren't there. Fixed with:
Now only 7.3 dependencies:
Comment #31
xjmCompared this again to the original commit from the original issue. Confirmed the only differences between cherry-picking the commit and the MR are in the lockfile hash and core-recommended:
I then reviewed those specific changes with:
I verified that the only differences are in lockfile hashes and timestamps, patch version increases to individual Symfony packages, and in one case an addition to the release managers listed as supporting a package in the lockfile. So those are all appropriate changes in a patch release.
Finally, I ran a
composer validate --check-lockjust to make sure the hashes etc. were correct, and they are, so RTBCing. (I had an irrelevant diff upon generating the MR itself from scratch or doing acomposer update --lockon top of the MR, but it went away when I updated Composer itself to the most recent version.)Comment #33
catchGood find on the transient minor update, completely missed that when I read through the first time.
Committed/pushed the 11.2.x MR to 11.2x, thanks! Since the 10.5.x MR is already in, closing this one out.