Skip to content

Commit 8645d56

Browse files
committed
Enable support of Python 3.15
Add Python 3.15 to the CI matrices and package metadata: - pyproject.toml: add the 3.15 classifier and bump requires-python to <3.16 - clang smoke builds: add 3.15 and allow-prereleases in setup-python - build_pip: add 3.15 and the conda-forge/label/python_rc RC channel - conda-package(-cf): add 3.15 rows (numpy 2.5) and the python_rc channel
1 parent f83b9d4 commit 8645d56

7 files changed

Lines changed: 32 additions & 17 deletions

File tree

‎.github/workflows/build-with-clang.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
strategy:
1616
matrix:
17-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
17+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
1818
numpy_version: ["'numpy>=2'"]
1919

2020
env:
@@ -47,6 +47,8 @@ jobs:
4747
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
4848
with:
4949
python-version: ${{ matrix.python }}
50+
# allow the 3.15 release candidate until 3.15 is final
51+
allow-prereleases: true
5052
architecture: x64
5153

5254
- name: Checkout repo

‎.github/workflows/build-with-standard-clang.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
strategy:
1616
matrix:
17-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
17+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
1818
numpy_version: ["'numpy>=2'"]
1919

2020
env:
@@ -39,6 +39,8 @@ jobs:
3939
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
4040
with:
4141
python-version: ${{ matrix.python }}
42+
# allow the 3.15 release candidate until 3.15 is final
43+
allow-prereleases: true
4244
architecture: x64
4345

4446
- name: Checkout repo

‎.github/workflows/build_pip.yml‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818

1919
strategy:
2020
matrix:
21-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
21+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
2222
use_pre: ["", "--pre"]
2323

2424
steps:
@@ -30,7 +30,8 @@ jobs:
3030
- uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
3131
with:
3232
miniforge-version: latest
33-
channels: conda-forge
33+
# conda-forge/label/python_rc carries the 3.15 release candidate
34+
channels: conda-forge,conda-forge/label/python_rc
3435
activate-environment: test
3536
python-version: ${{ matrix.python }}
3637

‎.github/workflows/conda-package-cf.yml‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ jobs:
3232
numpy: "2.3"
3333
- python: "3.14"
3434
numpy: "2.3"
35+
- python: "3.15"
36+
numpy: "2.5"
3537

3638
steps:
3739
- name: Cancel Previous Runs
@@ -68,7 +70,7 @@ jobs:
6870

6971
- name: Build conda package with NumPy 2.x
7072
run: |
71-
CHANNELS=(-c conda-forge --override-channels)
73+
CHANNELS=(-c conda-forge -c conda-forge/label/python_rc --override-channels)
7274
VERSIONS=(--python "${{ matrix.python }}" --numpy "${{ matrix.numpy }}")
7375
TEST=(--no-test)
7476
@@ -90,13 +92,13 @@ jobs:
9092

9193
strategy:
9294
matrix:
93-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
95+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
9496
numpy: ['numpy">=2"']
9597
experimental: [false]
9698
runner: [ubuntu-latest]
9799
continue-on-error: ${{ matrix.experimental }}
98100
env:
99-
CHANNELS: -c conda-forge --override-channels
101+
CHANNELS: -c conda-forge -c conda-forge/label/python_rc --override-channels
100102

101103
steps:
102104
- name: Download artifact
@@ -173,6 +175,8 @@ jobs:
173175
numpy: "2.3"
174176
- python: "3.14"
175177
numpy: "2.3"
178+
- python: "3.15"
179+
numpy: "2.5"
176180

177181
steps:
178182
- name: Cancel Previous Runs
@@ -211,7 +215,7 @@ jobs:
211215
212216
- name: Build conda package with NumPy 2.x
213217
run: |
214-
conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c conda-forge --override-channels conda-recipe-cf
218+
conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c conda-forge -c conda-forge/label/python_rc --override-channels conda-recipe-cf
215219
216220
- name: Store conda paths as envs
217221
shell: bash -l {0}
@@ -233,14 +237,14 @@ jobs:
233237

