Repository navigation
Fix nightly Pipenv pylock legs broken by uv 0.13.2 - #1639
Mikola Lysenko (mikolalysenko) wants to merge 1 commit into
Conversation
The nightly e2e_vex_build pipenv legs (ubuntu and macOS) went red on 2026-10-20: `uv pip install -r pylock.toml` refuses the pylock Pipenv 2026.8.0 writes with "The target environment is not supported by the lockfile". Pipenv emits `environments = []`, and uv 0.13.2 (released 2026-10-19) started treating an empty list as "no environment supported". setup-uv installs the latest uv when no version is given, so the oracle drifted under an unchanged main. Pin uv to 0.13.1, the last version these legs passed on, in ci.yml and pipenv-compatibility.yml, as the other workflows already pin their uv. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H4ww7ytRoApPcBHiJN4bm2
|
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 a7c9207. Configure here.
Port of #1639. setup-uv installs the latest uv when no version is given, and uv 0.13.2+ refuses the `environments = []` pylock that Pipenv 2026.8.0 writes ("The target environment is not supported by the lockfile"). That broke the e2e_vex_build pipenv leg on main and in the merge queue, unrelated to this change. Pin uv 0.13.1, the last version those legs passed on. This no-ops once #1639 lands. Assisted-by: Claude Code:claude-opus-5-5
uv 0.13.2 refuses the `environments = []` pylock that Pipenv 2026.8.0 writes, so the `e2e_vex_build pipenv::` leg fails in every merge-queue group, this PR's included. This is the same change as #1639. It is a no-op once main has it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AtKg1zkBqwqeqibLMwej8X
|
This PR is now also the merge-queue blocker, not just a nightly fix. The
Main hasn't moved from Suggest reviewing this first and putting it at the front of the queue. Its own merge_group run carries the pin, so it passes. Generated by Claude Code |
uv 0.13.2 refuses the `environments = []` pylock that Pipenv 2026.8.0 writes, and the unpinned setup-uv steps picked it up. That turned the pipenv:: e2e leg red on main's nightly and in the merge queue. Same change as #1639; it no-ops once that lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EjY8AbwdkRcREjHqS6jcFx
Final review briefWhat it does. Pins Risk: low. CI config only: 12 added lines, no crate code. Every other workflow already pins uv ( Look here Verified. Read the full diff. CI is 36 passed / 19 skipped / 0 failed on the head. The Changes I made. None. Open questions. None. This is the most urgent approval in the repo. Once you approve, enqueueing it with "jump to front" (or dequeuing the queue entries that don't have the pin) stops the queue evicting every entry ahead of it. I can't do either from a cloud session, because GraphQL is blocked here. Generated by Claude Code |
uv 0.13.2 refuses the pylock Pipenv 2026.8.0 writes (environments = []) with "target environment is not supported by the lockfile". That failed e2e_vex_build pipenv:: in every merge-queue batch. This is the same pin #1639 adds: uv 0.13.1 in ci.yml and pipenv-compatibility.yml. It becomes a no-op once #1639 lands on main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FW66bMcoJmYGQykhbfuA8u
uv 0.13.2 refuses the pylock.toml Pipenv writes (environments = []), so the Pipenv e2e legs fail on every PR. Same change as #1639; it no-ops once that lands on main. Assisted-by: Claude Code:claude-opus-5-5
|
Labeled Ready for review.
Reviewers: this is a CI-only uv pin, and it unblocks the merge queue. Please review it before the other queued PRs. Generated by Claude Code |
The merge queue dropped this PR because
`pipenv::pipenv_pylock_projects_wire_what_pipenv_installs` failed in the
e2e_vex_build pipenv leg. uv 0.13.2+ refuses the `environments = []`
pylock that Pipenv 2026.8.0 writes ("The target environment is not
supported by the lockfile"), and setup-uv without `version:` installs
the newest uv. main's nightly is red for the same reason.
This is the same pin #1639 adds to ci.yml and pipenv-compatibility.yml.
It changes nothing once #1639 lands.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016akFSbKa8ztJC4jji31cAn
Ported from #1639. uv 0.13.2 and later refuse the pylock.toml Pipenv 2026.8.0 writes (environments = []) with "The target environment is not supported by the lockfile". The unpinned setup-uv step picked that release up, and the Pipenv e2e leg now fails for every PR in the merge queue. Pinning uv 0.13.1 restores the leg. The change is identical to #1639, so it is a no-op once that lands. Assisted-by: Claude Code:claude-opus-5-5
uv 0.13.2 and later refuse the `environments = []` pylock that Pipenv 2026.8.0 writes, so the unpinned setup-uv broke pipenv_pylock_projects_wire_what_pipenv_installs in the merge queue. Same change as #1639; it no-ops once main carries it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QE3Va4u8ZT15HpxzAULNcG
uv 0.13.2 and later refuse the `environments = []` pylock that Pipenv
2026.8.0 writes ("The target environment is not supported by the
lockfile"). setup-uv had no version pin, so the merge-queue
`e2e_vex_build pipenv::` leg started failing with no change on main,
and that dequeued this PR. Pin uv to 0.13.1, as #1639 does. The change
becomes a no-op once #1639 lands.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FuB4p2UQANHrpx4dHRwddS
Port of #1639. uv 0.13.2 refuses the pylock.toml that Pipenv 2026.8.0 writes (environments = []), so the pipenv e2e leg fails on main and kept this PR out of the merge queue. Pin setup-uv to 0.13.1 until that is sorted out; this no-ops once #1639 lands. Refs #1635 Assisted-by: Claude Code:claude-opus-5-5
|
[final reviewer] This PR looks superseded. Its whole change (the I haven't armed auto-merge because a squash would be empty. Labelled Generated by Claude Code |
|
CI janitor check (2026-10-21 11:50 UTC): this PR is now a no-op against main. The same Recommend closing this PR as superseded. Nothing in it is left to merge. Generated by Claude Code |
Problem
The nightly CI on main (schedule run 39376690526, head
14eee88b) is red and failsci-ok. Two legs failed, both in the same test:e2e (ubuntu-latest, e2e_vex_build, pipenv:: --ignored, 2026.8.0)e2e-macos (macos-latest, e2e_vex_build, pipenv:: --ignored, 2022.12.19 2026.8.0)The previous night's run on
7d3086f1passed. The two commits in between (#1429, #1592) don't touch Pipenv or the pylock code.Root cause
Pipenv 2026.8.0 writes
environments = []into thepylock.tomlit generates. uv 0.13.2, published to PyPI on 2026-10-19 at 20:59 UTC, now reads an emptyenvironmentslist as "no environment is supported" and refuses to install.astral-sh/setup-uvwith noversion:installs the latest uv, so the uv that checks this test's result changed while main stayed the same. Every other workflow here already pins uv (uv==0.11.19). The twosetup-uvsteps did not.Tested locally against the pylock that Pipenv 2026.8.0 generates (
uv pip install --dry-run -r pylock.toml):+ six==1.16.0error: The target environment is not supported by the lockfileFix
Pin
setup-uvtoversion: "0.13.1", the last uv these legs passed on, in:ci.yml: the "Setup uv (Pipenv / pip legs)" steppipenv-compatibility.yml: the "Install uv" step, which has the same exposureA comment next to each pin says why it is there, and that it should only be bumped after checking the Pipenv pylock legs.
No tests are removed or moved. Required-check names and
ci-okare unchanged.Proof
I built
e2e_vex_buildlocally and ranpipenv::pipenv_pylock --ignoredwithSOCKET_PATCH_PIPENV_E2E_VERSIONS=2026.8.0:FAILED, the sametarget environment is not supportederror as CItest result: ok. 1 passedBoth workflow files parse as YAML. actionlint and zizmor are not installed in this session.
Follow-up (not in this PR)
Pipenv's
environments = []is a real interoperability problem: users who install a Pipenv pylock with uv ≥ 0.13.2 will hit it too, with or without socket-patch. Someone should decide whether to report it to Pipenv or uv, and when to move the pin forward.Generated by Claude Code
Note
Low Risk
Workflow-only pin to restore CI; no application or security logic changes.
Overview
Pins uv to 0.13.1 on the two CI workflows that used unpinned
astral-sh/setup-uvfor Pipenv/pip and pylock legs (ci.yml“Setup uv (Pipenv / pip legs)” andpipenv-compatibility.yml“Install uv”).uv 0.13.2+ treats Pipenv 2026.8.0’s
environments = []inpylock.tomlas unsupported and failsuv pip install -r pylock.toml, which broke nightly Pipenv pylock e2e. Inline comments document the pin and that bumps should follow a deliberate pylock-leg check.Reviewed by Cursor Bugbot for commit a7c9207. Configure here.
Generated by Claude Code