Skip to content

ci: update cibuildwheel to v4.1 and pyodide to 314#6095

Open
henryiii wants to merge 2 commits into
masterfrom
update-cibuildwheel-pyodide-314
Open

ci: update cibuildwheel to v4.1 and pyodide to 314#6095
henryiii wants to merge 2 commits into
masterfrom
update-cibuildwheel-pyodide-314

Conversation

@henryiii

@henryiii henryiii commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

🤖 AI text below 🤖

Description

Updates the cibuildwheel test workflow:

  • Bumps pypa/cibuildwheel from v3.4 to v4.1 (latest) across the Pyodide, iOS, and Android jobs.
  • Moves the Pyodide build from cp312-pyodide_wasm32 to cp314-pyodide_wasm32, building against pyodide 314.0.0 (Python 3.14).
  • Drops the iOS CIBW_SKIP: cp314-* workaround now that the pypa/cibuildwheel#2494 header build issue is resolved, so iOS cp314 wheels are now built and tested.

Enabling cp314 iOS testing surfaced a pre-existing (unrelated) failure in test_array_resize: numpy < 2.4 has a resize(refcheck=True) regression on Python 3.14 where the reference held by the bound function isn't detected, so a resize that should raise instead succeeds and the later reshape rejects the non-square size. It's fixed in numpy >= 2.4 (used everywhere else), but the iOS test environment has no numpy wheel newer than 2.3.5.post1, so the test is xfailed for that specific numpy < 2.4 + Python 3.14 combination.

Suggested changelog entry

Updated the CIBW test workflow to cibuildwheel v4.1 and bumped the Pyodide build to 314.

henryiii added 2 commits June 24, 2026 01:13
Bump pypa/cibuildwheel from v3.4 to v4.1 across the Pyodide, iOS, and
Android jobs. Move the Pyodide build to cp314-pyodide_wasm32
(pyodide 314.0.0).

Drop the iOS CIBW_SKIP: cp314-* workaround now that pypa/cibuildwheel#2494
is resolved.

Assisted-by: ClaudeCode:claude-opus-4.8
Removing the cp314 iOS skip surfaced a pre-existing numpy bug, not a
cibuildwheel regression: numpy<2.4 has a resize(refcheck=True) regression
on Python 3.14 where the reference held by the bound function isn't
detected, so a resize that should raise instead succeeds and the later
reshape rejects the non-square size. Fixed in numpy>=2.4, but the iOS test
environment has no numpy wheel newer than 2.3.5.post1, so xfail the test
for that specific combination.

Assisted-by: ClaudeCode:claude-opus-4.8
@henryiii

Copy link
Copy Markdown
Collaborator Author

@freakboy3742 Claude claims this was a Python 3.14 bug fixed in numpy 2.4, but iOS only has 2.3.5.post1. Reproduced with normal 3.14 on macOS. Any chance for new wheels? (On PyPI would be even better).

@freakboy3742

Copy link
Copy Markdown

@freakboy3742 Claude claims this was a Python 3.14 bug fixed in numpy 2.4, but iOS only has 2.3.5.post1. Reproduced with normal 3.14 on macOS. Any chance for new wheels? (On PyPI would be even better).

Sure - I can push updated wheels for NumPy to the BeeWare repo (probably 2.5.0 at this point).

I've been trying to get the wheels official wheels published; the patch is in review (numpy/numpy#28759), but is currently blocked on a change to the vendored Meson (numpy/meson#25) which is also waiting on a review.

@freakboy3742

Copy link
Copy Markdown

@henryiii I've just pushed builds of numpy 2.5.0.post1 to https://anaconda.org/beeware

I'll keep poking on the two numpy PRs in the hope of getting those into official PyPI releases.

@henryiii

Copy link
Copy Markdown
Collaborator Author

Thanks! Rebuilt one of the CI jobs and it seems to pass. Leaving the skip in the tests is more correct, IMO, since this can happen with older numpy on 3.14, regardless of the platform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants