Repository navigation
chore(deps): 🔧 relax dependency floors and test them in CI - #54
Merged
Merged
Conversation
Member
Author
|
🤖 AI text below 🤖 Rebased onto |
Panadestein
force-pushed
the
chore/18-dependency-floors
branch
from
October 6, 2026 13:32
09b18e1 to
b7fb5e3
Compare
numpy goes from >=2.4.4 to >=2.0 and quimb from >=1.14.0 to >=1.8.3, the oldest releases the suite passes on (quimb 1.8.0-1.8.2 ignore float32 in MPO_rand). A new test job on Python 3.11 resolves every direct dependency to its lowest allowed version so the floors stay tested. A check-tool-pins prek hook fails if the ruff or ty pins in pyproject.toml and prek.toml disagree. Closes #18 Assisted-by: pi:claude-opus-5.5
Panadestein
force-pushed
the
chore/18-dependency-floors
branch
from
October 6, 2026 15:43
b7fb5e3 to
6622280
Compare
Contributor
Member
Author
|
🤖 AI text below 🤖 Fixed the failing CI and rebased onto
All checks pass now, including |
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 🤖
Closes #18.
Dependency floors
I found the floors by running the fast suite on Python 3.11 against older releases:
numpy(runtime)>=2.4.4,<3>=2.0,<3<3cap and a NumPy-2 floor as the issue proposes, since NumPy 2 changed how dtypes are promoted (NEP 50).quimb(testgroup)>=1.14.0,<2>=1.8.3,<2test_*_precision[float32-MPO_rand]becauseMPO_randignoresfloat32there.opt_einsum>=3.4.0is already the latest release, so I left it alone.Floors tested in CI
test.ymlgets an extra matrix entry onubuntu-latest/ Python 3.11 withUV_RESOLUTION=lowest-direct. It sets the variable for the whole job, so the lateruv runsteps don't re-sync to the lockfile. That job resolvesnumpy==2.0.0,quimb==1.8.3,opt_einsum==3.4.0,pytest==9.1.0and so on. I ran the same commands locally, including--cov, and the whole suite passes. Artifact labels now include the resolution so they stay unique.Ruff pin
The
ruffpart of the issue was mostly fixed already: there is oneprek.toml(no.pre-commit-config.yaml), andupdate-ruff.ymlbumps both pins. What was missing is the check that fails when they drift apart. This PR adds:.github/scripts/check_tool_pins.py, run as the localcheck-tool-pinsprek hook wheneverpyproject.tomlorprek.tomlchanges. It compares theruff==andty==pins in the dependency groups with therevof their pre-commit mirrors. I checked that it fails on a deliberately wrongtyrev.Docs
There is a new "Version constraints" section in
docs/developer-guide/dependencies.md. It covers the floor policy, how to reproduce the lowest-resolution job locally, and the pin check.Notes
benchgroup that also pinsquimb>=1.14.0. Whichever merges second should set that pin to>=1.8.3too.uv run prek run --all-filesis clean.uv run pytest -m "not slow"gives 123 passed, 1 skipped (no CuPy).