Repository navigation
Let the pdm e2e bootstrap install pdm 2.29.4+ - #2034
Mikola Lysenko (mikolalysenko) wants to merge 1 commit into
Conversation
The pdm bootstrap pinned `unearth<0.19` for every 2.x release and `hishel<2` for every release from 2.26.1. pdm 2.29.4 moved to httpx2 and requires `unearth>=0.19`, and pdm 2.29.7 (2026-11-06) requires `hishel>=2.0`, so pip refuses to resolve the bootstrap for any of those releases: both pdm e2e cases fail before pdm runs. The matrix still runs 2.29.2, so CI is green today, but the next bump of the latest-pdm row (or a backtest of a current release) would go red with ResolutionImpossible. Apply each pin only to the releases that declare the unbounded requirement: `unearth<0.19` below 2.29.4, `hishel<2` from 2.26.1 up to 2.29.7. Mirror the bounds in scripts/backtest-pdm.py. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_011f9aeQMSUtsXXCdCmmVd9T
|
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 f0cac3e. Configure here.
|
Labeled Ready for review by the burn-down agent.
Generated by Claude Code |
Final review briefWhat it does. The pdm e2e bootstrap ( Risk: low. Only test/backtest bootstrap pins move, and the pin set is unchanged for every pdm version CI runs today (1.4.5 … 2.29.2). The new upper bounds only take effect when a matrix row or backtest moves past 2.29.3. Look here
Verified. Read the full diff: the Rust and Python bounds match each other and the release table in the description; both compare 3-tuples like the existing branches. No CHANGELOG change, no debug leftovers, no scope creep. Merges cleanly into current main. CI on Changes I made. None. Auto-merge (squash) is armed, so approving sends this straight to the merge queue. Generated by Claude Code |
Problem
pins_forincrates/socket-patch-cli/tests/e2e_vex_build/pdm.rs(and its twin inscripts/backtest-pdm.py) addsunearth<0.19for every pdm 2.x release andhishel<2for every release from 2.26.1. Upstream pdm has since moved past both:unearth>=0.17.5,hishel[httpx]>=1.0.0unearth>=0.19,hishel[httpx2]>=1.4.0unearth>=0.19,hishel[httpx2]>=2.0So the pdm e2e cases fail before pdm even runs for any current release. CI is green today only because the matrix rows still run pdm 2.29.2 (
ci.ymllines 1428, 2201). The next bump of the latest-pdm row, or a backtest of a current release, goes red. This is the same class of break as #2028 (hishel 2.0, which turnede2e_vex_buildred on every PR) and #1738 (unearth 0.19): floating deps behind pdm. This PR stops the fixes for those breaks from causing the next one.Fix
Apply each pin only to the releases that declare the unbounded requirement:
unearth<0.19only for pdm < 2.29.4hishel<2only for 2.26.1 ≤ pdm < 2.29.7The same bounds go into
scripts/backtest-pdm.py. Nothing changes for the versions CI runs today (1.4.5, 1.15.5, 2.7.4, 2.8.2, 2.25.9, 2.29.2).Proof
Real
e2e_vex_buildpdm cases (SOCKET_PATCH_PDM_E2E_REQUIRED=1 cargo test -p socket-patch-cli --test e2e_vex_build -- pdm:: --ignored), fresh tool caches:Python pin table after the change: 2.25.9 →
hishel<1, unearth<0.19; 2.29.2/2.29.3 →hishel<2, unearth<0.19; 2.29.4/2.29.6 →hishel<2; 2.29.7+ → none.rustfmt --checkon the touched file is clean.cargo clippy -p socket-patch-cli --test e2e_vex_build -- -D warningsreports one pre-existingneedless_borrows_for_generic_argserror inpoetry.rs:473. This PR doesn't touch that file, and CI's clippy configuration doesn't flag it.Where tests run
No test is added, removed or moved. Only the pdm bootstrap pins change.
Context (CI janitor run 2026-11-06 21:40 UTC)
The merge queue is empty and healthy, and main push and merge_group runs are green. The two nightly failures (gem CRLF source block on bundler 1.17/2.1, and pdm hishel) were fixed by #1999 and #2028 after last night's run. 15 open PRs are still red on the pdm leg because their heads predate #2028 and need
origin/mainmerged in.https://claude.ai/code/session_011f9aeQMSUtsXXCdCmmVd9T
Generated by Claude Code