GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||
GeezerVison is showing github.com — Fix vendored requirements refusing marker-split pins (#928) by mikolalysenko · Pull Request #929 · SocketDev/socket-patch Conversation
|
| Issue | Test | Without fix | With fix |
|---|---|---|---|
| #928 | vendor::pypi_requirements::tests::find_pin_classifies_every_shape (split → Exact; 7 fail-closed variants → Range) |
FAIL | pass |
| #928 | vendor::pypi_requirements::tests::marker_split_rewrites_only_the_vendored_branch (hashed and CRLF, --generate-hashes continuation lines, revert byte-identical) |
FAIL | pass |
| #928 | vendor::pypi_requirements::tests::marker_split_preflights_fresh_and_wires_unhashed (preflight Fresh, unhashed shape) |
FAIL | pass |
| #928 | e2e e2e_vendor_pypi_build::pip_vendored_requirements_marker_split_rewrites_matching_branch (real pip: vendor, fresh --no-index --require-hashes install of the patched wheel, manifest-less VEX, byte-identical revert) |
FAIL (pypi_requirement_not_pinned) |
pass |
| — | utils::pep440::tests::exact_pin_spellings (new is_exact_pin cases) |
n/a | pass |
Commands run locally:
cargo clippy --workspace --all-features -- -D warnings: clean, with the Route Gradle digests through utils::digest #878 port included.cargo fmt --all -- --check: the touched files are clean. main itself isn't rustfmt-clean, and CI doesn't run fmt, so I reverted the unrelated reformatting fmt produced.cargo test -p socket-patch-core --all-features --lib with the Route Gradle digests through utils::digest #878 port: 5248 passed, 4 failed. All 4 also fail on main (9c43dfc) in this sandbox. They're permission tests that can't fail a write when run as root: copy_tree::relax_loop_must_not_traverse_symlinked_root, vlt_heal::an_unremovable_hidden_lock_keeps_every_store_entry, pypi_poetry::wire_write_failure_… and pypi_requirements::wire_failure_rolls_back_…. CI runs as a normal user.cargo test -p socket-patch-cli --all-features --test e2e_vendor_pypi_build -- pip_vendored_requirements_marker_split pip_vendored_requirements_evaluate_environment_markers: 2 passed.cargo test --workspace can't link in this sandbox because the disk fills up, so CI covers the rest.No wrapper changes are needed: the npm, pypi and gem wrappers only dispatch to the binary.
🤖 Generated with Claude Code
https://claude.ai/code/session_01CTNUJ6piYReSsL98PS26Ue
Generated by Claude Code
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Assisted-by: Claude Code:claude-opus-5-5
`uv pip compile --universal` writes one requirements line per marker branch when a package resolves to different versions per Python: six==1.16.0 ; python_full_version < '3.12' six==1.17.0 ; python_full_version >= '3.12' Vendored mode refused the whole file with "six is not pinned to ==1.16.0", because any same-name pin to another version counted as an ambiguous range. pip installs exactly one branch, so the other pin is not ambiguous when it and every target pin carry a marker. Vendored requirements now rewrite only the target branch (keeping its marker and hash mode) and leave the other branch alone, matching hosted requirements and vendored pylock. Revert is byte-identical. An unmarked split, a range, `===`, a wildcard, or a file with no target pin is still refused. Fixes #928 Assisted-by: Claude Code:claude-opus-5-5
Covers #928 end to end with real pip: a hashed `uv pip compile --universal` style requirements.txt that splits six across marker branches vendors only the matching branch, a fresh --no-index --require-hashes checkout installs the patched wheel, manifest-less VEX attests it, and revert restores the file byte-identical. Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Stale Bugbot comment from a previous run.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
main's CI fails `utils::digest::tests::production_digests_go_through_ the_helpers`, because three Gradle/Maven call sites hash with sha1/sha2 directly instead of the digest helpers. This is the same change as #878 (agent/ci-gradle-digest-helpers), ported so this PR's CI can go green. It becomes a no-op once #878 lands on main. Assisted-by: Claude Code:claude-opus-5-5
There was an error while loading. Please reload this page.
|
[agent] CI status, two failures:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
✅ 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 ec03260. Configure here.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Burn-down agent: labeled Ready for review at
Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Vendored requirements.txt fromuv pip compile --universal refuses a marker-split package (six==1.16.0 ; python < 3.12 + six==1.17.0 ; python >= 3.12) as "not pinned to ==1.16.0", while --dry-run previews would_vendor and hosted / vendored pylock handle the same split
There was an error while loading. Please reload this page.