-
Notifications
You must be signed in to change notification settings - Fork 262
Pyodide improvements: version setting, standalone environments #2002
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
Pyodide improvements: version setting, standalone environments #2002
Conversation
The Windows test failures are unrelated. I'll try to fix them later in the day, but happy to step back if someone else does it before me, or wishes to. |
Apologies from my end that it took so long, too! |
The |
Well, I'll have to eat my hat regarding githubusercontent URLs! Let's change the URL on that test to something more appropriate to a simple download test. Perhaps |
Co-Authored-By: Joe Rickerby <[email protected]>
Argh, perhaps it's a good cue to revisit Statically? There is also GitHack: https://raw.githack.com/. The point about security concerns and supply-chain attacks still exists, though. The uptime is quite appealing: https://status.statically.io/ Another idea: if we set the GitHub Actions' standard |
Relying on the contents of that HTML file at For I'll raise an issue on pyodide-build regarding the HTTP 429 seen there. |
I'll mark this as a draft until pyodide/pyodide-build#203 and pyodide/pyodide#5642 are resolved. |
This is passing, what's the status? :) |
It's ready to go in now! I released pyodide/pyodide-build@ |
The ubuntu-py3.14 failure with Pyodide is unrelated; it came from a GitHub rate limit affecting |
Co-authored-by: Joe Rickerby <[email protected]>
for more information, see https://pre-commit.ci
Surfacing this conversation as there are a lot of them getting hidden in the UI: #2002 (comment) |
Description
This PR updates the Pyodide build procedure (see #1456) that is enabled with
CIBW_PLATFORM: "pyodide"
(or with the--platform pyodide
CLI equivalent) post the changes in pyodide/pyodide#4882, wherepyodide/pyodide-build
was unvendored from the main Pyodide repository to accommodate faster updates and fixes.This means that the Pyodide version and
pyodide-build
are not going to be in sync going forward, and that the Pyodide xbuildenv to install must be inferred by the versions available to install bypyodide-build
through a recently addedpyodide xbuildenv search
command, which prints out this table:Tap to expand table
Alternatively, one may use
pyodide xbuildenv search --all
to return both compatible and non-compatible versions. This would, however, be better received as JSON (please see pyodide/pyodide-build#28).Additionally, in this PR, support has been added for installing arbitrary Pyodide versions, or, more specifically, arbitrary versions for "Pyodide cross-build environments (xbuildenvs)" – though, only the ones that are supported for a given
pyodide-build
version. This has been implemented through an environment variableCIBW_PYODIDE_VERSION
and an associated configuration variable in the schema (through a table implemented via pyodide/pyodide-build#26).This PR uses the https://github.com/astral-sh/python-build-standalone project to retrieve runnable Python builds, so that we don't fall into compatibility issues where pyodide-build doesn't support a particular Python version. We fetch the appropriate version of Python required by the xbuildenv and pyodide-build and recommend users to check it out using the
pyodide xbuildenv search
command as needed.The rationale behind this is that WebAssembly/Pyodide builds are already experimental, and it would be useful not to tie the available Pyodide version to the
cibuildwheel
version – this would be helpful for downstream projects (statsmodels/statsmodels#9343, scikit-image/scikit-image#7525, scikit-learn/scikit-learn#29791, and so on) to allow testing against Pyodide's alpha releases and/or for the case of greater reproducibility against Pyodide's older releases.cc: @hoodmane and @ryanking13 for visibility
Suggested CHANGELOG entry