diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1f077e692..27022f5a0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -60,6 +60,7 @@ jobs: python-version: [3.8, 3.9, "3.10", "3.11", "3.12"] 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" }, ] @@ -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 }} diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 0c805dc9b..da5afe7b8 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -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 @@ -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 @@ -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: @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/docs/source/install.rst b/docs/source/install.rst index b2f961ec2..942614b2c 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -103,7 +103,7 @@ source. - * - macOS (11 or newer) - arm64 - - :ref:`tier-4` + - :ref:`tier-1` [#f1]_ - * - Windows 64bit - x86_64 @@ -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 diff --git a/releasenotes/notes/arm64-macos-tier-1-6be760ee2ac3975d.yaml b/releasenotes/notes/arm64-macos-tier-1-6be760ee2ac3975d.yaml new file mode 100644 index 000000000..e3c5c642a --- /dev/null +++ b/releasenotes/notes/arm64-macos-tier-1-6be760ee2ac3975d.yaml @@ -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/ +