Use cibuildwheel to build WASM/Pyodide wheels for scikit-image, push nightlies to Anaconda.org#7440
Conversation
|
This isn't currently working because the Node.js script runner isn't able to find I think I have two potential fixes; one is to do Summoning @hoodmane – would you consider this a bug or rather an intricacy of how |
82a7f81 to
32c1980
Compare
stefanv
left a comment
There was a problem hiding this comment.
Looks good to me!
Maybe add a note to emscripten to explain the difference in build methodology?
Yes, sure; where should I add this? Do you mean adding one above the workflow? |
Sure, anywhere to document that there is a discrepancy in the way we build emscripten, and why. Probably should be mentioned in both builds! |
|
Got it! I won't say there's a difference in how we build for Emscripten. The only changes from a regular
This translates to just one extra option to pass to Or, were you referring to how this job and the |
|
Ah, OK, I just wasn't sure of the reasoning of why there was any difference at all, and wanted to make sure others who look into this in the future can follow. However you choose to document that is fine. |
|
Okay, I added a note about this in 49ac338. The git blame should also point to this PR so developers can examine why the difference exists. Thanks for the review! |
|
I addressed the merge conflicts here. Thanks! I notice that |
|
I'm having a bit of trouble running the tests on my fork to see if this is working: https://github.com/agriyakhetarpal/scikit-image/actions/runs/14802982173 I'll debug this, and we should be good to proceed once we have a passing wheel build. |
|
I created a copy of this branch, the job is passing: https://github.com/agriyakhetarpal/scikit-image/actions/runs/14803174454/job/41566395477 :) |
|
Thanks, @agriyakhetarpal! We're having a chat with the Anaconda team soon and will mention the CORS header issue so that, hopefully, we can start using the dev wheels from the nightly repo directly. |
|
Thanks for this, @stefanv! Actually, the CORS headers issue from the Anaconda.org side has been resolved earlier this year (see pyodide/pyodide#4898 (comment)), so these wheels are now usable in the interactive docs for the "dev" versions. Here's an example from |
* origin/main: Deprecate estimate method in favor of class constructor (scikit-image#7771) Temporary fix for Visual Studio & Clang incompatibility in Windows image (scikit-image#7835) Address deprecations in Pillow 11.3 (scikit-image#7828) Remove unused & obsolete `legacy_datasets`, `legacy_registry` vars (scikit-image#7677) Draft migration guide for skimage2 (scikit-image#7785) Do not report failure in wheels sub-recipe (scikit-image#7806) Use consistent wording in property description. (scikit-image#7804) Add intensity_median to regionprops (scikit-image#7745) CI: Update pypa/gh-action-pypi-publish to v1.12.4 for attestations on PyPI (scikit-image#7793) Document output dtype for transform.resize. (scikit-image#7792) Use `cibuildwheel` to build WASM/Pyodide wheels for `scikit-image`, push nightlies to Anaconda.org (scikit-image#7440) DOC: Include missing gain parameter in adjust_gamma equation (scikit-image#7763) Temporarily pin to `pyodide-build==0.30.0`, and ensure that the correct xbuildenvs are used (scikit-image#7788) Deprecate old names & attributes in RegionProperties (scikit-image#7778) Pin JasonEtco/create-an-issue action to SHA for v2.9.2 (scikit-image#7787) Make doctest-plus work with spin (scikit-image#7786) Report failures on main via issue (scikit-image#7752) Use `workers` instead of alternate parameter names (scikit-image#7302) Fix f-string in otsu plot (scikit-image#7780) Further document use of regionprops function and fix terms. (scikit-image#7518)
* origin/main: (31 commits) Update import convention in certain gallery examples (scikit-image#7764) Refactor fundamental matrix scaling (scikit-image#7767) Add unit test for cval unequal to zero Forward in _generic_edge_filter Remove superfluous mask argument from _generic_edge_filter Only report failure on main branch once Deprecate estimate method in favor of class constructor (scikit-image#7771) Temporary fix for Visual Studio & Clang incompatibility in Windows image (scikit-image#7835) Address deprecations in Pillow 11.3 (scikit-image#7828) Remove unused & obsolete `legacy_datasets`, `legacy_registry` vars (scikit-image#7677) Draft migration guide for skimage2 (scikit-image#7785) Do not report failure in wheels sub-recipe (scikit-image#7806) Use consistent wording in property description. (scikit-image#7804) Add intensity_median to regionprops (scikit-image#7745) CI: Update pypa/gh-action-pypi-publish to v1.12.4 for attestations on PyPI (scikit-image#7793) Document output dtype for transform.resize. (scikit-image#7792) Use `cibuildwheel` to build WASM/Pyodide wheels for `scikit-image`, push nightlies to Anaconda.org (scikit-image#7440) DOC: Include missing gain parameter in adjust_gamma equation (scikit-image#7763) Temporarily pin to `pyodide-build==0.30.0`, and ensure that the correct xbuildenvs are used (scikit-image#7788) Deprecate old names & attributes in RegionProperties (scikit-image#7778) ...
Description
This PR is a follow-up to #7350 based on #7350 (comment). It modifies the wheel recipe workflow in
wheels-recipe.ymlto additionally build and test Pyodide wheels throughcibuildwheelversion 2.23.0, which added support for building against Pyodide 0.27. Since the workflow is triggered using theworkflow_call:event innightly-wheel-build.yml, this enables pushing the wheels to the Anaconda.org index, which is hosted at https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/. These wheels can then be used for interactive docs for "dev"/"latest" versions; this is a prerequisite for follow-ups to #7644.Checklist
./doc/examplesfor new featuresRelease note
For maintainers and optionally contributors, please refer to the instructions on how to document this PR for the release notes.