Repository navigation
build: switch to uv as build frontend - #2964
Merged
Merged
Conversation
Use build[uv] with UV_* constraint env vars so isolated builds pin the local pathfinder/bindings wheels. Drop pip before-build hooks; uv venvs do not include pip, and cibuildwheel 4 already installs delvewheel.
Dump sccache during Linux wheel repair instead of installing the wheel just to echo ok. UV_CONSTRAINT is unused without that test install.
Contributor
Contributor
Author
|
/ok to test b574e83 |
build --installer=uv calls "uv pip install <build-requirements>", a regular install where UV_CONSTRAINT applies, not UV_BUILD_CONSTRAINT. cuda.core dynamically requires cuda-bindings==13.* as a build dep; for py3.15 there is no cp315 wheel on PyPI, so the local-wheel constraint is mandatory. Removing UV_CONSTRAINT broke all 3.15 builds.
Contributor
Author
|
/ok to test 089b12b |
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
pre-commit.ci run |
juenglin
marked this pull request as ready for review
September 29, 2026 19:16
rwgk
approved these changes
Sep 29, 2026
This comment has been minimized.
This comment has been minimized.
1 similar comment
Contributor
|
leofang
reviewed
Sep 30, 2026
Comment on lines
+256
to
+259
| CIBW_REPAIR_WHEEL_COMMAND_LINUX: > | ||
| "/host/${{ env.SCCACHE_PATH }}" --show-adv-stats && | ||
| "/host/${{ env.SCCACHE_PATH }}" --show-stats --stats-format=json > /host/${{ github.workspace }}/sccache_bindings.json | ||
| # force the test stage to be run (so that before-test is not skipped) | ||
| # TODO: we might want to think twice on adding this, it does a lot of | ||
| # things before reaching this command. | ||
| CIBW_TEST_COMMAND: > | ||
| echo "ok!" | ||
| "/host/${{ env.SCCACHE_PATH }}" --show-stats --stats-format=json > /host/${{ github.workspace }}/sccache_bindings.json && | ||
| auditwheel repair -w {dest_dir} {wheel} |
3 tasks done
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.
Description
Switch the wheel CI
cibuildwheeljobs tobuild[uv], and stop installing each built wheel only soecho "ok!"can run.The dummy test stage existed so Linux could dump sccache stats in
before-test. Those stats now run during Linuxauditwheel repair. Windows never dumped sccache there, so the extra install was pure overhead. cibuildwheel 4 already installsdelvewheel; the extrapip install delvewheel/pip>=25.3before-buildhooks are removed (build[uv]venvs do not include pip). Local pathfinder/bindings wheels stay pinned withUV_BUILD_CONSTRAINTandUV_CONSTRAINT.That also avoids three throwaway wheel installs per matrix job (bindings + two
cuda.corebuilds), which were a flake surface unrelated to the compile.Median cibuildwheel step times (seconds) from a recent CI run and this PR's run (before -> after):
The core (current) row is the fairest comparison (tight clusters on both sides). linux-64 bindings 230 → 81 is not: the before cell was bimodal (warm 3.10/3.11 vs colder 3.12+). sccache reporting is unchanged.
Before: https://github.com/NVIDIA/cuda-python/actions/runs/36603697037
After: https://github.com/NVIDIA/cuda-python/actions/runs/36609564172
Checklist