Skip to content
Draft
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
5 changes: 5 additions & 0 deletions .github/uv.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Single source of truth for the uv version: CI reads it via setup-uv's
# version-file input; Justfile lock recipes read it via the uv-pin variable.
# Kept inside .github/ so uv's config discovery never finds it -- a uv.toml at
# the repo root would enforce required-version on every local uv command.
required-version = "==0.11.14"
2 changes: 1 addition & 1 deletion .github/workflows/dependency-integrity-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'development' || github.ref_name == 'dev') }}

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr-core-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
if: steps.detect.outputs.run == 'true'
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down Expand Up @@ -198,7 +198,7 @@ jobs:
if: steps.detect.outputs.run == 'true'
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down Expand Up @@ -221,7 +221,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"

- name: Download PR smoke artifacts
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/python-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down Expand Up @@ -170,7 +170,7 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down Expand Up @@ -289,7 +289,7 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down Expand Up @@ -430,7 +430,7 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"

- name: Set up Rust (Windows)
if: runner.os == 'Windows' && matrix.include-llvm
Expand Down Expand Up @@ -564,7 +564,7 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && contains(fromJSON('["main", "master", "development", "dev"]'), github.ref_name) }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
- name: Install integrity check tools
run: |
sudo apt-get update
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/selene-plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'development' || github.ref_name == 'dev') }}

Expand Down Expand Up @@ -166,7 +166,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'development' || github.ref_name == 'dev') }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-docs-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
with:
version: "0.11.14"
version-file: ".github/uv.toml"
enable-cache: true
save-cache: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'development' || github.ref_name == 'dev') }}

Expand Down
18 changes: 16 additions & 2 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ set shell := ["bash", "-cu"]
# PECOS CLI - must be installed (run 'just install-cli' first)
pecos := "cargo run --locked -p pecos-cli --"

# uv version for lockfile generation, single-sourced from the CI pin.
# Lockfiles must be written by this exact version: a different uv can
# re-simplify dependency markers, polluting diffs and failing CI's
# `uv lock --check`.
uv-pin := `sed -n 's/^required-version = "==\(.*\)"$/\1/p' .github/uv.toml`

# =============================================================================
# Getting Started
# =============================================================================
Expand Down Expand Up @@ -1134,11 +1140,19 @@ build-release: (build "release")
[private]
build-native: (build "native")

# Re-resolve uv lockfiles minimally (no dependency updates), e.g. after a version bump
[group('setup')]
lock:
uvx uv@{{uv-pin}} lock --project .
uvx uv@{{uv-pin}} lock --project exp/zluppy

# Regenerate all lockfiles from scratch
[group('setup')]
updatelocks: _msvc-bootstrap
rm -f uv.lock Cargo.lock
uv lock --project .
rm -f uv.lock Cargo.lock exp/zlup/uv.lock exp/zluppy/uv.lock
uvx uv@{{uv-pin}} lock --project .
uvx uv@{{uv-pin}} lock --project exp/zlup
uvx uv@{{uv-pin}} lock --project exp/zluppy
cargo generate-lockfile

# Install CUDA Python packages (requires CUDA toolkit)
Expand Down
8 changes: 4 additions & 4 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The final PyPI push is deliberately **manual**: artifact building and testing
are automated, but a human runs the upload and confirms each package. This
sequence was last exercised for `0.9.0.dev0`.
sequence was last exercised for `0.9.0.dev1`.

## 1. Version bump (its own PR)

Expand All @@ -13,9 +13,9 @@ The version is a literal in many coordinated places. Bump them all:
`python/selene-plugins/*` packages)
- Exact-version internal pins: the root's `quantum-pecos[cuda12/13]==...`
entries and quantum-pecos's `pecos-rslib==...` / `pecos-rslib-llvm==...`
- Regenerate both lockfiles: `uv lock` at the root and in `exp/zluppy/`,
using the same uv version CI pins in `.github/workflows/` (verify the
diffs are version-lines-only)
- Regenerate both lockfiles: `just lock` (runs the pinned uv from
`.github/uv.toml` at the root and in `exp/zluppy/`; verify the diffs
are version-lines-only)

Verify: `git grep <old-version>` returns nothing outside this file's
historical note; `uv lock --check` passes;
Expand Down
Loading