-
-
Notifications
You must be signed in to change notification settings - Fork 18.2k
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
BLD, CI: Use cibuildwheel
to build Emscripten/Pyodide wheels, push nightlies to Anaconda.org
#58647
BLD, CI: Use cibuildwheel
to build Emscripten/Pyodide wheels, push nightlies to Anaconda.org
#58647
Conversation
scientific-python-nightly-wheels
)
Looks like cibuildwheel might be adding pyodide here Maybe we should wait for that PR? |
Hi @lithomas1, I would advise holding off on that PR – it's stalled for many reasons, for example the fact that Pyodide does releases bi-annually with updated Python versions and Emscripten versions which will break the ABI – i.e., while the specification for breaking changes and ABI stability for the platform might exist, it has not been formalised through the means of a PEP yet; and because PyPI has not yet received support through a PEP for formalising the wasm32 tag through |
I ended up asking around on that PR and it has been merged now after more than a year of effort; I would still recommend using this existing configuration because it's much more stable and it will allow us to get these wheels uploaded to Anaconda.org much quicker, but in any case, that's not a high-priority pressing issue right now, so I would not mind if there is a delay with that and I understand that the review process can take time, running on its own accord. |
4e555c1
to
1b92b74
Compare
scientific-python-nightly-wheels
)cibuildwheel
to build Emscripten/Pyodide wheels, push nightlies to Anaconda.org
Both the wheel build and the tests pass 🎉: https://github.com/pandas-dev/pandas/actions/runs/9307939926/job/25620279093 I'll convert this to a draft for now – I will mark it as ready for review as soon as a stable |
9ce2161
to
0a293c9
Compare
0a293c9
to
df24ce9
Compare
Based on https://github.com/pandas-dev/pandas/actions/runs/9466987065/job/26080112499, I think there are some failing tests that are not running in the regular Emscripten job, and I am not sure why yet. I'll fix them as necessary in subsequent commits. |
Ready for review, @mroeschke and @lithomas1. |
I am -1 on adding this to CI or claiming any official support; this just makes a more Arrow-centric future even more difficult |
@WillAyd, thanks for your comment. Could a reasonable alternative be to upload these nightly wheels silently without an announcement or a CHANGELOG entry, at least for now? It has been a while since the Pyodide job was added in #57896 and I figure that it has been running smoothly without any outstanding errors – I don't see anything new having turned up in issues or PRs with either "Emscripten" or "Pyodide" being referenced :) Moreover, apache/arrow#37822 just got merged a few days ago, and though pyodide/pyodide#2933 isn't going to get into Pyodide 0.26.2, it will be going into Pyodide 0.27.X later in the year, marking official Arrow support in/for Pyodide. Though I understand and I am aware of the PDEP and the ramifications by now on bandwidth use and the drastic increase in download sizes, an Arrow-centric future might be reasonably possible and is definitely getting closer. I hope that you can reconsider your stance! |
@agriyakhetarpal that's great news on the pyarrow support. With that being the case I have no concerns |
Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>
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.
LGTM (failures look unrelated) cc @lithomas1 if you want a look
@lithomas1, I did what you requested and the workflow runs on my fork successfully: https://github.com/agriyakhetarpal/pandas/actions/runs/9905625217/job/27365583191. @mroeschke, this may slightly contradict your previous suggestion in #58647 (comment) about |
Co-Authored-By: Thomas Li <47963215+lithomas1@users.noreply.github.com>
Co-Authored-By: Thomas Li <47963215+lithomas1@users.noreply.github.com>
Thanks @agriyakhetarpal |
pandas
in CI #57896 as stated in ENH: out-of-tree Pyodide builds in CI forpandas
#57891doc/source/whatsnew/vX.X.X.rst
file if fixing a bug or adding a new feature.Description
This PR duplicates the Pyodide wheel builder job that was set up in #57896 into
wheels.yml
, except that in this case the wheel is not tested and the wheel builder usescibuildwheel
enabled with Pyodide to build the wheels. Subsequently, theupload_wheels.sh
script will be used with the appropriate repository secret to upload the Pyodide wheel to https://anaconda.org/scientific-python-nightly-wheels/pandas.Additional context
jupyterlite-sphinx
that acts upon doctest-based examples. The blocker in that regard is setting up a method to pre-install these wheels to provide them to thejupyterlite-pyodide-kernel
and make them available at run time, and progress is being made in this area.Adding an xref for tracking purposes, the action from
main
will be used until a stable release ofcibuildwheel
is available that can build Pyodide wheels: pypa/cibuildwheel#1456