From d1e49615b8bbc6822a0edb0d9bcfb69cd2a6d59f Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 09:25:00 +0200 Subject: [PATCH 1/6] 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 41fc3661..ce1f660a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -244,6 +244,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 cf05f8b949ce64d9c7add6f11ce854270e8245cf Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 09:48:43 +0200 Subject: [PATCH 2/6] 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 | 49 ++++++++++++++++++++++++++++++++++--- pyproject.toml | 6 +++++ 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ce1f660a..51f875fb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -140,9 +140,11 @@ jobs: if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} + # 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 @@ -152,8 +154,7 @@ jobs: config-file: pyproject.toml env: CIBW_SKIP: ${{ matrix.cibw_skip }} - CIBW_TEST_SKIP: '*-win_arm64' - CIBW_ARCHS_LINUX: ${{ matrix.arch }} + CIBW_TEST_SKIP: '*-win_arm64 *linux_aarch64' CIBW_ENVIRONMENT: PYTHONUTF8=1 PYTHONUTF8: '1' VSCMD_ARG_TGT_ARCH: '' @@ -220,6 +221,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 @@ -232,6 +237,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 @@ -248,6 +257,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 @@ -288,6 +301,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 @@ -368,6 +409,8 @@ jobs: if: ${{ startsWith(matrix.os, 'windows-') }} 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 430249ca..aaece2ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,6 +35,10 @@ omit =[ [tool.cibuildwheel] build = "cp38-* cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*" +# 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? skip = ["*-win32", "cp3{9,10}-win_arm64", "cp313-musllinux_i686"] build-frontend = "build" build-verbosity = 1 @@ -42,6 +46,8 @@ 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 c21526812e3c0e3efa646b5c1f2d5a2dcc803c23 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 10:01:29 +0200 Subject: [PATCH 3/6] REVERT LATER: only build and test Linux-ARM wheels --- .github/workflows/tests.yml | 292 ++++++++++++++++++------------------ pyproject.toml | 3 +- 2 files changed, 148 insertions(+), 147 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 51f875fb..21200cd0 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 cibw_skip: - '*-win32 cp3{9,10}-win_arm64 cp313-musllinux_i686' arch: @@ -217,90 +217,90 @@ 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.13' - install-extras: tests-strict,runtime-strict,optional-strict - os: ubuntu-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 + # - 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 @@ -329,78 +329,78 @@ 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 - - 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 + # - 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 aaece2ee..54d85e4c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,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 56842a2672cd93622a074aac1100290f4dca9d4e Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 10:49:45 +0200 Subject: [PATCH 4/6] build Linux-ARM64 wheels natively on separate runner --- .github/workflows/tests.yml | 15 ++++++++++----- pyproject.toml | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 21200cd0..25900d50 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 cibw_skip: @@ -140,11 +145,11 @@ jobs: if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} - # 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 @@ -154,7 +159,7 @@ jobs: config-file: pyproject.toml env: CIBW_SKIP: ${{ matrix.cibw_skip }} - CIBW_TEST_SKIP: '*-win_arm64 *linux_aarch64' + CIBW_TEST_SKIP: '*-win_arm64' CIBW_ENVIRONMENT: PYTHONUTF8=1 PYTHONUTF8: '1' VSCMD_ARG_TGT_ARCH: '' diff --git a/pyproject.toml b/pyproject.toml index 54d85e4c..4ac613b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,8 +47,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 18c3144ddc9e49b7d88f253781aea724273818b8 Mon Sep 17 00:00:00 2001 From: "Terence S.-C. Tsang" Date: Tue, 14 Oct 2025 11:08:57 +0200 Subject: [PATCH 5/6] Revert "REVERT LATER: only build and test Linux-ARM wheels" This reverts commit 36ae37c0c4ad7ad62afa7a19c7802eac0bdb88a5. --- .github/workflows/tests.yml | 294 ++++++++++++++++++------------------ 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 25900d50..f92d83a1 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 cibw_skip: - '*-win32 cp3{9,10}-win_arm64 cp313-musllinux_i686' arch: @@ -222,90 +222,90 @@ 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.13' - # install-extras: tests-strict,runtime-strict,optional-strict - # os: ubuntu-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 + - 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 @@ -334,78 +334,78 @@ 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 - # - 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 + - 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 b0e913fb390c686014fc0a3813857a7c1d76b07e Mon Sep 17 00:00:00 2001 From: Terence Tsang Date: Tue, 14 Oct 2025 15:19:20 +0200 Subject: [PATCH 6/6] 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 f92d83a1..b44389ff 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 @@ -146,7 +146,7 @@ jobs: with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} # 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' @@ -415,7 +415,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 a47b8a36..aef183ba 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -20,6 +20,7 @@ Changes * FIX: Fixed build on Windows-ARM64 and now building wheels therefor in CI #391 * FIX: Move away from older, (temporarily-)deprecated ``importlib.resources`` APIs in ``line_profiler.toml_config`` #406 * CHANGE: remove default alphabetical sorting of profiled functions +* FIX: Restored building and testing of Linux-ARM64 wheels #402 5.0.0 ~~~~~