From f925e8cceff6dacd621b99fdc5202190df297f66 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Thu, 28 May 2026 17:43:01 -0400 Subject: [PATCH] fix: also include pyodide Assisted-by: CopilotCLI:gpt-5.3-codex Signed-off-by: Henry Schreiner --- bin/update_pythons.py | 2 ++ cibuildwheel/extra.py | 1 + cibuildwheel/platforms/pyodide.py | 1 + cibuildwheel/resources/build-platforms.toml | 6 +++--- docs/_internal/pyodide-maintenance.md | 4 ++-- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bin/update_pythons.py b/bin/update_pythons.py index 58baba27..a4d73d75 100755 --- a/bin/update_pythons.py +++ b/bin/update_pythons.py @@ -63,6 +63,7 @@ class ConfigUrl(Config): class ConfigPyodide(Config): default_pyodide_version: str node_version: str + sha256: str # The following set of "Versions" classes allow the initial call to the APIs to @@ -437,6 +438,7 @@ class PyodideVersions: version=str(version), default_pyodide_version=release["version"], node_version=node_version, + sha256=release["sha256"], ) diff --git a/cibuildwheel/extra.py b/cibuildwheel/extra.py index d07e7784..f0800606 100644 --- a/cibuildwheel/extra.py +++ b/cibuildwheel/extra.py @@ -90,6 +90,7 @@ def github_api_request(path: str, *, max_retries: int = 3) -> dict[str, Any]: class PyodideXBuildEnvRelease(typing.TypedDict): version: str + sha256: str python_version: str emscripten_version: str min_pyodide_build_version: NotRequired[str] diff --git a/cibuildwheel/platforms/pyodide.py b/cibuildwheel/platforms/pyodide.py index 53c66d9f..6b213104 100644 --- a/cibuildwheel/platforms/pyodide.py +++ b/cibuildwheel/platforms/pyodide.py @@ -55,6 +55,7 @@ class PythonConfiguration: identifier: str default_pyodide_version: str node_version: str + sha256: str = "" class PyodideXBuildEnvInfoVersionRange(TypedDict): diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 2e88b302..be05beb0 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -220,9 +220,9 @@ python_configurations = [ [pyodide] python_configurations = [ - { identifier = "cp312-pyodide_wasm32", version = "3.12", default_pyodide_version = "0.27.7", node_version = "v22" }, - { identifier = "cp313-pyodide_wasm32", version = "3.13", default_pyodide_version = "0.29.4", node_version = "v22" }, - { identifier = "cp314-pyodide_wasm32", version = "3.14", default_pyodide_version = "314.0.0a2", node_version = "v24" }, + { identifier = "cp312-pyodide_wasm32", version = "3.12", default_pyodide_version = "0.27.7", node_version = "v22", sha256 = "0c2e7db42efa5d1dac38b50f8b3d659a1e3885d0a233494831b8206281307d52" }, + { identifier = "cp313-pyodide_wasm32", version = "3.13", default_pyodide_version = "0.29.4", node_version = "v22", sha256 = "a29fc4a076408a18fc29eb4b280f80c6dddc95c19514c874c29e590d0931c02a" }, + { identifier = "cp314-pyodide_wasm32", version = "3.14", default_pyodide_version = "314.0.0a2", node_version = "v24", sha256 = "ac7bbcdf289ab3ae25621c436b1d013099ef6bec644ad0538dae5d65552c5c95" }, ] [android] diff --git a/docs/_internal/pyodide-maintenance.md b/docs/_internal/pyodide-maintenance.md index 3b9cb93e..62daf413 100644 --- a/docs/_internal/pyodide-maintenance.md +++ b/docs/_internal/pyodide-maintenance.md @@ -28,10 +28,10 @@ For example, consider a scenario when Pyodide ships a new `315.0.0a1` with cp315 In `cibuildwheel/resources/build-platforms.toml`, add an entry under `[pyodide]`: ```toml -{ identifier = "cp315-pyodide_wasm32", version = "3.15", default_pyodide_version = "315.0.0a1", node_version = "v24" }, +{ identifier = "cp315-pyodide_wasm32", version = "3.15", default_pyodide_version = "315.0.0a1", node_version = "v24", sha256 = "SHA256" }, ``` -`version` is the CPython version string, `default_pyodide_version` is the Pyodide release to use when the user does not pin one explicitly (use the latest available alpha/beta for a prerelease entry), and `node_version` is the minimum Node.js major required by that Pyodide release — check the [pyodide-build FAQ](https://pyodide-build.readthedocs.io/en/latest/faq.html#what-node-js-version-do-i-need) for a rudimentary idea of what the correct value is. +`version` is the CPython version string, `default_pyodide_version` is the Pyodide release to use when the user does not pin one explicitly (use the latest available alpha/beta for a prerelease entry), `node_version` is the minimum Node.js major required by that Pyodide release, and `sha256` is the checksum of the Pyodide xbuildenv tarball — check the [pyodide-build FAQ](https://pyodide-build.readthedocs.io/en/latest/faq.html#what-node-js-version-do-i-need) for a rudimentary idea of what the correct value is. ### 2. Update the prerelease guards in the selector