Skip to content

Commit 2f1e23d

Browse files
FrancescAltedclaude
andcommitted
Fix wheel build selectors for cibuildwheel 4.2 / CPython 3.15
CIBW_BUILD read ${{ matrix.cibw_build }}, but the build_wheels matrix defines the key as cibw_pattern, so the selector was always empty and cibuildwheel built whatever its default set contained. That went unnoticed until 4.2, which promotes CPython 3.15 out of the cpython-prerelease group: cp315 then appeared on every platform, and the macOS x86_64 test venv failed to install because pydantic-core has no cp315 Intel wheel yet and cross-compiling it from the arm64 runner needs an x86_64-apple-darwin Rust target that isn't there. Point CIBW_BUILD at cibw_pattern and opt into cp315 explicitly, so the build set is what the matrix says rather than whatever cibuildwheel defaults to. The Windows pattern used a "win64" platform tag, which is not a cibuildwheel identifier and expands to nothing -- it only ever worked because the selector was ignored -- so correct it to win_amd64. The cp315 Intel wheel itself builds clean, so keep shipping it and skip just its smoke test until pydantic-core publishes cp315 macOS wheels. Also drop the now inert pp* skip selector, which cibuildwheel 4 warns about since PyPy has to be opted into via `enable`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 2a90827 commit 2f1e23d

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

.github/workflows/cibuildwheels.yml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,14 @@ env:
1414
# Skip testing on aarch64 for now, as it is emulated on GitHub Actions and takes too long
1515
# Now that github provides native arm64 runners, we can enable tests again
1616
# CIBW_TEST_SKIP: "*linux*aarch64*"
17-
# Skip PyPy wheels for now (numexpr needs some adjustments first)
1817
# musllinux takes too long to build, and it's not worth it for now
19-
CIBW_SKIP: "pp* *musllinux* *-win32"
18+
# (PyPy needs opting in via `enable` since cibuildwheel 4, so no pp* here)
19+
CIBW_SKIP: "*musllinux* *-win32"
20+
# Intel Macs are EOL and Rust-based deps (pydantic-core) publish no cp315
21+
# x86_64 wheels yet, so `pip install` of the test venv would cross-compile
22+
# them from the arm64 runner -- which lacks the x86_64-apple-darwin Rust
23+
# target. The wheel itself builds fine, so ship it and skip only its test.
24+
CIBW_TEST_SKIP: "cp315-macosx_x86_64"
2025
# Use explicit generator/compiler env vars; CMAKE_ARGS with spaces is not split on Windows.
2126
CIBW_ENVIRONMENT_WINDOWS: >-
2227
CMAKE_GENERATOR=Ninja
@@ -31,7 +36,7 @@ jobs:
3136
permissions:
3237
contents: write
3338
env:
34-
CIBW_BUILD: ${{ matrix.cibw_build }}
39+
CIBW_BUILD: ${{ matrix.cibw_pattern }}
3540
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
3641
CIBW_ARCHS_MACOS: "x86_64 arm64"
3742
strategy:
@@ -41,27 +46,27 @@ jobs:
4146
# Linux x86_64 builds
4247
- os: ubuntu-latest
4348
arch: x86_64
44-
cibw_pattern: "cp3{11,12,13,14}-manylinux*"
49+
cibw_pattern: "cp3{11,12,13,14,15}-manylinux*"
4550
artifact_name: "linux-x86_64"
4651

4752
# Linux ARM64 builds (native runners)
4853
- os: ubuntu-24.04-arm
4954
arch: aarch64
50-
cibw_pattern: "cp3{11,12,13,14}-manylinux*"
55+
cibw_pattern: "cp3{11,12,13,14,15}-manylinux*"
5156
artifact_name: "linux-aarch64"
5257
# Don't use native runners for now (looks like wait times are too long)
5358
#runs-on: ["ubuntu-latest", "arm64"]
5459

5560
# Windows builds
5661
- os: windows-latest
5762
arch: x86_64
58-
cibw_pattern: "cp3{11,12,13,14}-win64"
63+
cibw_pattern: "cp3{11,12,13,14,15}-win_amd64"
5964
artifact_name: "windows-x86_64"
6065

6166
# macOS builds (universal2)
6267
- os: macos-latest
6368
arch: x86_64
64-
cibw_pattern: "cp3{11,12,13,14}-macosx*"
69+
cibw_pattern: "cp3{11,12,13,14,15}-macosx*"
6570
artifact_name: "macos-universal2"
6671
steps:
6772
- name: Checkout repo

0 commit comments

Comments
 (0)