Skip to content

Commit 78840cf

Browse files
Merge master into short_name_in_docs
2 parents 79288e1 + 51bbfe5 commit 78840cf

34 files changed

+738
-165
lines changed

.github/workflows/check-onemath.yaml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
cat ${{ env.environment-file }}
5858
5959
- name: Upload artifact
60-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
60+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
6161
with:
6262
name: ${{ env.environment-file-name }}
6363
path: ${{ env.environment-file }}
@@ -70,7 +70,7 @@ jobs:
7070
strategy:
7171
fail-fast: false
7272
matrix:
73-
python: ['3.13']
73+
python: ['3.13'] # no dpctl package on PyPI with enabled python 3.14 support
7474
os: [ubuntu-22.04] # windows-2022 - no DFT support for Windows in oneMKL
7575

7676
runs-on: ${{ matrix.os }}
@@ -87,7 +87,7 @@ jobs:
8787
fetch-depth: 0
8888

8989
- name: Download artifact
90-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
90+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
9191
with:
9292
name: ${{ env.environment-file-name }}
9393
path: ${{ env.environment-file-loc }}
@@ -100,6 +100,7 @@ jobs:
100100
miniforge-version: latest
101101
use-mamba: 'true'
102102
conda-remove-defaults: 'true'
103+
python-version: ${{ matrix.python }}
103104
environment-file: ${{ env.environment-file }}
104105
activate-environment: ${{ env.test-env-name }}
105106

@@ -110,6 +111,7 @@ jobs:
110111
miniforge-version: latest
111112
use-mamba: 'true'
112113
conda-remove-defaults: 'true'
114+
python-version: ${{ matrix.python }}
113115
environment-file: ${{ env.environment-file }}
114116
activate-environment: ${{ env.test-env-name }}
115117

@@ -159,7 +161,7 @@ jobs:
159161
strategy:
160162
fail-fast: false
161163
matrix:
162-
python: ['3.13']
164+
python: ['3.13'] # no dpctl package on PyPI with enabled python 3.14 support
163165
os: [ubuntu-22.04] # windows-2022 - no DFT support for Windows in oneMKL
164166

165167
runs-on: ${{ matrix.os }}
@@ -179,7 +181,7 @@ jobs:
179181
fetch-depth: 0
180182

181183
- name: Download artifact
182-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
184+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
183185
with:
184186
name: ${{ env.environment-file-name }}
185187
path: ${{ env.environment-file-loc }}
@@ -204,6 +206,7 @@ jobs:
204206
miniforge-version: latest
205207
use-mamba: 'true'
206208
conda-remove-defaults: 'true'
209+
python-version: ${{ matrix.python }}
207210
environment-file: ${{ env.environment-file }}
208211
activate-environment: ${{ env.test-env-name }}
209212

@@ -214,6 +217,7 @@ jobs:
214217
miniforge-version: latest
215218
use-mamba: 'true'
216219
conda-remove-defaults: 'true'
220+
python-version: ${{ matrix.python }}
217221
environment-file: ${{ env.environment-file }}
218222
activate-environment: ${{ env.test-env-name }}
219223

.github/workflows/conda-package.yml

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ env:
1616
ver-script-part1: "import json; f = open('version.json', 'r'); j = json.load(f); f.close(); "
1717
ver-script-part2: "d = j['dpnp'][0]; print('='.join((d[s] for s in ('version', 'build'))))"
1818
fetch-depth: 1
19-
python-ver-test-all-dtypes: '3.13'
19+
python-ver-test-all-dtypes: '3.14'
2020
test-env-name: 'test'
2121
rerun-tests-on-failure: 'true'
2222
rerun-tests-max-attempts: 2
@@ -29,7 +29,7 @@ jobs:
2929
strategy:
3030
fail-fast: false
3131
matrix:
32-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
32+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
3333
os: [ubuntu-22.04, windows-2022]
3434

3535
permissions:
@@ -93,22 +93,22 @@ jobs:
9393
continue-on-error: true
9494
run: conda build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe
9595
env:
96-
MAX_BUILD_CMPL_MKL_VERSION: '2025.3a0'
96+
MAX_BUILD_CMPL_MKL_VERSION: '2026.0a0'
9797

9898
- name: ReBuild conda package
9999
if: steps.build_conda_pkg.outcome == 'failure'
100100
run: conda build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe
101101
env:
102-
MAX_BUILD_CMPL_MKL_VERSION: '2025.3a0'
102+
MAX_BUILD_CMPL_MKL_VERSION: '2026.0a0'
103103

104104
- name: Upload artifact
105-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
105+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
106106
with:
107107
name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }}
108108
path: ${{ env.CONDA_BLD }}${{ env.package-name }}-*.conda
109109

