Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,46 @@ 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
- 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
Expand Down
147 changes: 147 additions & 0 deletions .github/workflows/wheels2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
---
name: Wheel Builds Dry Run
on:
pull_request:

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-15-intel, macos-14, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.12'
- uses: dtolnay/rust-toolchain@stable
- name: Install cibuildwheel
run: |
python -m pip install -U --group releaseinfra
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: dry-run-wheel-builds-${{ matrix.os }}

build_wheels_ppc64le:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04-ppc64le]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install uv
run: |
python3 -m pip install --user uv==0.11.2
- name: Install cibuildwheel dependencies
run: |
python3 -m uv python install 3.12
python3 -m uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install --group releaseinfra
- name: Build wheels
run: |
source .venv/bin/activate
python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_SKIP: pp* cp314t* *win32 *musl*
CIBW_ARCHS_LINUX: ppc64le
- uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: dry-run-wheel-builds-ppc64le

build_wheels_s390x:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04-s390x]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install uv
run: |
python3 -m pip install --user uv==0.11.2
- name: Install cibuildwheel dependencies
run: |
python3 -m uv python install 3.12
python3 -m uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install --group releaseinfra
- name: Build wheels
run: |
source .venv/bin/activate
python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_SKIP: pp* cp314t* *win32 *musl*
CIBW_ARCHS_LINUX: s390x
- uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: dry-run-wheel-builds-s390x

build_emscripten:
name: Build wheels for Pyodide (Emscripten)
runs-on: ubuntu-latest
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: dry-run-wheel-builds-emscripten

build-win32-wheels:
name: Build wheels on win32
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.12'
architecture: 'x86'
- uses: dtolnay/rust-toolchain@stable
with:
targets: i686-pc-windows-msvc
- name: Force win32 rust
run: rustup default stable-i686-pc-windows-msvc
- name: Install cibuildwheel
run: |
python -m pip install -U --group releaseinfra
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_SKIP: pp* cp314t* *amd64 *musl*
- uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: dry-run-wheel-builds-win32
2 changes: 1 addition & 1 deletion docs/source/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,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.

Expand Down
7 changes: 7 additions & 0 deletions releasenotes/notes/pyodide-pypi-wheels-06f63330094bac2b.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
features:
- |
Experimental Pyodide wheels are now published to PyPI. These wheels use the
``pyemscripten`` platform tag defined by `PEP 783 <https://peps.python.org/pep-0783/>`__,
allowing compatible Pyodide environments to install ``rustworkx`` from PyPI.
Pyodide support remains best effort.
Loading