Single-source the CI uv pin and route lockfile recipes through it#362
Draft
ciaranra wants to merge 2 commits into
Draft
Single-source the CI uv pin and route lockfile recipes through it#362ciaranra wants to merge 2 commits into
ciaranra wants to merge 2 commits into
Conversation
b735c3a to
ebdc29f
Compare
5004757 to
e11f008
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/uv.tomlwithrequired-version = "==0.11.14"as the single source of truth for the uv version. It lives inside.github/deliberately: uv's config discovery never finds it there, so it does not enforce the pin on local uv commands (a rootuv.tomlwould).astral-sh/setup-uvsteps across 8 workflows at it viaversion-file:(the pinned setup-uv v7 documents uv.toml support for this input). Bumping uv is now a one-line change.uv-pinvariable parsed from the same file; newjust lockrecipe that minimally re-resolves both lockfiles (root andexp/zluppy/) with the pinned uv, for version bumps and dependency edits;updatelocksnow uses the pinned uv and regeneratesexp/zluppy/uv.locktoo, which it previously missed.just lock.Context
During the 0.9.0.dev1 bump (#361), regenerating lockfiles with a local uv (0.11.16) newer than the CI pin (0.11.14) silently re-simplified unrelated dependency markers, polluting the diff. Nothing made the pin discoverable or the lock path deterministic. A dev regenerating locks with a floating uv could also fail CI's
uv lock --checkwith a lock that looks up to date locally.Assumption: including
exp/zluppy/uv.lockinupdatelocksis intended -- it was the only lockfile the refresh recipe skipped.Stacked on #361 because both touch the same RELEASING.md lines; GitHub will retarget this PR to
devwhen #361 merges.Validation
just --evaluate uv-pinprints 0.11.14just lockruns both re-resolutions viauvx uv@0.11.14and produces no diff on a clean treeuv lock --checkwith local uv 0.11.16 still passes from the repo root (pin file not discovered locally)version-file:;git grep 0.11.14 .github/workflows/is emptyjust lintpasses over the whole repoPost-release update