Repository navigation
Replace pip and uv pip in the dev tooling with uv-native commands - #125
Merged
Merged
Conversation
Tools run through uvx (bandit 1.9.4, pip-audit 2.10.1, build 1.6.1), wheel tests through uv run --no-project --with "<wheel>[test]" python -m pytest, the example dependencies through a uv sync project, the dependency floor audit through uv lock on a throwaway project instead of uv pip compile, the manylinux containers through a mounted uv, and every uv install URL pins 0.12.0. after_tag_verify.sh replaces pip download with a curl of the wheel of each platform from the PyPI JSON plus a sha256 check. ensure-build-tools.sh (unused, installed build with uv pip) is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 29, 2026
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.
Closes #124
Replaces every pip,
uv pip,uv venvandpython -m pipin the CI workflows, scripts, Dockerfile,CLAUDE.mdand the development docs with uv-native commands. Job names and matrices are unchanged.pyproject.tomlstays a non-uv package definition (managed = false); only its comments changed.test-jvm.ymlBandit jobpython -m pip install bandit==1.9.4,python -m bandit ...uvx bandit==1.9.4 ...test-jvm.ymlfloor auditpython -m pip install pip-audit==2.10.1,uv pip compile --resolution lowest-direct --python-version V,pip-audit --disable-pipuv lock --resolution lowest-directon a throwaway project per Python (requires-python = "==V.*"),uv export,uvx pip-audit==2.10.1 --disable-piptest-jvm.ymlbuild jobuv pip install --system build wheel setuptoolsuvxin the scripts)test-jvm.ymltest jobuv pip install --system <wheel> <hand list>,pytest tests/uv run --no-project --python $PYVER --with "<wheel>[test]" python -m pytest tests/; the hand list is replaced by thetestextra, which already mirrors ittest-jvm.ymlmanylinux steppython -m venv,pip install --only-binary=:all:uv,uv run --no-project --no-build --python /opt/python/$PYTAG/bin/python --with <wheel>test-native.ymlglibc 2.28 gatepython -m venv,pip install --no-indexuv,uv run --no-project --no-index --python ... --with <wheel>test-python-examples.ymluv pip install --systemof the build tools, wheel, torch (CPU index), example dependencies, tqdm, py7zr, lxml; examples ran with the systempythonuv syncproject inexamples-env/(torch from an explicit CPU index), examples run with that environment's interpreter ($EX_PY)uvinstallsastral.sh/uv/install.sh(latest)astral.sh/uv/0.12.0/install.shscripts/Dockerfile.builduv pip install --system build wheel setuptools,python3 -m build,uv pip install --system <wheel> pytest pytest-covuvx --from "build[uv]==1.6.1" pyproject-build --installer uv --wheel,uv run --no-project --with <wheel> --with pytest --with pytest-cov, uv version asARG UV_VERSION=0.12.0scripts/build-native.shbuild,python -m builduv, runs the sameuvx --from "build[uv]==1.6.1" pyproject-buildscripts/after_tag_verify.shuvx pip download --platform ...for each platformcurls it and compares the sha256 PyPI listsscripts/ensure-build-tools.shuv pip install buildinto the system Python (referenced nowhere)scripts/build.shhint,CLAUDE.mdTest sectionuv venv,uv pip install --reinstall-packageuv run --no-project --with "<wheel>[test]" python -m pytestDependabot keeps
package-ecosystem: "pip": theuvecosystem reads auv.lock, which this repo does not have. A comment now says so.What
after_tag_verify.shno longer proves: pip's platform-tag resolution formanylinux_2_34and the like. It still proves each platform has exactly onepy3-nonewheel on PyPI that downloads and matches its listed sha256, and the freshuv run --withsmoke on 3.12 and 3.14 is unchanged.Not done here: the helper scripts still run with
python3(stdlib only), anddocs/superpowers/andnative/wheel/build_wheel.pykeep their text (the latter only says "pip hints" for extras strings).Please confirm in CI: the floor audit job (a
uv lockper classifier; uv downloads CPython 3.11, 3.13 and 3.14 if the runner lacks them), the manylinux steps (the mounteduvbinary runs on glibc 2.28), the examples legs (uv syncof torch from the CPU index on all four platforms, then$EX_PYruns), theBuild arcadedb-jvm wheeland native build legs on macOS and Windows (uvx pyproject-build), and the Docker build (uvxbuild, tester stageuv run).🤖 Generated with Claude Code