Run breeze from the locked dev/breeze environment - #72113
Open
potiuk wants to merge 1 commit into
Open
Conversation
Breeze was installed by resolving dev/breeze/pyproject.toml against the package index on every fresh environment — `uvx --from ./dev/breeze` in the shim, `uv tool install --editable ./dev/breeze` in CI. Neither reads dev/breeze/uv.lock, and neither applies the `[tool.uv] exclude-newer` buffer declared beside it, which governs project operations only. The committed lock recorded nothing, so an upstream release could change what breeze runs with no commit in this repository. click 8.5.0 showed the cost. It added a `help` field to the argument info dict breeze hashes to detect command drift, so within the hour of its release every CI job resolved it, every command taking a positional argument hashed differently from its committed value, and static checks went red on every open PR regardless of what it touched. The lock said click 8.4.2 throughout. The command-output files move back to the versions the lock produces; the next lock upgrade regenerates them together with the dependency bump that causes them.
potiuk
requested review from
amoghrajesh,
ashb,
bugraoz93,
choo121600,
ephraimbuddy,
gopidesupavan,
jason810496,
jedcunningham,
jscheffl,
kaxil,
shahar1,
vatsrahul1001 and
vincbeck
as code owners
August 26, 2026 17:48
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.
Breeze was installed by resolving
dev/breeze/pyproject.tomlagainst the package index on every fresh environment —uvx --from ./dev/breezein the shim,uv tool install --editable ./dev/breezein CI. Neither readsdev/breeze/uv.lock, and neither applies the[tool.uv] exclude-newerbuffer declared beside it, which governs project operations only. The committed lock recorded nothing, so an upstream release could change what breeze runs with no commit in this repository.click 8.5.0 showed the cost (#72106): it added a
helpfield to the argument info dict breeze hashes to detect command drift, so within the hour of its release every CI job resolved it, every command taking a positional argument hashed differently from its committed value, and static checks went red on every open PR regardless of what it touched. The lock said click 8.4.2 throughout, and the four-dayexclude-newerbuffer never applied.The shim now runs
uv run --project <worktree>/dev/breeze --locked breeze, and CI runsuv sync --project ./dev/breeze/ --lockedinstead of installing a globaluv tool. Per-worktree isolation (ADR 0017) is unchanged; what changes is that dependencies come from the lock. ADR 0017 is amended in place.The 38 command-output files move back to the hashes the locked click 8.4.2 produces — the exact content from before #72106, which is what a lock-honouring install regenerates. click 8.5.0 reaches breeze when the lock upgrade admits it (
exclude-newerclears 2026-08-30), regenerating those files in the same PR as the bump.Note for contributors: the shim body changed, so
# breeze-shim-versionmoves to 2 — re-run./scripts/tools/setup_breezeonce after this merges.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines