From 1d1ca6d4f749eb69d5a87a51cfbeab927573d045 Mon Sep 17 00:00:00 2001 From: Alec Edgington <54802828+cqc-alec@users.noreply.github.com> Date: Mon, 15 Apr 2024 14:20:41 +0100 Subject: [PATCH] Use `macos-14` runner to build MacOS arm64 wheels (#1340) --- .github/workflows/build-with-nix.yml | 2 +- .github/workflows/build_and_test.yml | 6 +-- .github/workflows/build_libs.yml | 2 +- .github/workflows/packages.yml | 2 +- .github/workflows/release.yml | 39 ++++++++++---------- .github/workflows/test_libs.yml | 2 +- .github/workflows/test_libs_all.yml | 2 +- conan-profiles/{macos-13-xlarge => macos-14} | 2 +- conan-profiles/macos-armv8-clang14 | 8 ---- pytket/conanfile.py | 2 +- tket/conanfile.py | 2 +- 11 files changed, 31 insertions(+), 38 deletions(-) rename conan-profiles/{macos-13-xlarge => macos-14} (85%) delete mode 100644 conan-profiles/macos-armv8-clang14 diff --git a/.github/workflows/build-with-nix.yml b/.github/workflows/build-with-nix.yml index f8c977c3dd..5cecbe3c4a 100644 --- a/.github/workflows/build-with-nix.yml +++ b/.github/workflows/build-with-nix.yml @@ -11,7 +11,7 @@ jobs: build_and_test: strategy: matrix: - os: ['ubuntu-22.04', 'macos-13-xlarge'] + os: ['ubuntu-22.04', 'macos-14'] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index e49a91be5d..9df57f11f7 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -97,7 +97,7 @@ jobs: if: needs.check_changes.outputs.tket_or_workflow_changed == 'true' strategy: matrix: - os: ['ubuntu-22.04', 'macos-12', 'macos-13-xlarge'] + os: ['ubuntu-22.04', 'macos-12', 'macos-14'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -330,7 +330,7 @@ jobs: if: needs.check_changes.outputs.tket_or_workflow_changed == 'true' || needs.check_changes.outputs.pytket_or_workflow_changed == 'true' strategy: matrix: - os: ['macos-12', 'macos-13-xlarge'] + os: ['macos-12', 'macos-14'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -401,7 +401,7 @@ jobs: python -m pip install -r requirements.txt python -m pytest --ignore=simulator/ - name: Check type stubs are up-to-date and run mypy - if: matrix.os == 'macos-13-xlarge' && (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch') + if: matrix.os == 'macos-14' && (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch') run: | python -m pip install -U mypy pybind11-stubgen cd pytket diff --git a/.github/workflows/build_libs.yml b/.github/workflows/build_libs.yml index 592c3e4dc9..735058d515 100644 --- a/.github/workflows/build_libs.yml +++ b/.github/workflows/build_libs.yml @@ -46,7 +46,7 @@ jobs: if: ${{ needs.changes.outputs.libs != '[]' && needs.changes.outputs.libs != '' }} strategy: matrix: - os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-13-xlarge'] + os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-14'] lib: ${{ fromJson(needs.changes.outputs.libs) }} build_type: ['Release', 'Debug'] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 35b72ef1bb..d1b91ea09e 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -17,7 +17,7 @@ jobs: name: Build strategy: matrix: - os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-13-xlarge'] + os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-14'] runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50e4b44cb1..269c9b0d28 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,8 +62,8 @@ jobs: name: Linux_aarch64_3.${{ matrix.python3-version }}_wheel path: wheelhouse/ - build_macos_wheels: - name: Build macos wheels + build_macos_x86_wheels: + name: Build macos x86 wheels runs-on: macos-12 strategy: matrix: @@ -101,12 +101,12 @@ jobs: delocate-wheel -v -w "$GITHUB_WORKSPACE/wheelhouse/" "dist/pytket-"*".whl" - uses: actions/upload-artifact@v4 with: - name: MacOS_${{ matrix.python-version }}_wheel + name: MacOS_x86_${{ matrix.python-version }}_wheel path: wheelhouse/ - build_macos_M1_wheels: - name: Build macos (M1) wheels - runs-on: macos-13-xlarge + build_macos_arm64_wheels: + name: Build macos arm64 wheels + runs-on: macos-14 strategy: matrix: python-version: ['3.10', '3.11', '3.12'] @@ -125,7 +125,7 @@ jobs: run: | conan profile detect DEFAULT_PROFILE_PATH=`conan profile path default` - PROFILE_PATH=./conan-profiles/macos-13-xlarge + PROFILE_PATH=./conan-profiles/macos-14 diff ${DEFAULT_PROFILE_PATH} ${PROFILE_PATH} || true cp ${PROFILE_PATH} ${DEFAULT_PROFILE_PATH} conan remote add tket-libs https://quantinuumsw.jfrog.io/artifactory/api/conan/tket1-libs --index 0 @@ -139,12 +139,12 @@ jobs: # Ensure wheels are compatible with MacOS 12.0 and later: export WHEEL_PLAT_NAME=macosx_12_0_arm64 python${{ matrix.python-version }} -m pip install -U pip build - python${{ matrix.python-version }} -m pip install delocate ~= 0.10.7 + python${{ matrix.python-version }} -m pip install delocate~=0.10.7 python${{ matrix.python-version }} -m build delocate-wheel -v -w "$GITHUB_WORKSPACE/wheelhouse/" "dist/pytket-"*".whl" - uses: actions/upload-artifact@v4 with: - name: MacOS_M1_${{ matrix.python-version }}_wheel + name: MacOS_arm64_${{ matrix.python-version }}_wheel path: wheelhouse/ build_Windows_wheels: @@ -253,9 +253,9 @@ jobs: - name: Run tests run: cd tket/pytket/tests && pytest --ignore=simulator/ - test_macos_wheels: - name: Test macos wheels - needs: build_macos_wheels + test_macos_x86_wheels: + name: Test macos x86 wheels + needs: build_macos_x86_wheels strategy: matrix: os: ['macos-12', 'macos-13'] @@ -269,7 +269,7 @@ jobs: - name: Download wheels uses: actions/download-artifact@v4 with: - name: MacOS_${{ matrix.python-version }}_wheel + name: MacOS_x86_${{ matrix.python-version }}_wheel path: wheelhouse/ - uses: actions/checkout@v4 with: @@ -283,13 +283,14 @@ jobs: pip install -r requirements.txt pytest --ignore=simulator/ - test_macos_M1_wheels: - name: Test macos (M1) wheels - needs: build_macos_M1_wheels - runs-on: macos-13-xlarge + test_macos_arm64_wheels: + name: Test macos arm64 wheels + needs: build_macos_arm64_wheels strategy: matrix: + os: ['macos-13-xlarge', 'macos-14'] python-version: ['3.10', '3.11', '3.12'] + runs-on: ${{ matrix.os }} steps: - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -298,7 +299,7 @@ jobs: - name: Download wheels uses: actions/download-artifact@v4 with: - name: MacOS_M1_${{ matrix.python-version }}_wheel + name: MacOS_arm64_${{ matrix.python-version }}_wheel path: wheelhouse/ - uses: actions/checkout@v4 with: @@ -345,7 +346,7 @@ jobs: publish_to_pypi: name: Publish to pypi if: github.event_name == 'release' - needs: [test_linux_wheels, test_linux_aarch64_wheels, test_macos_wheels, test_macos_M1_wheels, test_Windows_wheels] + needs: [test_linux_wheels, test_linux_aarch64_wheels, test_macos_x86_wheels, test_macos_arm64_wheels, test_Windows_wheels] runs-on: ubuntu-22.04 steps: - name: Download all wheels diff --git a/.github/workflows/test_libs.yml b/.github/workflows/test_libs.yml index 6a1226efe3..abe72ad419 100644 --- a/.github/workflows/test_libs.yml +++ b/.github/workflows/test_libs.yml @@ -63,7 +63,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-13-xlarge'] + os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-14'] lib: ${{ fromJson(needs.set_libs_matrix.outputs.libs) }} runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/test_libs_all.yml b/.github/workflows/test_libs_all.yml index ac4aa9efff..3421d87374 100644 --- a/.github/workflows/test_libs_all.yml +++ b/.github/workflows/test_libs_all.yml @@ -10,7 +10,7 @@ jobs: name: test library strategy: matrix: - os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-13-xlarge'] + os: ['ubuntu-22.04', 'macos-12', 'windows-2022', 'macos-14'] lib: ['tklog', 'tkassert', 'tkrng', 'tktokenswap', 'tkwsm'] runs-on: ${{ matrix.os }} steps: diff --git a/conan-profiles/macos-13-xlarge b/conan-profiles/macos-14 similarity index 85% rename from conan-profiles/macos-13-xlarge rename to conan-profiles/macos-14 index 8f73dd19c5..38919cc4de 100644 --- a/conan-profiles/macos-13-xlarge +++ b/conan-profiles/macos-14 @@ -4,5 +4,5 @@ build_type=Release compiler=apple-clang compiler.cppstd=gnu17 compiler.libcxx=libc++ -compiler.version=14 +compiler.version=15 os=Macos diff --git a/conan-profiles/macos-armv8-clang14 b/conan-profiles/macos-armv8-clang14 deleted file mode 100644 index 8f73dd19c5..0000000000 --- a/conan-profiles/macos-armv8-clang14 +++ /dev/null @@ -1,8 +0,0 @@ -[settings] -arch=armv8 -build_type=Release -compiler=apple-clang -compiler.cppstd=gnu17 -compiler.libcxx=libc++ -compiler.version=14 -os=Macos diff --git a/pytket/conanfile.py b/pytket/conanfile.py index 1041ae3500..0f2b30f322 100644 --- a/pytket/conanfile.py +++ b/pytket/conanfile.py @@ -32,7 +32,7 @@ def package(self): cmake.install() def requirements(self): - self.requires("tket/1.2.116@tket/stable") + self.requires("tket/1.2.117@tket/stable") self.requires("tklog/0.3.3@tket/stable") self.requires("tkrng/0.3.3@tket/stable") self.requires("tkassert/0.3.4@tket/stable") diff --git a/tket/conanfile.py b/tket/conanfile.py index 4b1fdf1470..cb0f27dcba 100644 --- a/tket/conanfile.py +++ b/tket/conanfile.py @@ -23,7 +23,7 @@ class TketConan(ConanFile): name = "tket" - version = "1.2.116" + version = "1.2.117" package_type = "library" license = "Apache 2" homepage = "https://github.com/CQCL/tket"