Skip to content

Commit 696b834

Browse files
authored
Merge pull request #217 from larsoner/aarch64
ENH: Add aarch64 wheels
2 parents 88b8541 + f20cba6 commit 696b834

File tree

3 files changed

+29
-12
lines changed

3 files changed

+29
-12
lines changed

.github/workflows/wheels.yml

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,21 @@ jobs:
5858
fail-fast: false
5959
matrix:
6060
buildplat:
61-
- [ubuntu-20.04, musllinux_x86_64]
62-
- [macos-12, macosx_*]
63-
- [windows-2019, win_amd64]
61+
- [ubuntu-latest, musllinux_x86_64]
62+
- [ubuntu-latest, manylinux_aarch64]
63+
- [macos-13, macosx_x86_64] # native Intel hardware
64+
- [windows-latest, win_amd64]
6465
python: ["cp38", "cp39", "cp310", "cp311", "cp312"]
66+
# No NumPy wheels on 3.8 aarch64 or musl
67+
exclude:
68+
- buildplat: [ubuntu-latest, manylinux_aarch64]
69+
python: "cp38"
70+
- buildplat: [ubuntu-latest, musllinux_x86_64]
71+
python: "cp38"
6572
include:
66-
# Manylinux builds are cheap, do all in one
67-
- { buildplat: ["ubuntu-20.04", "manylinux_x86_64"], python: "*" }
73+
# Manylinux and arm64 builds (on native hardware) are cheap, do all in one
74+
- { buildplat: ["ubuntu-latest", "manylinux_x86_64"], python: "*" }
75+
- { buildplat: ["macos-14", "macosx_arm64"], python: "*" }
6876

6977
steps:
7078
- uses: actions/checkout@v3
@@ -76,6 +84,13 @@ jobs:
7684
- name: Update pip/pipx
7785
run: pip install --upgrade pip pipx
7886

87+
# For aarch64 support
88+
# https://cibuildwheel.pypa.io/en/stable/faq/#emulation
89+
- uses: docker/setup-qemu-action@v3
90+
with:
91+
platforms: all
92+
if: runner.os == 'Linux' && endsWith(matrix.buildplat[1], 'aarch64')
93+
7994
- name: Build wheel(s)
8095
run: pipx run --spec "cibuildwheel>=2.15" cibuildwheel
8196
env:

doc/examples/multi_taper_spectral_estimation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ def dB(x, out=None):
394394
395395
.. [Welch1967] P.D. Welch (1967), The use of the fast fourier transform for the
396396
estimation of power spectra: a method based on time averaging
397-
over short modified periodograms. IEEE Transcations on Audio and
397+
over short modified periodograms. IEEE Transactions on Audio and
398398
Electroacoustics.
399399
400400
.. [Slepian1978] Slepian, D. Prolate spheroidal wave functions, Fourier

pyproject.toml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ requires = [
33
"setuptools",
44
"setuptools_scm[toml]>=6.2",
55
"cython",
6-
# As of numpy 1.25, you can now build against older APIs.
7-
# https://numpy.org/doc/stable/release/1.25.0-notes.html
8-
"numpy>=1.25; python_version > '3.8'",
6+
# Wheels need to be built with NumPy 2.0 to be compatible with 2.0 and 1.x
7+
"numpy>=2.0.0rc1,<3; python_version > '3.8'",
98
# NEP29-minimum as of Aug 17, 2023 (1.25 doesn't support 3.8)
109
"numpy==1.22; python_version == '3.8'",
1110
]
@@ -56,12 +55,15 @@ include = ["nitime*"]
5655
write_to = "nitime/_version.py"
5756

5857
[tool.cibuildwheel]
59-
# Disable PyPy
60-
skip = "pp*"
58+
# Disable PyPy, and no NumPy wheels for 3.8 Linux aarch64 or musl
59+
skip = "pp* cp38-*_aarch64 cp38-musllinux_*"
6160

6261
# 64-bit builds only; 32-bit builds seem pretty niche these days, so
6362
# don't bother unless someone asks
64-
archs = ["auto64"]
63+
archs = ["native"]
64+
65+
[tool.cibuildwheel.linux]
66+
archs = ["x86_64", "aarch64"]
6567

6668
[tool.codespell]
6769
skip = '.git,*.pdf,*.svg,go.sum,*.css'

0 commit comments

Comments
 (0)