diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 41fc3661..b44389ff 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -126,6 +126,11 @@ jobs: # explicitly here. os: - ubuntu-latest + # 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 + - ubuntu-24.04-arm - macOS-latest - windows-latest cibw_skip: @@ -140,6 +145,8 @@ jobs: if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} + # Note: Since we're building Linux wheels on their native + # 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' @@ -153,7 +160,6 @@ jobs: env: CIBW_SKIP: ${{ matrix.cibw_skip }} CIBW_TEST_SKIP: '*-win_arm64' - CIBW_ARCHS_LINUX: ${{ matrix.arch }} CIBW_ENVIRONMENT: PYTHONUTF8=1 PYTHONUTF8: '1' VSCMD_ARG_TGT_ARCH: '' @@ -220,6 +226,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 +242,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 @@ -244,6 +258,14 @@ 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: ubuntu-24.04-arm + arch: auto - python-version: '3.13' install-extras: tests os: macOS-latest @@ -284,6 +306,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 @@ -364,6 +414,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 - 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 82c17fb6..f80e2815 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -12,6 +12,7 @@ Changes * 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: Move away from older, (temporarily-)deprecated ``importlib.resources`` APIs in ``line_profiler.toml_config`` #406 +* FIX: Restored building and testing of Linux-ARM64 wheels #402 5.0.0 ~~~~~ diff --git a/pyproject.toml b/pyproject.toml index 74ffac68..a77c601e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,9 @@ test-command = "python {project}/run_tests.py" test-extras = ["tests-strict", "runtime-strict"] # https://cibuildwheel.readthedocs.io/en/stable/options/#archs +[tool.cibuildwheel.linux] +# We'll build X86 and ARM wheels natively on separate runners +archs = ['auto'] [tool.cibuildwheel.macos] archs = ["x86_64", "universal2", "arm64"] [tool.cibuildwheel.windows]