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
@@ -97,8 +97,8 @@ def test_build_filter_pyodide_prerelease() -> None:
|
||||
skip_config="",
|
||||
enable=frozenset([EnableGroup.PyodidePrerelease]),
|
||||
)
|
||||
assert build_selector("cp312-pyodide_wasm32")
|
||||
assert build_selector("cp313-pyodide_wasm32")
|
||||
assert build_selector("cp314-pyodide_wasm32")
|
||||
|
||||
|
||||
def test_build_filter_pyodide() -> None:
|
||||
@@ -107,8 +107,20 @@ def test_build_filter_pyodide() -> None:
|
||||
skip_config="",
|
||||
enable=frozenset(),
|
||||
)
|
||||
assert build_selector("cp313-pyodide_wasm32")
|
||||
assert not build_selector("cp312-pyodide_wasm32")
|
||||
assert not build_selector("cp314-pyodide_wasm32")
|
||||
|
||||
|
||||
def test_build_filter_pyodide_eol() -> None:
|
||||
build_selector = BuildSelector(
|
||||
build_config="*",
|
||||
skip_config="",
|
||||
enable=frozenset([EnableGroup.PyodideEoL]),
|
||||
)
|
||||
assert build_selector("cp312-pyodide_wasm32")
|
||||
assert build_selector("cp313-pyodide_wasm32")
|
||||
assert not build_selector("cp314-pyodide_wasm32")
|
||||
|
||||
|
||||
def test_skip() -> None:
|
||||
|
||||
@@ -308,7 +308,7 @@ def test_pyodide_on_windows(
|
||||
monkeypatch: pytest.MonkeyPatch, capsys: pytest.CaptureFixture[str]
|
||||
) -> None:
|
||||
monkeypatch.setattr(sys, "platform", "win32")
|
||||
monkeypatch.setattr(sys, "argv", [*sys.argv, "--only", "cp312-pyodide_wasm32"])
|
||||
monkeypatch.setattr(sys, "argv", [*sys.argv, "--only", "cp314-pyodide_wasm32"])
|
||||
|
||||
with pytest.raises(SystemExit) as exit:
|
||||
main()
|
||||
|
||||
@@ -35,7 +35,7 @@ manylinux-x86_64-image = "manylinux_2_28"
|
||||
|
||||
environment-pass = ["EXAMPLE_ENV"]
|
||||
|
||||
pyodide-version = "0.28.0"
|
||||
pyodide-version = "0.29.4"
|
||||
|
||||
[tool.cibuildwheel.macos]
|
||||
test-requires = "else"
|
||||
@@ -92,7 +92,7 @@ def test_options_1(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
assert local.manylinux_images["x86_64"] == pinned_x86_64_container_image["manylinux_2_34"]
|
||||
|
||||
local = options.build_options("cp312-pyodide_wasm32")
|
||||
assert local.pyodide_version == "0.28.0"
|
||||
assert local.pyodide_version == "0.29.4"
|
||||
|
||||
|
||||
def test_passthrough(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
|
||||
Reference in New Issue
Block a user