234238
strategy:
235239
matrix:
236-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
240+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
237241
numpy: ['numpy">=2"']
238242
experimental: [false]
239243
runner: [windows-latest]
240244
continue-on-error: ${{ matrix.experimental }}
241245
env:
242246
workdir: '${{ github.workspace }}'
243-
CHANNELS: -c conda-forge --override-channels
247+
CHANNELS: -c conda-forge -c conda-forge/label/python_rc --override-channels
244248

245249
steps:
246250
- name: Download artifact

‎.github/workflows/conda-package.yml‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333
numpy: "2.3"
3434
- python: "3.14"
3535
numpy: "2.3"
36+
- python: "3.15"
37+
numpy: "2.5"
3638
steps:
3739
- name: Cancel Previous Runs
3840
uses: styfle/cancel-workflow-action@d07a454dad7609a92316b57b23c9ccfd4f59af66 # 0.13.1
@@ -85,7 +87,7 @@ jobs:
8587
8688
- name: Build conda package
8789
run: |
88-
CHANNELS=(-c https://software.repos.intel.com/python/conda -c conda-forge --override-channels)
90+
CHANNELS=(-c https://software.repos.intel.com/python/conda -c conda-forge -c conda-forge/label/python_rc --override-channels)
8991
VERSIONS=(--python "${{ matrix.python }}" --numpy "${{ matrix.numpy }}")
9092
TEST=(--no-test)
9193
@@ -113,13 +115,13 @@ jobs:
113115

114116
strategy:
115117
matrix:
116-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
118+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
117119
numpy: ['numpy">=2"']
118120
experimental: [false]
119121
runner: [ubuntu-latest]
120122
continue-on-error: ${{ matrix.experimental }}
121123
env:
122-
CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels
124+
CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge -c conda-forge/label/python_rc --override-channels
123125

124126
steps:
125127
- name: Download artifact
@@ -217,6 +219,8 @@ jobs:
217219
numpy: "2.3"
218220
- python: "3.14"
219221
numpy: "2.3"
222+
- python: "3.15"
223+
numpy: "2.5"
220224
steps:
221225
- name: Cancel Previous Runs
222226
uses: styfle/cancel-workflow-action@d07a454dad7609a92316b57b23c9ccfd4f59af66 # 0.13.1
@@ -265,7 +269,7 @@ jobs:
265269
266270
- name: Build conda package
267271
run: |
268-
conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels conda-recipe
272+
conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c https://software.repos.intel.com/python/conda -c conda-forge -c conda-forge/label/python_rc --override-channels conda-recipe
269273
270274
- name: Upload artifact
271275
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -288,14 +292,14 @@ jobs:
288292

289293
strategy:
290294
matrix:
291-
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
295+
python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
292296
numpy: ['numpy">=2"']
293297
experimental: [false]
294298
runner: [windows-latest]
295299
continue-on-error: ${{ matrix.experimental }}
296300
env:
297301
workdir: '${{ github.workspace }}'
298-
CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels
302+
CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge -c conda-forge/label/python_rc --override-channels
299303

300304
steps:
301305
- name: Download artifact

‎CHANGELOG.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [dev] - YYYY-MM-DD
88

99
### Added
10+
* Enabled support of Python 3.15 [gh-378](https://github.com/IntelPython/mkl_fft/pull/378)
1011

1112
### Changed
1213
* Multi-iterator constructors now return a status corresponding to allocation success or failure, and raise `MemoryError` instead of `ValueError` [gh-373](https://github.com/IntelPython/mkl_fft/pull/373)

‎pyproject.toml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ classifiers = [
4848
"Programming Language :: Python :: 3.12",
4949
"Programming Language :: Python :: 3.13",
5050
"Programming Language :: Python :: 3.14",
51+
"Programming Language :: Python :: 3.15",
5152
"Programming Language :: Python :: Implementation :: CPython",
5253
"Topic :: Software Development",
5354
"Topic :: Scientific/Engineering",
@@ -62,7 +63,7 @@ keywords = ["DFTI", "FFT", "Fourier", "MKL"]
6263
license = "BSD-3-Clause"
6364
name = "mkl_fft"
6465
readme = {file = "README.md", content-type = "text/markdown"}
65-
requires-python = ">=3.10,<3.15"
66+
requires-python = ">=3.10,<3.16"
6667

6768
[project.optional-dependencies]
6869
benchmark = ["asv>=0.6", "psutil", "scipy>=1.10"]

0 commit comments

Comments
 (0)