Skip to content

Commit

Permalink
Apply wheel job fixes from 0.13.0 release (#896)
Browse files Browse the repository at this point in the history
* Apply wheel job fixes from 0.13.0 release

This commit applies the various fixes needed to the wheel publishing job
definitions for the 0.13.0 release. There were several jon errors during
the release which were caused by various changes made to rustworkx,
upstream dependencies, and CI environment since the 0.12.0 which caused
issues during the release process. #753 should still be finished to
simplify the job definitions, but that should be rebased to take this
more targeted fix. The intent is for this to be a minimal diff for
backporting to stable/0.13 for a future 0.13.1 release.

Of particular importance here though is the change in support tier for
s390x from 3 to 4. This was caused by repeated issues with timeouts
caused by running tests during the s390x linux wheel builds. To ensure
we can reliably build the wheels this drops the testing from the s390x
so that they can reliably complete in 12 job hours.

* Fix docs

* Update releasenotes/notes/s390x-tier-4-1701a0f044759cd1.yaml

* Update releasenotes/notes/s390x-tier-4-1701a0f044759cd1.yaml

Co-authored-by: Edwin Navarro <enavarro@comcast.net>

---------

Co-authored-by: Edwin Navarro <enavarro@comcast.net>
  • Loading branch information
mtreinish and enavarro51 committed Jun 16, 2023
1 parent 8fe10cb commit 8720cd3
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 19 deletions.
22 changes: 12 additions & 10 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2014_i686:latest
CIBW_SKIP: cp36-* pp* *win32 *musl*
CIBW_BEFORE_BUILD: pip install -U setuptools-rust
CIBW_TEST_REQUIRES: networkx scipy testtools fixtures
CIBW_TEST_REQUIRES: networkx testtools fixtures
CIBW_TEST_COMMAND: python -m unittest discover {project}/tests/rustworkx_tests
- uses: actions/upload-artifact@v3
with:
Expand All @@ -92,7 +92,7 @@ jobs:
python-version: '3.7'
- uses: dtolnay/rust-toolchain@stable
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Install cibuildwheel
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
python-version: '3.7'
- uses: dtolnay/rust-toolchain@stable
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Install cibuildwheel
Expand All @@ -150,7 +150,7 @@ jobs:
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.9
CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2014_x86_64:latest
CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2014_i686:latest
CIBW_SKIP: cp36-* cp39-* cp310-* pp* *win32 *musl*
CIBW_SKIP: cp36-* cp39-* cp310-* cp311-* pp* *win32 *musl*
CIBW_BEFORE_BUILD: pip install -U setuptools-rust
CIBW_TEST_REQUIRES: networkx testtools fixtures
CIBW_TEST_COMMAND: python -m unittest discover {project}/tests/rustworkx_tests
Expand Down Expand Up @@ -178,7 +178,7 @@ jobs:
python-version: '3.7'
- uses: dtolnay/rust-toolchain@stable
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Install cibuildwheel
Expand Down Expand Up @@ -221,7 +221,7 @@ jobs:
python-version: '3.7'
- uses: dtolnay/rust-toolchain@stable
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Install cibuildwheel
Expand All @@ -236,11 +236,12 @@ jobs:
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.9
CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2014_x86_64:latest
CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2014_i686:latest
CIBW_SKIP: cp36-* cp39-* cp310-* pp* *win32 *musl*
CIBW_SKIP: cp36-* cp39-* cp310-* cp311-* pp* *win32 *musl*
CIBW_BEFORE_BUILD: pip install -U setuptools-rust
CIBW_TEST_REQUIRES: networkx testtools fixtures
CIBW_TEST_COMMAND: python -m unittest discover {project}/tests/rustworkx_tests
CIBW_ARCHS_LINUX: s390x
CIBW_TEST_SKIP: "*-*linux_s390x"
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
Expand All @@ -264,7 +265,7 @@ jobs:
python-version: '3.7'
- uses: dtolnay/rust-toolchain@stable
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Install cibuildwheel
Expand All @@ -284,6 +285,7 @@ jobs:
CIBW_TEST_REQUIRES: networkx testtools fixtures
CIBW_TEST_COMMAND: python -m unittest discover {project}/tests/rustworkx_tests
CIBW_ARCHS_LINUX: s390x
CIBW_TEST_SKIP: "*-*linux_s390x"
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
Expand All @@ -294,7 +296,7 @@ jobs:
TWINE_USERNAME: retworkx-ci
build-mac-arm-wheels:
name: Build wheels on macos for arm and universal2
runs-on: macos-10.15
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Build wheels
Expand Down Expand Up @@ -365,7 +367,7 @@ jobs:
with:
python-version: '3.10'
- name: Install deps
run: pip install -U twine setuptools-rust
run: pip install -U twine setuptools-rust wheel build
- name: Build sdist
run: python setup.py bdist_wheel
env:
Expand Down
21 changes: 12 additions & 9 deletions docs/source/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Installing Rustworkx
====================

rustworkx is published on pypi so on x86_64, i686, ppc64le, s390x, and aarch64
Linux systems, x86_64 on Mac OSX, and 32 and 64 bit Windows installing is as
simple as running::
Linux systems, x86_64 and arm64 on macOS, and 32 and 64 bit Windows
installing is as simple as running::

pip install rustworkx

Expand Down Expand Up @@ -71,28 +71,28 @@ source.
* - Linux
- x86_64
- :ref:`tier-1`
- Distributions compatible with the [manylinux 2014](https://peps.python.org/pep-0599/) packaging specification
- Distributions compatible with the `manylinux 2014`_ packaging specification
* - Linux
- i686
- :ref:`tier-2` (Python < 3.10), :ref:`tier-3` (Python >= 3.10)
- Distributions compatible with the [manylinux 2014](https://peps.python.org/pep-0599/) packaging specification
- Distributions compatible with the `manylinux 2014`_ packaging specification
* - Linux
- aarch64
- :ref:`tier-2`
- Distributions compatible with the [manylinux 2014](https://peps.python.org/pep-0599/) packaging specification
- Distributions compatible with the `manylinux 2014`_ packaging specification
* - Linux
- pp64le
- :ref:`tier-3`
- Distributions compatible with the [manylinux 2014](https://peps.python.org/pep-0599/) packaging specification
- Distributions compatible with the `manylinux 2014`_ packaging specification
* - Linux
- s390x
- :ref:`tier-3`
- Distributions compatible with the [manylinux 2014](https://peps.python.org/pep-0599/) packaging specification
- :ref:`tier-4`
- Distributions compatible with the `manylinux 2014`_ packaging specification
* - macOS (10.9 or newer)
- x86_64
- :ref:`tier-1`
-
* - macOS (10.15 or newer)
* - macOS (11 or newer)
- arm64
- :ref:`tier-4`
-
Expand All @@ -105,6 +105,9 @@ source.
- :ref:`tier-2` (Python < 3.10), :ref:`tier-3` (Python >= 3.10)
-


.. _manylinux 2014: https://peps.python.org/pep-0599/>

.. _tier-1:

Tier 1
Expand Down
12 changes: 12 additions & 0 deletions releasenotes/notes/s390x-tier-4-1701a0f044759cd1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
upgrade:
- |
Support for the Linux s390x platform has changed from tier 3 to tier 4 (as
documented in :ref:`platform-suppport`). This is a result of no longer being
able to run tests during the pre-compiled wheel publishing jobs due to
constraints in the available CI infrastructure. There hopefully shouldn't
be any meaningful impact resulting from this change, but as there are no longer tests being
run to validate the binaries prior to publishing them there are no longer
guarantees that the wheels for s390x are fully functional (although the
likelihood they are is still high as it works on other platforms). If any
issues are encountered with s390x Linux please open an issue.

0 comments on commit 8720cd3

Please sign in to comment.