ci: update cibuildwheel to v4.1 and pyodide to 314#6095
Conversation
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
|
@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. |
|
@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. |
|
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. |
🤖 AI text below 🤖
Description
Updates the cibuildwheel test workflow:
pypa/cibuildwheelfromv3.4tov4.1(latest) across the Pyodide, iOS, and Android jobs.cp312-pyodide_wasm32tocp314-pyodide_wasm32, building against pyodide314.0.0(Python 3.14).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.4has aresize(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 than2.3.5.post1, so the test isxfailed for that specificnumpy < 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.