Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/release-lock.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ contents, validates their semantics, and runs an actual `uv lock --check`.
The default check supports inspecting an uncommitted candidate, but release CI
uses `--committed`. Neither check repairs a stale lock.

The lock is generated by the uv version pinned in every `astral-sh/setup-uv` step of
the workflows (currently 0.12.13). Different uv releases normalize resolution markers
differently when they re-resolve, so an unpinned runner rewrites the reviewed graph the
first time the root version changes and `--refresh` fails closed (2026-09-11, the 2.0.0
release). To upgrade uv: change the pin in all three workflows and regenerate the lock
with the new version in the same reviewed PR, forcing a re-resolution by bumping the
root version, locking, restoring the version, and locking again.

`--refresh` is only for the automatic root version bump. It runs uv to refresh
and check the lock, preserving the complete reviewed dependency graph and all
lock metadata except the root package version. Any dependency, artifact,
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ jobs:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Check committed registry lock
run: python .github/release_lock.py --committed
ReleaseLockTests:
Expand All @@ -31,6 +33,8 @@ jobs:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Test guard without importing the country model
env:
RELEASE_LOCK_REAL_UV: "1"
Expand All @@ -42,6 +46,8 @@ jobs:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Check formatting
Expand Down Expand Up @@ -123,6 +129,8 @@ jobs:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: "0.12.13"
- name: Install package
run: uv sync --locked --extra dev
- name: Install bundle validation tooling
Expand All @@ -147,6 +155,8 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install package
run: uv sync --locked --python "${{ matrix.python-version }}" --extra dev
- name: Smoke-import
Expand Down Expand Up @@ -181,6 +191,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -280,6 +292,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand All @@ -304,6 +318,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -350,6 +366,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -377,6 +395,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -404,6 +424,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ jobs:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Check committed registry lock
run: python .github/release_lock.py --committed
ReleaseLockTests:
Expand All @@ -31,6 +33,8 @@ jobs:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Test guard without importing the country model
env:
RELEASE_LOCK_REAL_UV: "1"
Expand All @@ -45,6 +49,8 @@ jobs:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Check formatting
Expand All @@ -69,6 +75,8 @@ jobs:
token: ${{ steps.app-token.outputs.token }}
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Set up Python
uses: actions/setup-python@v6
with:
Expand Down Expand Up @@ -163,6 +171,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -190,6 +200,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -239,6 +251,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -269,6 +283,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand Down Expand Up @@ -299,6 +315,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Install dependencies
run: uv sync --locked --extra dev
- name: Turn off default branching
Expand All @@ -324,6 +342,8 @@ jobs:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"
- name: Check committed registry lock before publication
run: python .github/release_lock.py --committed
- name: Install package
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/weekly-uv-lock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:

- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
version: "0.12.13"

- name: Set up Python
uses: actions/setup-python@v6
Expand Down
1 change: 1 addition & 0 deletions changelog.d/release-lock-uv-toolchain.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Pin the uv release toolchain (0.12.13) in the workflows and commit the registry lock in that version's marker normalization, so the automatic version bump's lock refresh changes only the root version instead of failing closed.
74 changes: 37 additions & 37 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading