Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Promote arm64 macOS to tier 1 #1077

Merged
merged 7 commits into from
Feb 22, 2024
Merged
Show file tree
Hide file tree
Changes from 4 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
9 changes: 8 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ jobs:
strategy:
matrix:
rust: [stable]
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
python-version: [3.8, 3.9, "3.10", "3.11", "3.12.0"]
mtreinish marked this conversation as resolved.
Show resolved Hide resolved
platform: [
{ os: "macOS-latest", python-architecture: "x64", rust-target: "x86_64-apple-darwin" },
{ os: "macOS-14", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" },
{ os: "ubuntu-latest", python-architecture: "x64", rust-target: "x86_64-unknown-linux-gnu" },
{ os: "windows-latest", python-architecture: "x64", rust-target: "x86_64-pc-windows-msvc" },
]
Expand All @@ -69,6 +70,12 @@ jobs:
python-version: 3.8
platform: { os: "ubuntu-latest", python-architecture: "x64", rust-target: "x86_64-unknown-linux-gnu" }
msrv: "MSRV"
# Exclude python 3.8 and 3.9 on arm64 until actions/setup-python#808 is resolved
exclude:
- platform: {os: "macOS-14", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
python-version: 3.8
- platform: {os: "macOS-14", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
python-version: 3.9
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
Expand Down
41 changes: 12 additions & 29 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest, macos-latest, macos-14]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -56,7 +56,7 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand All @@ -70,7 +70,7 @@ jobs:
environment: release
permissions:
id-token: write
needs: ["build_wheels", "build-mac-arm-wheels", "build-win32-wheels"]
needs: ["build_wheels", "build-win32-wheels"]
steps:
- uses: actions/download-artifact@v3
with:
Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -140,7 +140,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -177,7 +177,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -215,7 +215,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -253,7 +253,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -290,7 +290,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -327,7 +327,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down Expand Up @@ -364,7 +364,7 @@ jobs:
platforms: all
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand All @@ -378,23 +378,6 @@ jobs:
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: wheelhouse/
build-mac-arm-wheels:
name: Build wheels on macos for arm and universal2
runs-on: macos-latest
environment: release
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: joerick/cibuildwheel@v2.16.2
env:
CIBW_BEFORE_ALL: rustup target add aarch64-apple-darwin
CIBW_ARCHS_MACOS: arm64 universal2
CIBW_BEFORE_BUILD: pip install -U setuptools-rust
CIBW_ENVIRONMENT: CARGO_BUILD_TARGET="aarch64-apple-darwin" PYO3_CROSS_LIB_DIR="/Library/Frameworks/Python.framework/Versions/$(python -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))')/lib/python$(python -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))')"
- uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: shared-wheel-builds
build-win32-wheels:
name: Build wheels on win32
runs-on: windows-latest
Expand All @@ -413,7 +396,7 @@ jobs:
run: rustup default stable-i686-pc-windows-msvc
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.16.2
python -m pip install cibuildwheel==2.16.5
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down
7 changes: 6 additions & 1 deletion docs/source/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ source.
-
* - macOS (11 or newer)
- arm64
- :ref:`tier-4`
- :ref:`tier-1` [#f1]_
-
* - Windows 64bit
- x86_64
Expand All @@ -117,6 +117,11 @@ source.

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

.. [#f1] Due to CI environment limitations tests for macOS arm64 are only run with
Python >= 3.10. The published binaries are still built and tested for all supported
Python versions, but the tests run on proposed changes are only run with Python >=3.10


.. _tier-1:

Tier 1
Expand Down
12 changes: 12 additions & 0 deletions releasenotes/notes/arm64-macos-tier-1-6be760ee2ac3975d.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
other:
- |
Support for the arm64 macOS platform has been promoted from :ref:`tier-4`
to :ref:`tier-1`. Previously the platform was at :ref:`tier-4` because
there was no available CI environment for testing rustworkx on the platform.
Now that Github has made an arm64 macOS environment available to open source
projects [#]_ we're testing the platform along with the other :ref:`tier-1`
supported platforms.

.. [#] https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/

2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ passenv =
RUSTWORKX_DEBUG
changedir = {toxinidir}/tests
commands =
python -m unittest discover {posargs}
stestr run {posargs}

[testenv:lint]
basepython = python3
Expand Down
Loading