Repository navigation
ci: refresh Python runners and Pyodide build tooling - #6209
Conversation
|
|
||
| android.environment.ANDROID_API_LEVEL = "24" # Needed to include libc++ in the wheel. | ||
| pyodide.test-groups = ["numpy", "scipy"] | ||
| pyodide.config-settings = { "cmake.define.PYBIND11_USE_CROSSCOMPILING" = "ON" } |
There was a problem hiding this comment.
@henryiii codex GPT-6.1-Sol ultra explained:
This fixes the Pyodide cross-build’s Python discovery failure. The original job stopped during configuration with Could NOT find Python (missing: Interpreter).
The interaction was:
- Emscripten sets Node as the cross-compilation emulator.
- Without this flag, pybind11 requests both
InterpreterandDevelopment.Module. - Under CMake’s CMP0190 policy, that combination makes CMake execute the interpreter through the emulator. Here, it tried to run native Python through Node.
The subtlety is that our automatic cross-compilation default only activates when no emulator is defined, so Pyodide needs the explicit opt-in.
PYBIND11_USE_CROSSCOMPILING=ON activates the existing logic that omits interpreter discovery. The pyodide.config-settings scope applies it specifically to Pyodide wheel builds.
I reproduced configuration failing with OFF and succeeding with ON, then verified the full Pyodide build and test run.
|
Merging without a review under the bitrot category. |
Description
Fix CI setup failures exposed by #6208: pin the Python 3.9 Linux jobs to Ubuntu 24.04 and explicitly enable Pyodide cross-compilation so CMake does not try to run the host interpreter through Node. Update cibuildwheel to 4.3.4 for the eMudhra certificate mitigations.
Validation:
prek -a --quiet; CMake 4.4.4 cross-compilation probe reproduces the old failure and passes with the setting enabled; local Pyodide 314.0.7 wheel build/tests with CMake 4.4.4 (1,242 passed, 192 skipped, 2 xfailed, 1 xpassed).Suggested changelog entry:
codex GPT-6.1-Sol ultra on behalf of Ralf