From 0cb829b4dd55dc5a5071cab69d6faf04cd393f56 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho <8753214+IvanIsCoding@users.noreply.github.com> Date: Wed, 29 Jul 2026 14:21:46 -0400 Subject: [PATCH] Publish experimental wheels for Pyodide (#1620) * Publish experimental wheels for Pyodide * Install Emscripten Rust target for wheel builds (cherry picked from commit e98a63f5b0bce15ed5b10064af1a0c3ce94566ec) --- .github/workflows/wheels.yml | 43 +++++++++++++++++++ docs/source/install.rst | 2 +- .../pyodide-pypi-wheels-06f63330094bac2b.yaml | 7 +++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/pyodide-pypi-wheels-06f63330094bac2b.yaml diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2d09ca2806..df5c989909 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -164,6 +164,49 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: wheelhouse/ + build_emscripten: + name: Build wheels for Pyodide (Emscripten) + runs-on: ubuntu-latest + environment: release + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + name: Install Python + with: + python-version: '3.12' + - uses: dtolnay/rust-toolchain@stable + with: + targets: wasm32-unknown-emscripten + components: rust-src + - name: Install cibuildwheel + run: | + python -m pip install cibuildwheel==4.1.0 + - name: Build wheels + run: | + python -m cibuildwheel --platform pyodide --output-dir wheelhouse + env: + CIBW_BUILD: cp314-pyodide_wasm32 + CIBW_BUILD_VERBOSITY: 3 + - uses: actions/upload-artifact@v4 + with: + path: ./wheelhouse/*.whl + name: wheel-builds-emscripten + upload_emscripten: + name: Upload wheels for Pyodide (Emscripten) + runs-on: ubuntu-latest + environment: release + permissions: + id-token: write + needs: ["build_emscripten", "upload_shared_wheels"] + steps: + - uses: actions/download-artifact@v4 + with: + name: wheel-builds-emscripten + path: wheelhouse + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: wheelhouse/ build-win32-wheels: name: Build wheels on win32 runs-on: windows-latest diff --git a/docs/source/install.rst b/docs/source/install.rst index 7d9054ec4d..0250a5b7c4 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -171,7 +171,7 @@ Tier Experimental ----------------- Tier Experimental platforms are not tested upstream as part of the development process. -Pre-compiled binaries are built by the external community in separate repositories. Not all of rustworkx might compile for +Pre-compiled binaries are built and published to PyPI as part of the release process. Not all of rustworkx might compile for platforms of this tier and features can be removed. Often, platforms in this tier use unstable features from the Rust compiler and might break at any time. Support for these platforms are best effort only. diff --git a/releasenotes/notes/pyodide-pypi-wheels-06f63330094bac2b.yaml b/releasenotes/notes/pyodide-pypi-wheels-06f63330094bac2b.yaml new file mode 100644 index 0000000000..175ce13111 --- /dev/null +++ b/releasenotes/notes/pyodide-pypi-wheels-06f63330094bac2b.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Experimental Pyodide wheels are now published to PyPI. These wheels use the + ``pyemscripten`` platform tag defined by `PEP 783 `__, + allowing compatible Pyodide environments to install ``rustworkx`` from PyPI. + Pyodide support remains best effort.