Repository navigation
Fix nightly old-uv orphan-unwind failure in uv e2e - #1525
Merged
Mikola Lysenko (mikolalysenko) merged 1 commit intoOct 14, 2026
Merged
Conversation
The nightly e2e-full legs of e2e_redirect_uv_build for uv 0.2.37, 0.3.5, 0.4.30 and 0.5.3 fail since #1453 added the orphan-unwind step: after rollback retires a leftover hosted override, uv.lock still holds `[manifest] overrides = [{ name = "six", specifier = "==1.17.0" }]`. uv before 0.5.6 records the override the hosted rewrite adds without folding in its [tool.uv.sources] url, and the restore only dropped records that carry the hosted url. Drop the bare `==<version>` record of the pin under the rewrite's ownership mark too; a user's own unmarked pin keeps its record (#411). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012v7idpMckM6PU5mBKBBmmg
Collaborator
Author
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 55902cd. Configure here.
Tanmay Singla (Tanmay182003)
approved these changes
Oct 14, 2026
Collaborator
Author
|
Labeled Ready for review by the burn-down agent.
Generated by Claude Code |
5 tasks
Mikola Lysenko (mikolalysenko)
deleted the
ci-janitor/uv-bare-manifest-override
branch
October 14, 2026 09:01
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The nightly
CIrun on main failed today (run 38518420487). The suite failed in 4 of the 12e2e-full (ubuntu-latest, e2e_redirect_uv_build, <uv>)legs: uv 0.2.37, 0.3.5, 0.4.30, 0.5.3. The 0.5.6 through 0.12.17 legs passed. Yesterday's nightly at 15c2c83 was green. Each failing leg failed in the same test and at the same assertion:The orphan-unwind step came in with #1453 (#1445), which landed after yesterday's nightly. The suite runs
--ignored, so these old-uv legs only run nightly, and #1453's PR checks never ran them.Root cause
uv before 0.5.6 records the
override-dependenciespin that the hosted rewrite adds as a bare{ name, specifier = "==<version>" }in[manifest] overrides, without folding in the[tool.uv.sources]url.restore_requirement_arrayonly dropped a rewrite-owned overrides record when it carried the hosted url, so retiring an orphaned pin removed the pyproject lines but left the lock record behind. This is a product bug as well as a red nightly: on old uv, rollback leaves a lock that no longer matches pyproject.toml.Fix
In
[manifest] overrides, when the metadata holds the rewrite's marked pin for the package (transitive_override), also drop a url-less, marker-less record whose specifier is exactly==<version>. A user's own unmarked pin still keeps its record (#411). That case is covered by the new unit testbare_manifest_override_of_the_rewrite_is_dropped.Proof
cargo test -p socket-patch-cli --test e2e_redirect_uv_build -- --ignored): same panic.cargo test -p socket-patch-core --lib upstream::uvpasses 25/25.--test hosted_inventorypasses 21/21.socket-patch-cli --test in_process_rollback_hostedpasses 41/41.cargo clippy -p socket-patch-core --all-targets -- -D warningsreports the same 33 test-code lints with and without this change. All of them are already on main, and none is in the new code.No tests were removed or moved.
🤖 Generated with Claude Code
https://claude.ai/code/session_012v7idpMckM6PU5mBKBBmmg
Generated by Claude Code