ci: locked dependency installs — stop lane-pin thrash from PyPI drift #48
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/ci-locked-installs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
PRs #46/#47 both failed lane-shas with diffs no lane executes, while main stayed green — classic environment drift: workflows install unlocked (
uv pip install -e ., floor-only specs) althoughuv.lockexists. A PyPI release between runs shifts the runner's resolved deps and the byte-exact lane pins move with it (the remaining vector of the #37-era pin-thrash class).Fix: all six workflows install the locked universe (
uv sync --locked,--extra devwhere[dev]was installed). Lane pins can now only move when code moves; a stale lock fails loudly instead of resolving silently.Evidence: identical failing-PR tree verifies 9/9 pinned SHAs locally against the locked venv;
uv lock --checkclean; local smoke 175 passed. Self-validating — this PR's own lane-shas run uses this branch's workflow.After merge: I update #46/#47 branches so their re-runs inherit the fix.
[Verification]: Smoke suite passed locally (175 passed); lane repro 9/9; lock check clean