Skip to content

Commit f105777

Browse files
authored
Merge pull request #1448 from effigies/py314
chore: Drop Python 3.9 support, advertise 3.14
2 parents ad45d62 + f94f10e commit f105777

File tree

3 files changed

+37
-35
lines changed

3 files changed

+37
-35
lines changed

.github/workflows/test.yml

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,8 @@ jobs:
112112
strategy:
113113
fail-fast: false
114114
matrix:
115-
os: ['ubuntu-latest', 'windows-latest', 'macos-14', 'macos-latest']
115+
os: ['ubuntu-latest', 'windows-latest', 'macos-latest', 'macos-15-intel']
116116
python-version:
117-
- "3.9"
118117
- "3.10"
119118
- "3.11"
120119
- "3.12"
@@ -127,24 +126,22 @@ jobs:
127126
include:
128127
# Basic dependencies only
129128
- os: ubuntu-latest
130-
python-version: "3.9"
129+
python-version: "3.10"
131130
architecture: 'x64'
132131
dependencies: 'none'
133132
# Absolute minimum dependencies
134133
- os: ubuntu-latest
135-
python-version: "3.9"
134+
python-version: "3.10"
136135
architecture: 'x64'
137136
dependencies: 'min'
138137
# Absolute minimum dependencies
139138
- os: ubuntu-latest
140-
python-version: "3.10"
139+
python-version: "3.11"
141140
architecture: 'x64'
142141
dependencies: 'min'
143142
exclude:
144143
# Use ubuntu-latest to cover the whole range of Python. For Windows
145144
# and macOS, checking oldest and newest should be sufficient.
146-
- os: windows-latest
147-
python-version: "3.10"
148145
- os: windows-latest
149146
python-version: "3.11"
150147
- os: windows-latest
@@ -153,16 +150,6 @@ jobs:
153150
python-version: "3.13"
154151
- os: windows-latest
155152
python-version: "3.13t"
156-
- os: macos-14
157-
python-version: "3.9"
158-
- os: macos-14
159-
python-version: "3.10"
160-
- os: macos-14
161-
python-version: "3.14"
162-
- os: macos-14
163-
python-version: "3.14t"
164-
- os: macos-latest
165-
python-version: "3.10"
166153
- os: macos-latest
167154
python-version: "3.11"
168155
- os: macos-latest
@@ -171,20 +158,30 @@ jobs:
171158
python-version: "3.13"
172159
- os: macos-latest
173160
python-version: "3.13t"
161+
- os: macos-15-intel
162+
python-version: "3.11"
163+
- os: macos-15-intel
164+
python-version: "3.12"
165+
- os: macos-15-intel
166+
python-version: "3.13"
167+
- os: macos-15-intel
168+
python-version: "3.13t"
174169

175170
## Unavailable architectures
176-
# x86 is available for Windows
171+
# x86 is available for Windows and Mac
177172
- os: ubuntu-latest
178173
architecture: x86
179-
- os: macos-14
180-
architecture: x86
181174
- os: macos-latest
182175
architecture: x86
176+
- os: macos-15-intel
177+
architecture: x86
183178
# arm64 is available for macos-14+
184179
- os: ubuntu-latest
185180
architecture: arm64
186181
- os: windows-latest
187182
architecture: arm64
183+
- os: macos-15-intel
184+
architecture: arm64
188185
# x64 is not available for macos-15
189186
- os: macos-latest
190187
architecture: x64
@@ -194,10 +191,10 @@ jobs:
194191
- os: macos-14
195192
dependencies: pre
196193
# Drop pre tests for SPEC-0-unsupported Python versions
197-
- python-version: '3.9'
198-
dependencies: pre
199194
- python-version: '3.10'
200195
dependencies: pre
196+
- python-version: '3.11'
197+
dependencies: pre
201198

202199
env:
203200
DEPENDS: ${{ matrix.dependencies }}
@@ -227,7 +224,9 @@ jobs:
227224
IMPL: cpython
228225
VERSION: ${{ matrix.python-version }}
229226
# uv expects linux|macos|windows, we can drop the -* but need to rename ubuntu
230-
OS: ${{ matrix.os == 'ubuntu-latest' && 'linux' || matrix.os }}
227+
OS: ${{ matrix.os == 'ubuntu-latest' && 'linux' ||
228+
startsWith(matrix.os, 'macos') && 'macos' ||
229+
matrix.os }}
231230
# uv expects x86, x86_64, aarch64 (among others)
232231
ARCH: ${{ matrix.architecture == 'x64' && 'x86_64' ||
233232
matrix.architecture == 'arm64' && 'aarch64' ||
@@ -243,8 +242,10 @@ jobs:
243242
--with=git+https://github.com/effigies/tox-gh-actions@abiflags
244243
- name: Show tox config
245244
run: tox c
246-
- name: Run tox
247-
run: tox -vv --exit-and-dump-after 1200
245+
- name: Setup test suite
246+
run: tox run -vv --notest
247+
- name: Run test suite
248+
run: tox -v --skip-pkg-install --exit-and-dump-after 1200
248249
- uses: codecov/codecov-action@v5
249250
if: ${{ always() }}
250251
with:

pyproject.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ readme = "README.rst"
1111
license = "MIT"
1212
requires-python = ">=3.9"
1313
dependencies = [
14-
"numpy >=1.23",
14+
"numpy >=1.25",
1515
"packaging >=20",
1616
"importlib_resources >=5.12; python_version < '3.12'",
1717
"typing_extensions >=4.6; python_version < '3.13'",
@@ -27,6 +27,7 @@ classifiers = [
2727
"Programming Language :: Python :: 3.11",
2828
"Programming Language :: Python :: 3.12",
2929
"Programming Language :: Python :: 3.13",
30+
"Programming Language :: Python :: 3.14",
3031
"Topic :: Scientific/Engineering",
3132
]
3233
# Version from setuptools_scm
@@ -55,9 +56,9 @@ all = ["nibabel[dicomfs,indexed_gzip,minc2,spm,zstd]"]
5556
indexed_gzip = ["indexed_gzip >=1.6"]
5657
dicom = ["pydicom >=2.3"]
5758
dicomfs = ["nibabel[dicom]", "pillow >=8.4"]
58-
minc2 = ["h5py >=3.5"]
59-
spm = ["scipy >=1.8"]
60-
viewers = ["matplotlib >=3.5"]
59+
minc2 = ["h5py >=3.8"]
60+
spm = ["scipy >=1.11"]
61+
viewers = ["matplotlib >=3.7"]
6162
zstd = ["backports.zstd >=1.1; python_version<'3.14'"]
6263
# For doc and test, make easy to use outside of tox
6364
# tox should use these with extras instead of duplicating

uv.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)