ci: fall back to plain build frontend for odd-arch wheels#1352
Merged
Conversation
The pypa odd-arch manylinux/musllinux containers do not ship uv preinstalled, but pyproject.toml selects build-frontend = "build[uv]". cibuildwheel's pre-build "which uv" check would fail every odd-arch job. Override CIBW_BUILD_FRONTEND=build for the odd-arches matrix so the wheels build via plain pip until upstream ships uv in those images.
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?
Override
CIBW_BUILD_FRONTEND=buildfor thebuild-wheels-for-odd-archsmatrix in
.github/workflows/ci-cd.yml, so cibuildwheel uses plain pipto drive the per-ABI builds for the QEMU-emulated odd arches
(
aarch64,armv7l,ppc64le,riscv64,s390xxmanylinux/musllinux).
The project's
pyproject.tomlsetsbuild-frontend = "build[uv]",which requires a
uvbinary onPATHinside the build container.The pypa tested-arch manylinux/musllinux images ship
uvpreinstalled,but the odd-arch images (as of the
2026.03.20-1tag) do not. Withoutthis override,
cibuildwheel's pre-buildwhich uvcheck would failevery odd-arch job. Same regression as the one observed on yarl's
v1.24.0 release CI after switching to the
uvbuild frontend in #1350.Comment in
reusable-cibuildwheel.ymlupdated to call out the split.Are there changes in behavior for the user?
No user-visible API change. Keeps odd-arch wheels building once the
build[uv]frontend ships in a release.Is it a substantial burden for the maintainers to support this?
No; the override is two lines in
ci-cd.ymlplus a comment update,and can be reverted once the pypa odd-arch images ship
uv.Related issue number
Ports aio-libs/yarl#1720 to
multidict,which made the same
build[uv]switch in #1350.Checklist
CONTRIBUTORS.txtCHANGES/folderAgent run details (optional, for reviewers)
build-wheels-for-odd-archsmatrix is gated onpre-deploy,which only runs on tag pushes; this change cannot be smoke-tested
on a PR. Verification path is the next tagged release.
make doc-spellingwas run locally; the 5 misspellings it reportsall pre-date this branch on
master(verified by stashing thediff and re-running). The new
CHANGES/1352.contrib.rstfragmentintroduces no new misspellings and no
docs/spelling_wordlist.txtchanges were needed.
pre-commit runwas run on the three touched files and passed(
Validate GitHub Workflows,yamllint, changelog:user:role).Drafted with Claude Code (Opus 4.7); reviewed by @bdraco before flipping out of draft.