110110
- name: Upload wheels artifact
111-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
111+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
112112
with:
113113
name: ${{ env.package-name }} ${{ runner.os }} Wheels Python ${{ matrix.python }}
114114
path: ${{ env.WHEELS_OUTPUT_FOLDER }}${{ env.package-name }}-*.whl
@@ -128,7 +128,7 @@ jobs:
128128
strategy:
129129
fail-fast: false
130130
matrix:
131-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
131+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
132132
os: [ubuntu-latest]
133133

134134
env:
@@ -139,14 +139,19 @@ jobs:
139139
ver-json-path: '${{ github.workspace }}/version.json'
140140

141141
steps:
142+
- name: Set Swap Space
143+
uses: pierotofy/set-swap-space@49819abfb41bd9b44fb781159c033dba90353a7c # v1.0
144+
with:
145+
swap-size-gb: 8
146+
142147
- name: Checkout DPNP repo
143148
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
144149
with:
145150
fetch-depth: ${{ env.fetch-depth }}
146151
path: ${{ env.dpnp-repo-path }}
147152

148153
- name: Download artifact
149-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
154+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
150155
with:
151156
name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }}
152157
path: ${{ env.pkg-path-in-channel }}
@@ -256,7 +261,7 @@ jobs:
256261
strategy:
257262
fail-fast: false
258263
matrix:
259-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
264+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
260265
os: [windows-2022]
261266

262267
env:
@@ -274,7 +279,7 @@ jobs:
274279
path: ${{ env.dpnp-repo-path }}
275280

276281
- name: Download artifact
277-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
282+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
278283
with:
279284
name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }}
280285
path: ${{ env.pkg-path-in-channel }}
@@ -405,7 +410,7 @@ jobs:
405410
strategy:
406411
fail-fast: false
407412
matrix:
408-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
413+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
409414
os: [ubuntu-22.04, windows-2022]
410415

411416
runs-on: ${{ matrix.os }}
@@ -430,12 +435,12 @@ jobs:
430435
fetch-depth: ${{ env.fetch-depth }}
431436

432437
- name: Download artifact
433-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
438+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
434439
with:
435440
name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }}
436441

437442
- name: Download wheels artifact
438-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
443+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
439444
with:
440445
name: ${{ env.package-name }} ${{ runner.os }} Wheels Python ${{ matrix.python }}
441446

@@ -519,7 +524,7 @@ jobs:
519524
path: ${{ env.dpnp-repo-path }}
520525

521526
- name: Download artifact
522-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
527+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
523528
with:
524529
name: ${{ env.package-name }} ${{ runner.os }} Python ${{ env.python-ver }}
525530
path: ${{ env.pkg-path-in-channel }}

.github/workflows/cron-run-tests.yaml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ env:
1313
package-name: dpnp
1414
channels-list: '-c dppy/label/dev -c https://software.repos.intel.com/python/conda/ -c conda-forge --override-channels'
1515
test-env-name: test
16+
test-packages: 'pytest scipy'
1617
rerun-tests-max-attempts: 2
1718
rerun-tests-timeout: 20
1819

@@ -37,20 +38,8 @@ jobs:
3738
strategy:
3839
fail-fast: false
3940
matrix:
40-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
41+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
4142
runner: [ubuntu-22.04, ubuntu-24.04, windows-2022]
42-
include:
43-
- python: 3.9
44-
# do not install scipy due to import issue
45-
test-packages: "pytest"
46-
- python: 3.10
47-
test-packages: "pytest scipy"
48-
- python: 3.11
49-
test-packages: "pytest scipy"
50-
- python: 3.12
51-
test-packages: "pytest scipy"
52-
- python: 3.13
53-
test-packages: "pytest scipy"
5443

5544
steps:
5645
- name: Cancel Previous Runs
@@ -96,12 +85,12 @@ jobs:
9685
id: install_dpnp
9786
continue-on-error: true
9887
run: |
99-
mamba install ${{ env.package-name }}=${{ steps.find_latest_tag.outputs.tag }} ${{ matrix.test-packages }} ${{ env.channels-list }}
88+
mamba install ${{ env.package-name }}=${{ steps.find_latest_tag.outputs.tag }} ${{ env.test-packages }} ${{ env.channels-list }}
10089
10190
- name: ReInstall dpnp
10291
if: steps.install_dpnp.outcome == 'failure'
10392
run: |
104-
mamba install ${{ env.package-name }}=${{ steps.find_latest_tag.outputs.tag }} ${{ matrix.test-packages }} ${{ env.channels-list }}
93+
mamba install ${{ env.package-name }}=${{ steps.find_latest_tag.outputs.tag }} ${{ env.test-packages }} ${{ env.channels-list }}
10594
10695
- name: List installed packages
10796
run: mamba list

