Skip to content

Fix pdm e2e red on every PR: pin hishel<2 - #2028

Merged
Mikola Lysenko (mikolalysenko) merged 1 commit into
mainfrom
ci-janitor/pdm-hishel-2
Nov 6, 2026
Merged

Mikola Lysenko (mikolalysenko) merged 1 commit into
mainfrom
ci-janitor/pdm-hishel-2

Conversation

@mikolalysenko

@mikolalysenko Mikola Lysenko (mikolalysenko) commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

hishel 2.0.0 was published to PyPI on 2026-11-05 at 14:10 UTC. Since then the required e2e (ubuntu-latest, e2e_vex_build, poetry/pdm/hatch/pipenv/deno) leg in ci.yml fails on every PR, and through ci-ok that blocks every merge:

Both PRs fail the same two tests with the same error. The other suites in the leg (poetry, hatch, pipenv, deno) pass:

test pdm::pdm_vendored_install_then_manifest_less_vex ... FAILED
test pdm::pdm_hosted_install_then_manifest_less_vex ... FAILED
SOCKET_PATCH_PDM_E2E_REQUIRED is set but pdm lock (PyPI) failed: exit Some(1)
[AttributeError]: module 'hishel' has no attribute 'SyncSqliteStorage'

Main is green only because nothing has merged since the release. The next merge_group run will fail too. The pdm-compatibility.yml cells for 2.26.9+ and the nightly / extended pdm legs on recent releases have the same exposure.

Root cause

PDM 2.26.9+ declare an unbounded hishel[httpx]>=1.0.0 (2.29.6 declares >=1.4.0). hishel 2.0 dropped SyncSqliteStorage, which PDM imports at startup. This is the same failure mode as the existing hishel<1 (2.21 to 2.26.0) and unearth<0.19 pins.

Fix

Pin hishel<2 when bootstrapping PDM 2.26.1+, in both crates/socket-patch-cli/tests/e2e_vex_build/pdm.rs and scripts/backtest-pdm.py (the two pins_for copies). For 2.26.1 to 2.26.8, which already bound <1, the pin changes nothing. No test is removed or skipped.

Proof

  • Reproduced locally: pip install pdm==2.29.2 'unearth<0.19' resolves hishel 2.0.0, and pdm lock fails with the CI error. Adding 'hishel<2' resolves 1.4.0 and pdm lock succeeds.
  • SOCKET_PATCH_PDM_E2E_REQUIRED=1 SOCKET_PATCH_PDM_E2E_VERSION=2.29.2 cargo test -p socket-patch-cli --test e2e_vex_build -- pdm:: --ignored gives 2 passed, and the bootstrapped venv has hishel-1.4.0.
  • backtest-pdm.py pins_for: 2.20.1 is unchanged, 2.25.9 keeps hishel<1, and 2.26.1 / 2.29.2 add hishel<2.
  • rustfmt --check on the touched file is clean.

https://claude.ai/code/session_011f9aeNshqCtBWV4tqKmmZ6


Generated by Claude Code

hishel 2.0.0 was published on 2026-11-05 at 14:10 UTC and removed
SyncSqliteStorage. PDM 2.26.9 and later declare an unbounded
`hishel>=1.0.0`, so a fresh bootstrap now resolves 2.0 and every
pdm command dies with "module 'hishel' has no attribute
'SyncSqliteStorage'". That turns the ci.yml e2e_vex_build leg
(pdm 2.29.2) red on every PR, and through ci-ok blocks every merge.

Pin `hishel<2` for 2.26.1+ in both the e2e harness and
scripts/backtest-pdm.py. For 2.26.1 - 2.26.8, which already bound
`<1`, the pin changes nothing. 2.21 - 2.26.0 keep `hishel<1`.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011f9aeNshqCtBWV4tqKmmZ6
@mikolalysenko Mikola Lysenko (mikolalysenko) added the ci-janitor Opened by the CI janitor routine (flakes, redundant tests, CI perf) label Nov 5, 2026
@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

@mikolalysenko Mikola Lysenko (mikolalysenko) added the Ready for review Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review label Nov 5, 2026
@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

Labeled Ready for review (burn-down agent).

  • Head: 6c615de428123b7cebeddafc0c372e81dcdf4690
  • CI: 50/50 checks green.
  • Bugbot: reviewed this head, no issues found.
  • Mergeable, no CHANGELOG.md change.
  • Slack announcement not sent this run (no Slack send tool available); the next run will retry.

Generated by Claude Code

@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

Final review brief (for the human approver)

What it does: hishel 2.0 (released today) removed SyncSqliteStorage, and PDM 2.26.9+ declare an unbounded hishel>=1, so the pdm e2e_vex_build job fails on every PR (it is the red check on #2022, #2017, #2016, #2014, #2011, #2008, #2003). This pins hishel<2 for PDM >= 2.26.1 in the e2e harness and the backtest script, alongside the existing hishel<1 / unearth<0.19 pins. Test-harness only; no product code changes.

Risk: low. Two pin additions in test tooling; no effect on the shipped CLI. For 2.26.1-2.26.8 the pin is a no-op (they already bound <1).

Look here

  • pdm.rs:139-147: the new else if t >= (2, 26, 1) branch
  • backtest-pdm.py:207-212: the same rule in the backtest script (elif binds to the hishel<1 if, so the ranges are disjoint)

Verified

  • Read the full diff (2 files, +14). Branch ranges in Rust and Python match and don't overlap.
  • python3 -m py_compile scripts/backtest-pdm.py passes.
  • CI on this head: 50/50 (31 success, 19 path-skipped); the pdm e2e_vex_build job ran and passed. Bugbot: no findings. CHANGELOG.md untouched.

Changes I made: none.

Open questions: none blocking. (Nit: required_pins in the backtest doesn't list hishel, so a cached backtest venv built after today wouldn't be detected as broken; same as the existing unearth pin, so out of scope.)

Merging this should turn the other Ready-for-review PRs green after they pick up main. Auto-merge is armed, so approving sends it straight to the merge queue.


Generated by Claude Code

@mikolalysenko
Mikola Lysenko (mikolalysenko) added this pull request to the merge queue Nov 6, 2026
Merged via the queue into main with commit c6a4fda Nov 6, 2026
50 checks passed
@mikolalysenko
Mikola Lysenko (mikolalysenko) deleted the ci-janitor/pdm-hishel-2 branch November 6, 2026 20:47
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Nov 6, 2026
The release PR's only red check was the pdm e2e that failed main-wide;
#2028 fixed it on main.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-janitor Opened by the CI janitor routine (flakes, redundant tests, CI perf) Ready for review Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants