Repository navigation
Conversation
… locally `just test` took no interpreter, so which python it ran on was ambient state: whatever the project environment happened to hold. CI got the right answer only because the preceding `uv sync --python` step had shaped that environment, and locally there was no way to reproduce a single matrix leg at all. Add a `py` variable that pins the interpreter in the recipe itself, and a `test-all` recipe that loops over the supported versions. A pinned version gets its own environment directory. `uv run --python` does not merely select an interpreter: when the project environment's interpreter does not match, uv deletes and rebuilds it. Without this, the advertised `just py=3.12 test` would destroy the `.venv` the developer was working in and strand it on the pinned version — and for zarr-indexing, whose recipes run against the repo-root project, the casualty would be the root zarr environment. CI is unaffected either way, since its `uv sync --python` has already shaped the environment to the matrix version. The version lists stay literal, mirroring the classifiers in pyproject.toml and the workflow matrices. Deriving them by scraping the classifiers was tried and dropped: the list feeds only `test-all`, so a bad scrape could not affect what CI covers, and a regex over TOML can produce a wrong-but-plausible list where a literal can only be stale. Assisted-by: ClaudeCode:claude-opus-5
This branch has not been deployed
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.
🤖 AI text below 🤖
Adds an explicit
pyvariable to test recipes in the three packages, wires CI's matrix version into the recipe call, and addstest-allover literal supported-version lists. A selected version uses its own.venv-<version>directory, avoiding replacement of the default project environment when switching interpreters.Previously the recipe used the environment selected by an earlier
uv syncor local setup. A contributor could still reproduce a matrix leg with an explicit uv command; the improvement is making that selection part of the recipe interface. The existing CI version matrices remain unchanged.Earlier verification reported multi-version zarr-metadata runs and rendered commands for the other packages. This factual pass inspected the recipes and CI wiring; it did not independently rerun every supported Python version. Argument quoting through the nested
test-allcall remains a documented limitation.