.github/workflows/generate_coverage.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ jobs:
135135
conda activate coverage
136136
[ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh
137137
git clean -fxd
138-
python scripts/gen_coverage.py --verbose
138+
python scripts/gen_coverage.py
139139
140140
- name: Total number of coverage attempts
141141
run: |

.github/workflows/openssf-scorecard.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ jobs:
6464
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
6565
# format to the repository Actions tab.
6666
- name: "Upload artifact"
67-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
67+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
6868
with:
6969
name: SARIF file
7070
path: results.sarif
7171
retention-days: 14
7272

7373
# Upload the results to GitHub's code scanning dashboard.
7474
- name: "Upload to code-scanning"
75-
uses: github/codeql-action/upload-sarif@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
75+
uses: github/codeql-action/upload-sarif@0499de31b99561a6d14a36a5f662c2a54f91beee # v4.31.2
7676
with:
7777
sarif_file: results.sarif

.github/workflows/pre-commit-autoupdate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- name: Set up python
3030
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
3131
with:
32-
python-version: '3.13'
32+
python-version: '3.14'
3333

3434
- name: Install pre-commit
3535
run: pip install pre-commit

.github/workflows/pre-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: Set up python
3939
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
4040
with:
41-
python-version: '3.13'
41+
python-version: '3.14'
4242

4343
- name: Run pre-commit checks
4444
uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [0.20.0] - MM/DD/2026
88

99
This release changes the license from `BSD-2-Clause` to `BSD-3-Clause`.
10+
This release achieves `dpnp` compatibility with Python 3.14 and enables distributing `dpnp` packages with the latest Python version.
11+
Also, that release drops support for Python 3.9, making Python 3.10 the minimum required version.
1012

1113
### Added
1214

1315
* Added the docstrings to `dpnp.linalg.LinAlgError` exception [#2613](https://github.com/IntelPython/dpnp/pull/2613)
1416
* Added implementation of `dpnp.linalg.lu_solve` for batch inputs (SciPy-compatible) [#2619](https://github.com/IntelPython/dpnp/pull/2619)
1517
* Added `dpnp.exceptions` submodule to aggregate the generic exceptions used by dpnp [#2616](https://github.com/IntelPython/dpnp/pull/2616)
1618
* Added implementation of `dpnp.scipy.special.erfcx` [#2596](https://github.com/IntelPython/dpnp/pull/2596)
19+
* Added implementation of `dpnp.scipy.special.erfinv` and `dpnp.scipy.special.erfcinv` [#2624](https://github.com/IntelPython/dpnp/pull/2624)
20+
* Enabled support of Python 3.14 [#2631](https://github.com/IntelPython/dpnp/pull/2631)
1721

1822
### Changed
1923

2024
* Silenced `pybind11` CMake message due to using compatibility mode for Python [#2614](https://github.com/IntelPython/dpnp/pull/2614)
2125
* Changed the license from `BSD-2-Clause` to `BSD-3-Clause` [#2593](https://github.com/IntelPython/dpnp/pull/2593)
26+
* Defined explicit versions range of the Python interpreter which is needed during the build [#2634](https://github.com/IntelPython/dpnp/pull/2634)
2227

2328
### Deprecated
2429

2530
### Removed
2631

32+
* Dropped support for Python 3.9 [#2626](https://github.com/IntelPython/dpnp/pull/2626)
33+
2734
### Fixed
2835

2936
### Security

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ endif()
7979
include(GNUInstallDirs)
8080

8181
# find Python before enabling pybind11
82-
find_package(Python REQUIRED COMPONENTS Development.Module NumPy)
82+
find_package(Python 3.10...<3.15 REQUIRED COMPONENTS Development.Module NumPy)
8383

8484
# Fetch pybind11
8585
include(FetchContent)

conda-recipe/meta.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ source:
1414
requirements:
1515
host:
1616
- python
17+
- python-gil # [py>=314]
1718
- pip >=25.0
1819
- pybind11 >=2.13.6
1920
{% for dep in py_build_deps %}
@@ -41,6 +42,7 @@ requirements:
4142
- {{ compiler('dpcpp') }} >={{ required_compiler_and_mkl_version }},<{{ max_compiler_and_mkl_version }}
4243
run:
4344
- python
45+
- python-gil # [py>=314]
4446
- {{ pin_compatible('dpctl', min_pin='x.x.x', max_pin=None) }}
4547
- {{ pin_compatible('dpcpp-cpp-rt', min_pin='x.x', max_pin='x') }}
4648
- {{ pin_compatible('onemkl-sycl-blas', min_pin='x.x', max_pin='x') }}
@@ -63,7 +65,7 @@ test:
6365
requires:
6466
- pytest
6567
- setuptools
66-
- scipy # [py>39]
68+
- scipy # [py<314]
6769

6870
about:
6971
home: https://github.com/IntelPython/dpnp

0 commit comments

Comments
 (0)