feat: pyemscripten platform tag (PEP 783), 314.0a1, pyodide-eol flag, and maintenance updates (#2812)
* Use `pyodide config get emscripten_dir` * Update constraints * Updates for `pyemscripten` platform tag * Weird constraints stuff... * Revert "Weird constraints stuff..." This reverts commit 4bd785de872269c0b27362ee800f17288b2b4789. * Add some special constraints for pyodide * Wheel pyemscripten collision * Put delocate back in constraints (not needed tho) * Drop Pyodide 0.27.7 (cp312-pyodide_wasm32) * Add Pyodide 314.0.0a1 (cp314-pyodide_wasm32) * Delete no-longer-needed Pyodide 312 constraints * Update Pyodide 313 and 314 constraints * Add back prerelease stuff and update tests * Fix `test_pyodide_on_windows` * Update and fix tests some more * Also enable pyodide-prerelease in GHA sample build * Update tests yet again (`SINGLE_PYTHON_VERSION` changes) * Add a Pyodide-specific maintenance guide * Add suggestions from Hood and Gyeongjae Co-Authored-By: Hood Chatham <roberthoodchatham@gmail.com> Co-Authored-By: Gyeongjae Choi <def6488@gmail.com> * Add "Last updated: May 2026" to Pyodide document * Add a Pyodide EOL filter * Fix typo * Update maintenance docs about EoL Pyodide * Add Pyodide 312 constraints back * Update Pyodide 313 and 314 constraints * Remove "experimental" note about Pyodide * Remove another experimental Pyodide sentence * Add docs about the `pyodide-eol` enable option --------- Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com> Co-authored-by: Gyeongjae Choi <def6488@gmail.com> Co-authored-by: Henry Schreiner <henryfs@princeton.edu>
This commit is contained in:
co-authored by
Hood Chatham
Gyeongjae Choi
Henry Schreiner
parent
542335fb4a
commit
d2c0e59833
+10
-9
@@ -26,7 +26,7 @@ EMULATED_ARCHS: Final[list[str]] = sorted(
|
||||
PYPY_ARCHS = ["x86_64", "i686", "AMD64", "aarch64", "arm64"]
|
||||
GRAALPY_ARCHS = ["x86_64", "AMD64", "aarch64", "arm64"]
|
||||
|
||||
SINGLE_PYTHON_VERSION: Final[tuple[int, int]] = (3, 12)
|
||||
SINGLE_PYTHON_VERSION: Final[tuple[int, int]] = (3, 13)
|
||||
|
||||
# temporary workaround: set by build_frontend_env fixture to skip graalpy
|
||||
# when uv is the build frontend (compatibility issue between graalpy and uv)
|
||||
@@ -263,11 +263,11 @@ def _expected_wheels(
|
||||
if musllinux_versions is None:
|
||||
musllinux_versions = ["musllinux_1_2"]
|
||||
|
||||
# To be kept in sync with Python versions for Pyodide identifiers in cibuildwheel/selector.py.
|
||||
if platform == "pyodide" and python_abi_tags is None:
|
||||
python_abi_tags = [
|
||||
"cp312-cp312",
|
||||
"cp313-cp313",
|
||||
]
|
||||
python_abi_tags = ["cp313-cp313"]
|
||||
if EnableGroup.PyodidePrerelease in enable_groups:
|
||||
python_abi_tags.append("cp314-cp314")
|
||||
elif platform == "android" and python_abi_tags is None: # noqa: SIM114
|
||||
python_abi_tags = [
|
||||
"cp313-cp313",
|
||||
@@ -412,13 +412,14 @@ def _expected_wheels(
|
||||
elif platform == "pyodide":
|
||||
platform_tags = {
|
||||
"cp312-cp312": ["pyodide_2024_0_wasm32"],
|
||||
"cp313-cp313": ["pyodide_2025_0_wasm32"],
|
||||
"cp313-cp313": ["pyemscripten_2025_0_wasm32"],
|
||||
"cp314-cp314": ["pyemscripten_2026_0_wasm32"],
|
||||
}.get(python_abi_tag, [])
|
||||
|
||||
if not platform_tags:
|
||||
# for example if the python tag is `none` or `abi3`, all
|
||||
# platform tags are built with that python tag
|
||||
platform_tags = ["pyodide_2024_0_wasm32"]
|
||||
# for example if the python tag is `none` or `abi3`, the wheel
|
||||
# is built by the stable cp313 Python version
|
||||
platform_tags = ["pyemscripten_2025_0_wasm32"]
|
||||
|
||||
else:
|
||||
msg = f"Unsupported platform {platform!r}"
|
||||
|
||||
Reference in New Issue
Block a user