-
Notifications
You must be signed in to change notification settings - Fork 277
Add pyodide 0.28 #2431
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add pyodide 0.28 #2431
Conversation
I understand this can wait, but I’d like to kindly request making this available in the v3.0 release if possible—mainly out of convenience to avoid migrating from my fork in the future. FWIW, my project builds successfully with this version and requires it as a minimum supported version. |
The problem is that 0.28 isn't final, and if you build binaries for 0.28, they might not work in the actual 0.28; it's quite possible there will be one last Emscripten update, or adjustments to the flags until the platform is locked in. Behind a flag would be fine, but we'd probably want a new one, so that enabling 3.14 doesn't suddenly add new Pyodide wheels you don't want to distribution. I'm hoping we get PyPI support soon, PEP 783 discussion seems to be stuck. |
This reverts commit 2e7d716.
Signed-off-by: Henry Schreiner <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds support for Pyodide 0.28 (CPython 3.13) behind a new pyodide-prerelease
flag, updating selector logic, test coverage, schema, and documentation.
- Introduce
EnableGroup.PyodidePrerelease
and filtering logic inBuildSelector
for cp313-pyodide builds. - Add cp313-pyodide_wasm32 entry in
build-platforms.toml
, update JSON schema and docs, and create unit/end-to-end tests. - Enhance
test/utils.py
andtest/test_pyodide.py
to include cp313 wheels when the prerelease flag is enabled.
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
unit_test/build_selector_test.py | Two new tests for pyodide builds with/without flag |
test/utils.py | Extend _expected_wheels to include cp313 tag when enabled |
test/test_pyodide.py | Enable prerelease in build env and check cp313 wheel |
docs/platforms.md | Document the new pyodide-prerelease enable flag |
docs/options.md | Add cp313-pyodide_wasm32 column and flag to options |
cibuildwheel/selector.py | Add enum member and filtering logic for prerelease |
cibuildwheel/resources/*.toml/.schema.json | Include new flag and platform entry for cp313-pyodide |
Comments suppressed due to low confidence (2)
test/test_pyodide.py:61
- Consider adding a complementary end-to-end test without the
pyodide-prerelease
flag (i.e.add_env = {}
) to ensure that only the cp312 wheel is produced by default.
add_env = {"CIBW_ENABLE": "pyodide-prerelease"}
docs/platforms.md:175
- Verify that the anchor
options.md#enable
correctly links to the--enable
flag documentation; if it doesn't, update it to point to the section describing theenable
option.
If there are pre-releases available for a newer Python version, the `pyodide-prerelease` [`enable`](options.md#enable) can be used to include pre-release versions.
Following on from #2002, this adds pyodide 0.28, which corresponds to cpython 3.13.
This can be held to after v3.0. If we were to ship this in a beta, would we put it behind the
python-prerelease
flag? On the one hand, it is prerelease, but on the other, these wheels are all sorta experimental from a PyPI perspective anyway, so maybe it doesn't need to hide.