Skip to content

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

Merged
henryiii merged 3 commits into
masterfrom
update-cibuildwheel-pyodide-314
Jul 9, 2026
Merged

ci: update cibuildwheel to v4.1 and pyodide to 314#6095
henryiii merged 3 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.

@virtuald virtuald left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this builds in CI, I don't see why it shouldn't be merged.

Comment thread tests/test_numpy_array.py Outdated
iOS numpy wheels updated to 2.5.0, so the xfail is a general numpy<2.4 +
Python 3.14 guard rather than iOS-specific. Reference numpy/numpy#30265.

Assisted-by: ClaudeCode:claude-opus-4.8
@henryiii henryiii merged commit 28b98f2 into master Jul 9, 2026
86 checks passed
@henryiii henryiii deleted the update-cibuildwheel-pyodide-314 branch July 9, 2026 03:31
@github-actions github-actions Bot added the needs changelog Possibly needs a changelog entry label Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs changelog Possibly needs a changelog entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants