From ed225ff30e35c33ad008fbe82979b3242822750b Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 1 Aug 2026 14:34:50 -0400 Subject: [PATCH 1/2] Drop support for win32 and i686 wheels --- .github/workflows/wheels.yml | 30 +------------------ README.md | 4 +-- docs/source/index.rst | 4 +-- docs/source/install.rst | 12 ++------ pyproject.toml | 5 ++-- .../drop-i686-win32-48bf532a7d1ec609.yaml | 4 +++ 6 files changed, 13 insertions(+), 46 deletions(-) create mode 100644 releasenotes/notes/drop-i686-win32-48bf532a7d1ec609.yaml diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index df5c989909..41887a7d3e 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -59,7 +59,7 @@ jobs: environment: release permissions: id-token: write - needs: ["build_wheels", "build-win32-wheels"] + needs: ["build_wheels"] steps: - uses: actions/download-artifact@v4 with: @@ -207,31 +207,3 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: wheelhouse/ - build-win32-wheels: - name: Build wheels on win32 - runs-on: windows-latest - environment: release - 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* c*t-win* *amd64 *musl* - - uses: actions/upload-artifact@v4 - with: - path: ./wheelhouse/*.whl - name: shared-wheel-builds-win32 diff --git a/README.md b/README.md index 9d985b23a9..06f6b257fc 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,8 @@ rustworkx.dijkstra_shortest_paths(graph, a, c, weight_fn=float) ## Installing rustworkx -rustworkx is published on [PyPI](https://pypi.org/project/rustworkx/) so on x86\_64, i686, ppc64le, s390x, and -aarch64 Linux systems, x86\_64 on Mac OSX, and 32 and 64 bit Windows +rustworkx is published on [PyPI](https://pypi.org/project/rustworkx/) so on x86\_64, ppc64le, s390x, and +aarch64 Linux systems, x86\_64 on Mac OSX, and 64-bit Windows installing is as simple as running: ```bash diff --git a/docs/source/index.rst b/docs/source/index.rst index f637cf50dd..6e41aa3b3a 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -24,8 +24,8 @@ inherent performance and safety. While this provides numerous advantages including significantly improved performance it does mean that the library needs to be compiled when being installed from source (as opposed to a pure Python library which can just be installed). rustworkx supports and publishes -pre-compiled binaries for Linux on x86, x86_64, aarch64, s390x, and ppc64le, -MacOS on x86_64, and arm64, and Windows 32bit and 64bit systems. However, if +pre-compiled binaries for Linux on x86_64, aarch64, s390x, and ppc64le, +MacOS on x86_64 and arm64, and 64-bit Windows systems. However, if you are not running on one of these platforms, you will need a rust compiler to install rustworkx. diff --git a/docs/source/install.rst b/docs/source/install.rst index 0250a5b7c4..43248e3690 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -10,8 +10,8 @@ application. Installing Rustworkx ==================== -rustworkx is published on pypi so on x86_64, i686, ppc64le, s390x, and aarch64 -Linux systems, x86_64 and arm64 on macOS, and 32 and 64 bit Windows +rustworkx is published on pypi so on x86_64, ppc64le, s390x, and aarch64 +Linux systems, x86_64 and arm64 on macOS, and 64-bit Windows installing is as simple as running:: pip install rustworkx @@ -77,10 +77,6 @@ source. - aarch64 - :ref:`tier-1` - Distributions compatible with the `manylinux 2014`_ packaging specification - * - Linux - - i686 - - :ref:`tier-4` - - Distributions compatible with the `manylinux 2014`_ packaging specification * - Linux - pp64le - :ref:`tier-4` @@ -109,10 +105,6 @@ source. - x86_64 - :ref:`tier-1` - - * - Windows 32bit - - i686 or x86_64 - - :ref:`tier-4` - - * - Pyodide - WASM (Emscripten) - :ref:`tier-experimental` diff --git a/pyproject.toml b/pyproject.toml index 1291ac24e8..312c9351d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -130,15 +130,14 @@ extend-ignore-words-re = [ [tool.cibuildwheel] manylinux-x86_64-image = "manylinux_2_28" -manylinux-i686-image = "manylinux_2_28" manylinux-aarch64-image = "manylinux_2_28" manylinux-ppc64le-image = "manylinux_2_28" manylinux-s390x-image = "manylinux_2_28" -skip = "pp* cp314t-win* c*t-*i686 cp314t-*s390x *win32 *musllinux*i686" +skip = "pp* *i686 cp314t-win* cp314t-*s390x *win32" test-requires = "networkx" test-command = "python -m unittest discover {project}/tests" before-build = 'pip install -U "maturin>=1.9.0,<2.0"' -test-skip = "*linux_s390x *ppc64le *i686 *win32" +test-skip = "*linux_s390x *ppc64le" [tool.cibuildwheel.linux] before-all = "yum install -y wget && {package}/tools/install_rust.sh" diff --git a/releasenotes/notes/drop-i686-win32-48bf532a7d1ec609.yaml b/releasenotes/notes/drop-i686-win32-48bf532a7d1ec609.yaml new file mode 100644 index 0000000000..84a3059708 --- /dev/null +++ b/releasenotes/notes/drop-i686-win32-48bf532a7d1ec609.yaml @@ -0,0 +1,4 @@ +upgrade: + - | + Precompiled wheels are no longer published for Linux i686 or 32-bit + Windows. From b4edeb156c9ac1ccfb81c37be30a12b1fa328f51 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 1 Aug 2026 14:57:43 -0400 Subject: [PATCH 2/2] Add Windows arm64 wheels --- .github/workflows/wheels.yml | 43 +++++++++++++++++++ docs/source/install.rst | 4 ++ ...windows-arm64-wheels-369fde2ca8417b50.yaml | 4 ++ 3 files changed, 51 insertions(+) create mode 100644 releasenotes/notes/windows-arm64-wheels-369fde2ca8417b50.yaml diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 41887a7d3e..d0b8ad3b79 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -70,6 +70,49 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: deploy + build_wheels_windows_arm64: + name: Build Windows ARM64 wheels + runs-on: windows-latest + environment: release + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + name: Install Python + with: + python-version: '3.12' + architecture: x64 + - uses: dtolnay/rust-toolchain@stable + with: + targets: aarch64-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_ARCHS_WINDOWS: ARM64 + CIBW_TEST_SKIP: "*" + - uses: actions/upload-artifact@v4 + with: + path: ./wheelhouse/*.whl + name: wheel-builds-windows-arm64 + upload_wheels_windows_arm64: + name: Upload Windows ARM64 wheels + runs-on: ubuntu-latest + environment: release + permissions: + id-token: write + needs: ["build_wheels_windows_arm64", "upload_shared_wheels"] + steps: + - uses: actions/download-artifact@v4 + with: + name: wheel-builds-windows-arm64 + path: wheelhouse + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: wheelhouse/ build_wheels_ppc64le: name: Build wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} diff --git a/docs/source/install.rst b/docs/source/install.rst index 43248e3690..3e01b8db3b 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -105,6 +105,10 @@ source. - x86_64 - :ref:`tier-1` - + * - Windows 64bit + - ARM64 (aarch64) + - :ref:`tier-4` + - Wheels are cross-compiled on AMD64 and are not tested * - Pyodide - WASM (Emscripten) - :ref:`tier-experimental` diff --git a/releasenotes/notes/windows-arm64-wheels-369fde2ca8417b50.yaml b/releasenotes/notes/windows-arm64-wheels-369fde2ca8417b50.yaml new file mode 100644 index 0000000000..5e951c563e --- /dev/null +++ b/releasenotes/notes/windows-arm64-wheels-369fde2ca8417b50.yaml @@ -0,0 +1,4 @@ +features: + - | + Tier 4 precompiled wheels are now published for Windows ARM64. These wheels + are cross-compiled on AMD64 and are not tested.