From c79064095ef0f032a32780aeb858f4dd053cc1c4 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 08:56:43 +0200 Subject: [PATCH 1/7] pipelines: bump py3.14 from rc1 to final --- .github/workflows/tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0bd8ef3e..4482ff10 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -289,7 +289,7 @@ jobs: install-extras: tests,optional os: ubuntu-latest arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: ubuntu-latest arch: auto @@ -317,7 +317,7 @@ jobs: install-extras: tests,optional os: macOS-latest arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: macOS-latest arch: auto @@ -345,7 +345,7 @@ jobs: install-extras: tests,optional os: windows-latest arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: windows-latest arch: auto @@ -364,7 +364,7 @@ jobs: install-extras: tests,optional os: windows-11-arm arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: windows-11-arm arch: auto From 927196319200d8ac59bce9a6393196de2943656a Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 09:25:00 +0200 Subject: [PATCH 2/7] added missing ubuntu test job --- .github/workflows/tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4482ff10..05ab775f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -253,6 +253,10 @@ jobs: install-extras: tests-strict,runtime-strict,optional-strict os: windows-11-arm arch: auto + - python-version: '3.13' + install-extras: tests + os: ubuntu-latest + arch: auto - python-version: '3.13' install-extras: tests os: macOS-latest From e6bafe84d426105fc72bcf01ffeb705fac08f516 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 09:48:43 +0200 Subject: [PATCH 3/7] build and test Linux-ARM wheels - `.github/workflows/tests.yml`: - `build_binpy_wheels`: - Activate QEMU on Linux so that `aarch64` wheels can be built - Removed `${CIBW_ARCHS_LINUX}` to use `pyproject.toml` values - `test_binpy_wheels`: Added corresponding `ubuntu-24.04-arm` steps for all `ubuntu-latest` (i.e. x86) steps - `pyproject.toml`: Added `[tool.cibuildwheel.linux]` section in parallel to `macos` and `windows` --- .github/workflows/tests.yml | 56 +++++++++++++++++++++++++++++++++---- pyproject.toml | 11 +++++++- 2 files changed, 60 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 05ab775f..795e0635 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -142,9 +142,11 @@ jobs: - name: Enable MSVC 64bit uses: ilammy/msvc-dev-cmd@v1 if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} + # Note: QEMU is needed because we're building for `aarch64` on + # `x86_64` - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - if: runner.os == 'Linux' && matrix.arch != 'auto' + if: runner.os == 'Linux' with: platforms: all - name: Build binary wheels @@ -154,11 +156,11 @@ jobs: config-file: pyproject.toml env: CIBW_SKIP: ${{ matrix.cibw_skip }} - # We're building on Windows-x64, so ARM64 wheels can't be tested - # locally by `cibuildwheel` (don't worry, we're testing them - # later though in `test_binpy_wheels`) - CIBW_TEST_SKIP: '*-win_arm64' - CIBW_ARCHS_LINUX: ${{ matrix.arch }} + # We're building on Windows-/Linux-x64, so ARM64 wheels can't be + # tested locally by `cibuildwheel` + # (don't worry, we're testing them later though in + # `test_binpy_wheels`) + CIBW_TEST_SKIP: '*-win_arm64 *linux_aarch64' CIBW_ENVIRONMENT: PYTHONUTF8=1 PYTHONUTF8: '1' # `msvc-dev-cmd` sets this envvar, which interferes with @@ -228,6 +230,10 @@ jobs: install-extras: tests-strict,runtime-strict os: ubuntu-latest arch: auto + - python-version: '3.8' + install-extras: tests-strict,runtime-strict + os: ubuntu-24.04-arm + arch: auto - python-version: '3.8' install-extras: tests-strict,runtime-strict os: macOS-latest @@ -241,6 +247,10 @@ jobs: install-extras: tests-strict,runtime-strict,optional-strict os: ubuntu-latest arch: auto + - python-version: '3.13' + install-extras: tests-strict,runtime-strict,optional-strict + os: ubuntu-24.04-arm + arch: auto - python-version: '3.13' install-extras: tests-strict,runtime-strict,optional-strict os: macOS-latest @@ -257,6 +267,10 @@ jobs: install-extras: tests os: ubuntu-latest arch: auto + - python-version: '3.13' + install-extras: tests + os: ubuntu-24.04-arm + arch: auto - python-version: '3.13' install-extras: tests os: macOS-latest @@ -297,6 +311,34 @@ jobs: install-extras: tests,optional os: ubuntu-latest arch: auto + - python-version: '3.8' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto + - python-version: '3.9' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto + - python-version: '3.10' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto + - python-version: '3.11' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto + - python-version: '3.12' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto + - python-version: '3.13' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto + - python-version: '3.14' + install-extras: tests,optional + os: ubuntu-24.04-arm + arch: auto - python-version: '3.8' install-extras: tests,optional os: macOS-latest @@ -382,6 +424,8 @@ jobs: # # assumes `arch=x64`, so we have to manually set it here... with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} + # Note: Since we're testing Linux wheels on their native + # architectures, we don't need QEMU for tests - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 if: runner.os == 'Linux' && matrix.arch != 'auto' diff --git a/pyproject.toml b/pyproject.toml index 52511799..08384e5d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,13 +31,22 @@ omit =[ [tool.cibuildwheel] build = "cp38-* cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*" -skip = ["*-win32", "cp313-musllinux_i686"] +skip = [ + # XXX: since `tests.yml` already defines `matrix.cibw_skip` for + # `build_binpy_wheels`, can we deduplicate and just use that? + # Or do we need these when building wheels for release, which may + # run on separate pipelines? + '*-win32', + 'cp313-musllinux_i686', +] build-frontend = "build" build-verbosity = 1 test-command = "python {project}/run_tests.py" test-extras = ["tests-strict", "runtime-strict"] # https://cibuildwheel.readthedocs.io/en/stable/options/#archs +[tool.cibuildwheel.linux] +archs = ['x86_64', 'aarch64'] [tool.cibuildwheel.macos] archs = ["x86_64", "universal2", "arm64"] [tool.cibuildwheel.windows] From 36ae37c0c4ad7ad62afa7a19c7802eac0bdb88a5 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 10:01:29 +0200 Subject: [PATCH 4/7] REVERT LATER: only build and test Linux-ARM wheels --- .github/workflows/tests.yml | 298 ++++++++++++++++++------------------ pyproject.toml | 3 +- 2 files changed, 151 insertions(+), 150 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 795e0635..a9ef66c4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -126,8 +126,8 @@ jobs: # explicitly here. os: - ubuntu-latest - - macOS-latest - - windows-latest + # - macOS-latest + # - windows-latest # Since the oldest Python available on windows-11-arm on GitHub # is 3.11.0 (see https://raw.githubusercontent.com/actions/\ # python-versions/main/versions-manifest.json), older wheels @@ -226,91 +226,91 @@ jobs: # Xcookie generates an explicit list of environments that will be used # for testing instead of using the more concise matrix notation. include: - - python-version: '3.8' - install-extras: tests-strict,runtime-strict - os: ubuntu-latest - arch: auto + # - python-version: '3.8' + # install-extras: tests-strict,runtime-strict + # os: ubuntu-latest + # arch: auto - python-version: '3.8' install-extras: tests-strict,runtime-strict os: ubuntu-24.04-arm arch: auto - - python-version: '3.8' - install-extras: tests-strict,runtime-strict - os: macOS-latest - arch: auto - - python-version: '3.8' - install-extras: tests-strict,runtime-strict - os: windows-latest - arch: auto + # - python-version: '3.8' + # install-extras: tests-strict,runtime-strict + # os: macOS-latest + # arch: auto + # - python-version: '3.8' + # install-extras: tests-strict,runtime-strict + # os: windows-latest + # arch: auto # Note: cibuildwheel can't target 3.8 on Window ARM64 - - python-version: '3.13' - install-extras: tests-strict,runtime-strict,optional-strict - os: ubuntu-latest - arch: auto + # - python-version: '3.13' + # install-extras: tests-strict,runtime-strict,optional-strict + # os: ubuntu-latest + # arch: auto - python-version: '3.13' install-extras: tests-strict,runtime-strict,optional-strict os: ubuntu-24.04-arm arch: auto - - python-version: '3.13' - install-extras: tests-strict,runtime-strict,optional-strict - os: macOS-latest - arch: auto - - python-version: '3.13' - install-extras: tests-strict,runtime-strict,optional-strict - os: windows-latest - arch: auto - - python-version: '3.13' - install-extras: tests-strict,runtime-strict,optional-strict - os: windows-11-arm - arch: auto - - python-version: '3.13' - install-extras: tests - os: ubuntu-latest - arch: auto + # - python-version: '3.13' + # install-extras: tests-strict,runtime-strict,optional-strict + # os: macOS-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests-strict,runtime-strict,optional-strict + # os: windows-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests-strict,runtime-strict,optional-strict + # os: windows-11-arm + # arch: auto + # - python-version: '3.13' + # install-extras: tests + # os: ubuntu-latest + # arch: auto - python-version: '3.13' install-extras: tests os: ubuntu-24.04-arm arch: auto - - python-version: '3.13' - install-extras: tests - os: macOS-latest - arch: auto - - python-version: '3.13' - install-extras: tests - os: windows-latest - arch: auto - - python-version: '3.13' - install-extras: tests - os: windows-11-arm - arch: auto - - python-version: '3.8' - install-extras: tests,optional - os: ubuntu-latest - arch: auto - - python-version: '3.9' - install-extras: tests,optional - os: ubuntu-latest - arch: auto - - python-version: '3.10' - install-extras: tests,optional - os: ubuntu-latest - arch: auto - - python-version: '3.11' - install-extras: tests,optional - os: ubuntu-latest - arch: auto - - python-version: '3.12' - install-extras: tests,optional - os: ubuntu-latest - arch: auto - - python-version: '3.13' - install-extras: tests,optional - os: ubuntu-latest - arch: auto - - python-version: '3.14' - install-extras: tests,optional - os: ubuntu-latest - arch: auto + # - python-version: '3.13' + # install-extras: tests + # os: macOS-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests + # os: windows-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests + # os: windows-11-arm + # arch: auto + # - python-version: '3.8' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto + # - python-version: '3.9' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto + # - python-version: '3.10' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto + # - python-version: '3.11' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto + # - python-version: '3.12' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto + # - python-version: '3.14' + # install-extras: tests,optional + # os: ubuntu-latest + # arch: auto - python-version: '3.8' install-extras: tests,optional os: ubuntu-24.04-arm @@ -339,81 +339,81 @@ jobs: install-extras: tests,optional os: ubuntu-24.04-arm arch: auto - - python-version: '3.8' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.9' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.10' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.11' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.12' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.13' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.14' - install-extras: tests,optional - os: macOS-latest - arch: auto - - python-version: '3.8' - install-extras: tests,optional - os: windows-latest - arch: auto - - python-version: '3.9' - install-extras: tests,optional - os: windows-latest - arch: auto - - python-version: '3.10' - install-extras: tests,optional - os: windows-latest - arch: auto - - python-version: '3.11' - install-extras: tests,optional - os: windows-latest - arch: auto - - python-version: '3.12' - install-extras: tests,optional - os: windows-latest - arch: auto - - python-version: '3.13' - install-extras: tests,optional - os: windows-latest - arch: auto - - python-version: '3.14' - install-extras: tests,optional - os: windows-latest - arch: auto - # Again, cibuildwheel can't target 3.8 on Window ARM64, and - # GitHub doesn't have anything below Python 3.11 on their ARM64 - # machines, so just test the built wheels from 3.11+ - - python-version: '3.11' - install-extras: tests,optional - os: windows-11-arm - arch: auto - - python-version: '3.12' - install-extras: tests,optional - os: windows-11-arm - arch: auto - - python-version: '3.13' - install-extras: tests,optional - os: windows-11-arm - arch: auto - - python-version: '3.14' - install-extras: tests,optional - os: windows-11-arm - arch: auto + # - python-version: '3.8' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.9' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.10' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.11' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.12' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.14' + # install-extras: tests,optional + # os: macOS-latest + # arch: auto + # - python-version: '3.8' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # - python-version: '3.9' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # - python-version: '3.10' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # - python-version: '3.11' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # - python-version: '3.12' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # - python-version: '3.13' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # - python-version: '3.14' + # install-extras: tests,optional + # os: windows-latest + # arch: auto + # # Again, cibuildwheel can't target 3.8 on Window ARM64, and + # # GitHub doesn't have anything below Python 3.11 on their ARM64 + # # machines, so just test the built wheels from 3.11+ + # - python-version: '3.11' + # install-extras: tests,optional + # os: windows-11-arm + # arch: auto + # - python-version: '3.12' + # install-extras: tests,optional + # os: windows-11-arm + # arch: auto + # - python-version: '3.13' + # install-extras: tests,optional + # os: windows-11-arm + # arch: auto + # - python-version: '3.14' + # install-extras: tests,optional + # os: windows-11-arm + # arch: auto steps: - name: Checkout source uses: actions/checkout@v4.2.2 diff --git a/pyproject.toml b/pyproject.toml index 08384e5d..1f1385ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,7 +46,8 @@ test-extras = ["tests-strict", "runtime-strict"] # https://cibuildwheel.readthedocs.io/en/stable/options/#archs [tool.cibuildwheel.linux] -archs = ['x86_64', 'aarch64'] +# archs = ['x86_64', 'aarch64'] +archs = ['aarch64'] [tool.cibuildwheel.macos] archs = ["x86_64", "universal2", "arm64"] [tool.cibuildwheel.windows] From 7b8ef79477152eb3a5793b8950fb600a1f9ad833 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 10:49:45 +0200 Subject: [PATCH 5/7] build Linux-ARM64 wheels natively on separate runner --- .github/workflows/tests.yml | 19 ++++++++++++------- pyproject.toml | 4 ++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a9ef66c4..cc72592f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -125,7 +125,12 @@ jobs: # the standard [tool.cibuildwheel] section in pyproject.toml and set # explicitly here. os: - - ubuntu-latest + # - ubuntu-latest + # Overhead of building ARM images on Intel Linux nodes is + # unreasonably high (20s build time per wheel vs 3m); + # it's better to just spin another runner up to build them + # natively + - ubuntu-24.04-arm # - macOS-latest # - windows-latest # Since the oldest Python available on windows-11-arm on GitHub @@ -142,11 +147,11 @@ jobs: - name: Enable MSVC 64bit uses: ilammy/msvc-dev-cmd@v1 if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} - # Note: QEMU is needed because we're building for `aarch64` on - # `x86_64` + # Note: Since we're building Linux wheels on their native + # architectures, we don't need QEMU for tests - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - if: runner.os == 'Linux' + if: runner.os == 'Linux' && matrix.arch != 'auto' with: platforms: all - name: Build binary wheels @@ -156,11 +161,11 @@ jobs: config-file: pyproject.toml env: CIBW_SKIP: ${{ matrix.cibw_skip }} - # We're building on Windows-/Linux-x64, so ARM64 wheels can't be - # tested locally by `cibuildwheel` + # We're building on Windows-x64, so ARM64 wheels can't be tested + # locally by `cibuildwheel` # (don't worry, we're testing them later though in # `test_binpy_wheels`) - CIBW_TEST_SKIP: '*-win_arm64 *linux_aarch64' + CIBW_TEST_SKIP: '*-win_arm64' CIBW_ENVIRONMENT: PYTHONUTF8=1 PYTHONUTF8: '1' # `msvc-dev-cmd` sets this envvar, which interferes with diff --git a/pyproject.toml b/pyproject.toml index 1f1385ab..fa7c45f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,8 +46,8 @@ test-extras = ["tests-strict", "runtime-strict"] # https://cibuildwheel.readthedocs.io/en/stable/options/#archs [tool.cibuildwheel.linux] -# archs = ['x86_64', 'aarch64'] -archs = ['aarch64'] +# We'll build X86 and ARM wheels natively on separate runners +archs = ['auto'] [tool.cibuildwheel.macos] archs = ["x86_64", "universal2", "arm64"] [tool.cibuildwheel.windows] From 44a3bd4c37d4a8e5c812ca349e557f85c6c8e088 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 11:08:57 +0200 Subject: [PATCH 6/7] Revert "REVERT LATER: only build and test Linux-ARM wheels" This reverts commit 36ae37c0c4ad7ad62afa7a19c7802eac0bdb88a5. --- .github/workflows/tests.yml | 300 ++++++++++++++++++------------------ 1 file changed, 150 insertions(+), 150 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cc72592f..c654f611 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -125,14 +125,14 @@ jobs: # the standard [tool.cibuildwheel] section in pyproject.toml and set # explicitly here. os: - # - ubuntu-latest + - ubuntu-latest # Overhead of building ARM images on Intel Linux nodes is # unreasonably high (20s build time per wheel vs 3m); # it's better to just spin another runner up to build them # natively - ubuntu-24.04-arm - # - macOS-latest - # - windows-latest + - macOS-latest + - windows-latest # Since the oldest Python available on windows-11-arm on GitHub # is 3.11.0 (see https://raw.githubusercontent.com/actions/\ # python-versions/main/versions-manifest.json), older wheels @@ -231,91 +231,91 @@ jobs: # Xcookie generates an explicit list of environments that will be used # for testing instead of using the more concise matrix notation. include: - # - python-version: '3.8' - # install-extras: tests-strict,runtime-strict - # os: ubuntu-latest - # arch: auto + - python-version: '3.8' + install-extras: tests-strict,runtime-strict + os: ubuntu-latest + arch: auto - python-version: '3.8' install-extras: tests-strict,runtime-strict os: ubuntu-24.04-arm arch: auto - # - python-version: '3.8' - # install-extras: tests-strict,runtime-strict - # os: macOS-latest - # arch: auto - # - python-version: '3.8' - # install-extras: tests-strict,runtime-strict - # os: windows-latest - # arch: auto + - python-version: '3.8' + install-extras: tests-strict,runtime-strict + os: macOS-latest + arch: auto + - python-version: '3.8' + install-extras: tests-strict,runtime-strict + os: windows-latest + arch: auto # Note: cibuildwheel can't target 3.8 on Window ARM64 - # - python-version: '3.13' - # install-extras: tests-strict,runtime-strict,optional-strict - # os: ubuntu-latest - # arch: auto + - python-version: '3.13' + install-extras: tests-strict,runtime-strict,optional-strict + os: ubuntu-latest + arch: auto - python-version: '3.13' install-extras: tests-strict,runtime-strict,optional-strict os: ubuntu-24.04-arm arch: auto - # - python-version: '3.13' - # install-extras: tests-strict,runtime-strict,optional-strict - # os: macOS-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests-strict,runtime-strict,optional-strict - # os: windows-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests-strict,runtime-strict,optional-strict - # os: windows-11-arm - # arch: auto - # - python-version: '3.13' - # install-extras: tests - # os: ubuntu-latest - # arch: auto + - python-version: '3.13' + install-extras: tests-strict,runtime-strict,optional-strict + os: macOS-latest + arch: auto + - python-version: '3.13' + install-extras: tests-strict,runtime-strict,optional-strict + os: windows-latest + arch: auto + - python-version: '3.13' + install-extras: tests-strict,runtime-strict,optional-strict + os: windows-11-arm + arch: auto + - python-version: '3.13' + install-extras: tests + os: ubuntu-latest + arch: auto - python-version: '3.13' install-extras: tests os: ubuntu-24.04-arm arch: auto - # - python-version: '3.13' - # install-extras: tests - # os: macOS-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests - # os: windows-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests - # os: windows-11-arm - # arch: auto - # - python-version: '3.8' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto - # - python-version: '3.9' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto - # - python-version: '3.10' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto - # - python-version: '3.11' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto - # - python-version: '3.12' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto - # - python-version: '3.14' - # install-extras: tests,optional - # os: ubuntu-latest - # arch: auto + - python-version: '3.13' + install-extras: tests + os: macOS-latest + arch: auto + - python-version: '3.13' + install-extras: tests + os: windows-latest + arch: auto + - python-version: '3.13' + install-extras: tests + os: windows-11-arm + arch: auto + - python-version: '3.8' + install-extras: tests,optional + os: ubuntu-latest + arch: auto + - python-version: '3.9' + install-extras: tests,optional + os: ubuntu-latest + arch: auto + - python-version: '3.10' + install-extras: tests,optional + os: ubuntu-latest + arch: auto + - python-version: '3.11' + install-extras: tests,optional + os: ubuntu-latest + arch: auto + - python-version: '3.12' + install-extras: tests,optional + os: ubuntu-latest + arch: auto + - python-version: '3.13' + install-extras: tests,optional + os: ubuntu-latest + arch: auto + - python-version: '3.14' + install-extras: tests,optional + os: ubuntu-latest + arch: auto - python-version: '3.8' install-extras: tests,optional os: ubuntu-24.04-arm @@ -344,81 +344,81 @@ jobs: install-extras: tests,optional os: ubuntu-24.04-arm arch: auto - # - python-version: '3.8' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.9' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.10' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.11' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.12' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.14' - # install-extras: tests,optional - # os: macOS-latest - # arch: auto - # - python-version: '3.8' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # - python-version: '3.9' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # - python-version: '3.10' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # - python-version: '3.11' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # - python-version: '3.12' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # - python-version: '3.13' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # - python-version: '3.14' - # install-extras: tests,optional - # os: windows-latest - # arch: auto - # # Again, cibuildwheel can't target 3.8 on Window ARM64, and - # # GitHub doesn't have anything below Python 3.11 on their ARM64 - # # machines, so just test the built wheels from 3.11+ - # - python-version: '3.11' - # install-extras: tests,optional - # os: windows-11-arm - # arch: auto - # - python-version: '3.12' - # install-extras: tests,optional - # os: windows-11-arm - # arch: auto - # - python-version: '3.13' - # install-extras: tests,optional - # os: windows-11-arm - # arch: auto - # - python-version: '3.14' - # install-extras: tests,optional - # os: windows-11-arm - # arch: auto + - python-version: '3.8' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.9' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.10' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.11' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.12' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.13' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.14' + install-extras: tests,optional + os: macOS-latest + arch: auto + - python-version: '3.8' + install-extras: tests,optional + os: windows-latest + arch: auto + - python-version: '3.9' + install-extras: tests,optional + os: windows-latest + arch: auto + - python-version: '3.10' + install-extras: tests,optional + os: windows-latest + arch: auto + - python-version: '3.11' + install-extras: tests,optional + os: windows-latest + arch: auto + - python-version: '3.12' + install-extras: tests,optional + os: windows-latest + arch: auto + - python-version: '3.13' + install-extras: tests,optional + os: windows-latest + arch: auto + - python-version: '3.14' + install-extras: tests,optional + os: windows-latest + arch: auto + # Again, cibuildwheel can't target 3.8 on Window ARM64, and + # GitHub doesn't have anything below Python 3.11 on their ARM64 + # machines, so just test the built wheels from 3.11+ + - python-version: '3.11' + install-extras: tests,optional + os: windows-11-arm + arch: auto + - python-version: '3.12' + install-extras: tests,optional + os: windows-11-arm + arch: auto + - python-version: '3.13' + install-extras: tests,optional + os: windows-11-arm + arch: auto + - python-version: '3.14' + install-extras: tests,optional + os: windows-11-arm + arch: auto steps: - name: Checkout source uses: actions/checkout@v4.2.2 From a2170de8f86fedb87ff595a391271fbde4f92d35 Mon Sep 17 00:00:00 2001 From: Terence Tsang Date: Tue, 14 Oct 2025 15:19:20 +0200 Subject: [PATCH 7/7] Changelog entry and typo fix --- .github/workflows/tests.yml | 6 +++--- CHANGELOG.rst | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c654f611..c58fb4e2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -126,7 +126,7 @@ jobs: # explicitly here. os: - ubuntu-latest - # Overhead of building ARM images on Intel Linux nodes is + # Overhead of building ARM wheels on Intel Linux nodes is # unreasonably high (20s build time per wheel vs 3m); # it's better to just spin another runner up to build them # natively @@ -148,7 +148,7 @@ jobs: uses: ilammy/msvc-dev-cmd@v1 if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} # Note: Since we're building Linux wheels on their native - # architectures, we don't need QEMU for tests + # architectures, we don't need QEMU - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 if: runner.os == 'Linux' && matrix.arch != 'auto' @@ -430,7 +430,7 @@ jobs: with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} # Note: Since we're testing Linux wheels on their native - # architectures, we don't need QEMU for tests + # architectures, we don't need QEMU - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 if: runner.os == 'Linux' && matrix.arch != 'auto' diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f8be9b28..5d68c069 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -11,6 +11,7 @@ Changes * FIX: mitigate speed regressions introduced in 5.0.0 #376 * FIX: Use import system to locate module file run by ``kernprof -m`` #389 * FIX: Fixed build on Windows-ARM64 and now building wheels therefor in CI #391 +* FIX: Restored building and testing of Linux-ARM64 wheels #402 5.0.0 ~~~~~