Fix Pyodide Emscripten platform tags - #3191
Merged
Merged
Conversation
2 tasks
messense
force-pushed
the
fix-pyodide-pep783-tags
branch
2 times, most recently
from
May 19, 2026 13:41
c3f9510 to
da58093
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request updates maturin’s Emscripten/Pyodide platform-tag resolution to consistently emit PEP 783 pyemscripten_*_wasm32 tags whenever a Pyodide ABI/platform version is provided (including the historical PYODIDE_ABI_VERSION path). It also adjusts the Emscripten runtime smoke test to remain compatible with older Pyodide runtimes that still validate legacy pyodide_*_wasm32 wheel filenames.
Changes:
- Update Emscripten platform-tag cascade to always produce
pyemscripten_{year}_{patch}_wasm32for both PEP 783 and historical Pyodide ABI inputs. - Adjust CI/nox/docs to reflect the new behavior and environment-variable expectations.
- Add a runtime-test compatibility copy/rename for Pyodide 0.28/0.29 wheel filename validation.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/emscripten_runner.js | Adds runtime-aware wheel path selection and legacy filename compatibility for older Pyodide runtimes. |
| src/target/platform_tag.rs | Changes tag cascade to always emit PEP 783 pyemscripten_* tags for Pyodide ABI/platform version inputs; updates/extends unit tests. |
| src/ci/github/render.rs | Updates generated GitHub Actions Emscripten setup to export PEP 783 platform version when available, else fall back to historical key. |
| noxfile.py | Aligns expected wheel tag and exported env vars with always-pyemscripten_* behavior. |
| guide/src/environment-variables.md | Updates documentation to describe historical PYODIDE_ABI_VERSION mapping to PEP 783 pyemscripten_* tags. |
| .github/workflows/test.yml | Updates CI comments to reflect the intended pyemscripten_* tags for current Pyodide versions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
messense
force-pushed
the
fix-pyodide-pep783-tags
branch
from
May 25, 2026 11:55
da58093 to
68fb316
Compare
Emit PEP 783 `pyemscripten_*` platform tags whenever maturin receives a Pyodide ABI/platform version, including the historical `PYODIDE_ABI_VERSION` path used for Python 3.13. This matches current Pyodide docs and avoids generating `pyodide_2025_0_wasm32`, which PyPI rejects.
messense
force-pushed
the
fix-pyodide-pep783-tags
branch
from
May 25, 2026 12:13
68fb316 to
013b7c6
Compare
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this pull request
Jun 23, 2026
## 1.14.1 * Bump uraimo/run-on-arch-action to v3 to fix pytest job ([#3221](PyO3/maturin#3221)) * Fix platform tag logic to generate the same as cpython on AIX ([#3220](PyO3/maturin#3220)) * Bump pyo3-introspection ([#3227](PyO3/maturin#3227)) * Upgrade cargo-zigbuild & cargo-xwin ([#3228](PyO3/maturin#3228)) * Fix issues around crates enabling abi3 and abi3t features ([#3226](PyO3/maturin#3226)) * Add PEP 740 publish attestations to PyPI releases ([#3230](PyO3/maturin#3230)) * Set PYO3_PYTHON to run scripts for stable ABI builds ([#3233](PyO3/maturin#3233)) * Fix shell quoting in CI scripts ([#3231](PyO3/maturin#3231)) ## 1.14.0 * Support parent-relative pyproject metadata in sdists ([#3182](PyO3/maturin#3182)) * Update PyPI platform tag validation ([#3187](PyO3/maturin#3187)) * Maint: update setup emsdk action in generate-ci ([#3194](PyO3/maturin#3194)) * Fix: only shim bin wheels during auditwheel repair ([#3197](PyO3/maturin#3197)) * Fix: avoid editable ELF truncation from stale hardlinks ([#3199](PyO3/maturin#3199)) * Fix Pyodide Emscripten platform tags ([#3191](PyO3/maturin#3191)) * Use pax instead of GNU headers for tar ([#3203](PyO3/maturin#3203)) * Feat: add default exclude `__pycache__` and `*.pyc` files ([#3202](PyO3/maturin#3202)) * Add support for finding free-threaded interpreters for `--find-interpreters` ([#3206](PyO3/maturin#3206)) * Stubs: also generate them for mixed PyO3 projects ([#3211](PyO3/maturin#3211)) * Don't depend on CFFI on PyPy ([#3213](PyO3/maturin#3213)) * Support pyo3 abi3t features on Python3.15 and PyO3 0.29 ([#3113](PyO3/maturin#3113))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Emit PEP 783
pyemscripten_*platform tags whenever maturin receives a Pyodide ABI/platform version, including the historicalPYODIDE_ABI_VERSIONpath used for Python 3.13. This matches current Pyodide docs and avoids generatingpyodide_2025_0_wasm32, which PyPI rejects.