Switch cibuildwheel to the uv build frontend#1350
Merged
Merged
Conversation
Vizonex
approved these changes
May 17, 2026
Member
Vizonex
left a comment
There was a problem hiding this comment.
I actually have been using uv while contributing to this project this whole time so I think swapping to it actually might make sense.
Vizonex
approved these changes
May 17, 2026
Member
|
Sorry if I approved twice I was trying to add myself to the list of reviewers so that you could have one on hand. |
Member
|
@bdraco I think were bound for another update with multidict soon. The last update was around 5 months ago and since then we have had a few bug fixes. |
Member
Author
|
Yeah we need a yarl and a multidict update. I'm going to do one after the end of PyCon since I'm hoping we might pickup some contributor PRs tomorrow at the sprints. |
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.
What do these changes do?
Set
build-frontend = "build[uv]"in[tool.cibuildwheel]so that
uvprovisions every virtual environment cibuildwheelcreates, both on the build side (passed to
python -m buildas--installer=uv) and when materializing the per-ABI testenvironment. The previous default
build-frontend = "build"left every test env doing a multi-second pip resolve of
requirements/pytest.txtper ABI;uvresolves and installsthe same set in roughly a second, which compounds across the
ABIs and host platforms in the wheel matrix.
Also adds
extras: uvto thepypa/cibuildwheelactioninvocation in
reusable-cibuildwheel.ymlso that Windows andmacOS runners get
uvbundled alongside cibuildwheel (Linuxalready has
uvinside the manylinux/musllinux containers).The corresponding change in
aio-libs/propcacheispropcache#234.
Are there changes in behavior for the user?
No, contributor tooling only.
Is it a substantial burden for the maintainers to support this?
No; cibuildwheel maintains the
build[uv]frontend.Related issue number
N/A
Checklist
CONTRIBUTORS.txt: N/A (no such file in this repo)CHANGES/folder (CHANGES/1350.contrib.rst)Drafted with Claude Code (Opus 4.7); reviewed by @bdraco.
Agent run details (optional, for reviewers)
Local validation:
Not verified locally: the actual cibuildwheel + uv interaction
inside the build container; that requires running cibuildwheel
which is impractical without pushing. The live CI run on this
branch is the verification.
This repo's
[tool.cibuildwheel]did not have thebefore-testPyYAML pre-cache block or the
[tool.cibuildwheel.windows]before-test = []override that propcache#234 removed, so thisPR is strictly additive relative to propcache's version of the
change.