From 98ee407b6567f417b108fe624e9b0cea786d9559 Mon Sep 17 00:00:00 2001 From: "Komarova, Evseniia" Date: Mon, 20 Oct 2025 14:41:09 +0200 Subject: [PATCH 1/8] Add 3.14 python --- conda-recipe/meta.yaml | 2 ++ pyproject.toml | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml index 5fe753fadcee..40cfde6d6cdd 100644 --- a/conda-recipe/meta.yaml +++ b/conda-recipe/meta.yaml @@ -14,6 +14,7 @@ source: requirements: host: - python + - python-gil # [py>=314] - pip >=25.0 - pybind11 >=2.13.6 {% for dep in py_build_deps %} @@ -41,6 +42,7 @@ requirements: - {{ compiler('dpcpp') }} >={{ required_compiler_and_mkl_version }},<{{ max_compiler_and_mkl_version }} run: - python + - python-gil # [py>=314] - {{ pin_compatible('dpctl', min_pin='x.x.x', max_pin=None) }} - {{ pin_compatible('dpcpp-cpp-rt', min_pin='x.x', max_pin='x') }} - {{ pin_compatible('onemkl-sycl-blas', min_pin='x.x', max_pin='x') }} diff --git a/pyproject.toml b/pyproject.toml index 68a54aa095e6..087942f41689 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development", @@ -70,7 +71,7 @@ license-files = ["LICENSE.txt"] maintainers = [{name = "Intel Corporation"}] name = "dpnp" readme = {file = "README.md", content-type = "text/markdown"} -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" [project.optional-dependencies] coverage = [ From baf67ad68aaf2ecb0f2f104d94ff9b08138ab33a Mon Sep 17 00:00:00 2001 From: "Komarova, Evseniia" Date: Mon, 20 Oct 2025 14:50:16 +0200 Subject: [PATCH 2/8] Add scipy restriction --- conda-recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml index 40cfde6d6cdd..2fd55e07eb4b 100644 --- a/conda-recipe/meta.yaml +++ b/conda-recipe/meta.yaml @@ -65,7 +65,7 @@ test: requires: - pytest - setuptools - - scipy + - scipy # [py<314] about: home: https://github.com/IntelPython/dpnp From ec4bf4beba7f1c36c07c8bd1bf1a7c9131631e1b Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 27 Oct 2025 16:04:17 +0100 Subject: [PATCH 3/8] Applied review coments --- .github/workflows/check-onemath.yaml | 4 ++-- .github/workflows/conda-package.yml | 10 +++++----- .github/workflows/cron-run-tests.yaml | 2 +- CHANGELOG.md | 4 +++- doc/quick_start_guide.rst | 2 +- pyproject.toml | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/check-onemath.yaml b/.github/workflows/check-onemath.yaml index 615fd0469e1a..bc94fbd762e9 100644 --- a/.github/workflows/check-onemath.yaml +++ b/.github/workflows/check-onemath.yaml @@ -70,7 +70,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.13'] + python: ['3.14'] os: [ubuntu-22.04] # windows-2022 - no DFT support for Windows in oneMKL runs-on: ${{ matrix.os }} @@ -159,7 +159,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.13'] + python: ['3.14'] os: [ubuntu-22.04] # windows-2022 - no DFT support for Windows in oneMKL runs-on: ${{ matrix.os }} diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 099b61a34ade..8c6deeb9735f 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -16,7 +16,7 @@ env: ver-script-part1: "import json; f = open('version.json', 'r'); j = json.load(f); f.close(); " ver-script-part2: "d = j['dpnp'][0]; print('='.join((d[s] for s in ('version', 'build'))))" fetch-depth: 1 - python-ver-test-all-dtypes: '3.13' + python-ver-test-all-dtypes: '3.14' test-env-name: 'test' rerun-tests-on-failure: 'true' rerun-tests-max-attempts: 2 @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-22.04, windows-2022] permissions: @@ -128,7 +128,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest] env: @@ -261,7 +261,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [windows-2022] env: @@ -410,7 +410,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-22.04, windows-2022] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/cron-run-tests.yaml b/.github/workflows/cron-run-tests.yaml index 2acee9bdcf17..d13048cc28d0 100644 --- a/.github/workflows/cron-run-tests.yaml +++ b/.github/workflows/cron-run-tests.yaml @@ -38,7 +38,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] runner: [ubuntu-22.04, ubuntu-24.04, windows-2022] steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e4a741cc3f5..1f631787602f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.20.0] - MM/DD/2026 This release changes the license from `BSD-2-Clause` to `BSD-3-Clause`. -The release drops support for Python 3.9, making Python 3.10 the minimum required version. +This release achieves `dpnp` compatibility with Python 3.14 and enables distributing `dpnp` packages with the latest Python version. +Also, that release drops support for Python 3.9, making Python 3.10 the minimum required version. ### Added @@ -16,6 +17,7 @@ The release drops support for Python 3.9, making Python 3.10 the minimum require * Added `dpnp.exceptions` submodule to aggregate the generic exceptions used by dpnp [#2616](https://github.com/IntelPython/dpnp/pull/2616) * Added implementation of `dpnp.scipy.special.erfcx` [#2596](https://github.com/IntelPython/dpnp/pull/2596) * Added implementation of `dpnp.scipy.special.erfinv` and `dpnp.scipy.special.erfcinv` [#2624](https://github.com/IntelPython/dpnp/pull/2624) +* Enabled support of Python 3.14 [#2631](https://github.com/IntelPython/dpnp/pull/2631) ### Changed diff --git a/doc/quick_start_guide.rst b/doc/quick_start_guide.rst index a68671f676fa..92c506c0fd81 100644 --- a/doc/quick_start_guide.rst +++ b/doc/quick_start_guide.rst @@ -24,7 +24,7 @@ Follow device driver installation instructions to complete the step. Python Interpreter ================== -You will need Python 3.10, 3.11, 3.12 or 3.13 installed on your system. If you +You will need Python 3.10, 3.11, 3.12, 3.13 or 3.14 installed on your system. If you do not have one yet the easiest way to do that is to install `Intel Distribution for Python*`_. It installs all essential Python numerical and machine learning packages optimized for the Intel hardware, including diff --git a/pyproject.toml b/pyproject.toml index 087942f41689..62c4dca14b63 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -103,7 +103,7 @@ Repository = "https://github.com/IntelPython/dpnp.git" [tool.black] line-length = 80 -target-version = ['py310', 'py311', 'py312', 'py313'] +target-version = ['py310', 'py311', 'py312', 'py313', 'py314'] [tool.codespell] builtin = "clear,rare,informal,names" From 326d6a5301da4cf2999c4ee2932daef26d22aaeb Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 27 Oct 2025 17:53:08 +0100 Subject: [PATCH 4/8] Cannot build conda package with python 3.14 through GitHub w/f due to dependency conflict with numpy and MKL --- .github/workflows/conda-package.yml | 10 +++++----- .github/workflows/cron-run-tests.yaml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 8c6deeb9735f..099b61a34ade 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -16,7 +16,7 @@ env: ver-script-part1: "import json; f = open('version.json', 'r'); j = json.load(f); f.close(); " ver-script-part2: "d = j['dpnp'][0]; print('='.join((d[s] for s in ('version', 'build'))))" fetch-depth: 1 - python-ver-test-all-dtypes: '3.14' + python-ver-test-all-dtypes: '3.13' test-env-name: 'test' rerun-tests-on-failure: 'true' rerun-tests-max-attempts: 2 @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] os: [ubuntu-22.04, windows-2022] permissions: @@ -128,7 +128,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] os: [ubuntu-latest] env: @@ -261,7 +261,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] os: [windows-2022] env: @@ -410,7 +410,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] os: [ubuntu-22.04, windows-2022] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/cron-run-tests.yaml b/.github/workflows/cron-run-tests.yaml index d13048cc28d0..2acee9bdcf17 100644 --- a/.github/workflows/cron-run-tests.yaml +++ b/.github/workflows/cron-run-tests.yaml @@ -38,7 +38,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] runner: [ubuntu-22.04, ubuntu-24.04, windows-2022] steps: From 4da9c0cfe19d2f4aa2ca21e664896b91fc97516d Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 28 Oct 2025 11:37:05 +0100 Subject: [PATCH 5/8] Add a comment to the GH workflows about identified python 3.14 limitation --- .github/workflows/conda-package.yml | 1 + .github/workflows/cron-run-tests.yaml | 1 + environments/build_conda_pkg.yml | 2 +- environments/building_docs.yml | 2 +- environments/create_conda_channel.yml | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 099b61a34ade..fae1f94eb980 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -29,6 +29,7 @@ jobs: strategy: fail-fast: false matrix: + # Cannot build conda package with python 3.14 due to dependency conflict between stock numpy and Intel MKL python: ['3.10', '3.11', '3.12', '3.13'] os: [ubuntu-22.04, windows-2022] diff --git a/.github/workflows/cron-run-tests.yaml b/.github/workflows/cron-run-tests.yaml index 2acee9bdcf17..cc0fb80c2e46 100644 --- a/.github/workflows/cron-run-tests.yaml +++ b/.github/workflows/cron-run-tests.yaml @@ -38,6 +38,7 @@ jobs: strategy: fail-fast: false matrix: + # Cannot build conda package with python 3.14 due to dependency conflict between stock numpy and Intel MKL python: ['3.10', '3.11', '3.12', '3.13'] runner: [ubuntu-22.04, ubuntu-24.04, windows-2022] diff --git a/environments/build_conda_pkg.yml b/environments/build_conda_pkg.yml index cb41f4528fac..face05ec635c 100644 --- a/environments/build_conda_pkg.yml +++ b/environments/build_conda_pkg.yml @@ -2,5 +2,5 @@ name: Build DPNP conda package channels: - conda-forge dependencies: - - python=3.13 + - python=3.13 # no python 3.14 support by conda-build - conda-build=25.9.0 diff --git a/environments/building_docs.yml b/environments/building_docs.yml index f2df72a85ece..0857dd8431ba 100644 --- a/environments/building_docs.yml +++ b/environments/building_docs.yml @@ -2,7 +2,7 @@ name: Building docs specific packages channels: - conda-forge dependencies: - - python=3.13 + - python=3.13 # no dpctl package on PyPI with enabled python 3.14 support - cupy - sphinx - sphinx_rtd_theme diff --git a/environments/create_conda_channel.yml b/environments/create_conda_channel.yml index 2ee38e720f9c..aa136bc2dec8 100644 --- a/environments/create_conda_channel.yml +++ b/environments/create_conda_channel.yml @@ -2,5 +2,5 @@ name: Create conda channel with DPNP package channels: - conda-forge dependencies: - - python=3.13 + - python=3.13 # no python 3.14 support by conda-index - conda-index=0.7.0 From 3a667cd20c5c19237abf7379f5282e461dd7670d Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 28 Oct 2025 12:24:38 +0100 Subject: [PATCH 6/8] Bump python version used in pre-commit actions --- .github/workflows/pre-commit-autoupdate.yml | 2 +- .github/workflows/pre-commit.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-commit-autoupdate.yml b/.github/workflows/pre-commit-autoupdate.yml index aef5e16daad1..d8f2cdd0a3ca 100644 --- a/.github/workflows/pre-commit-autoupdate.yml +++ b/.github/workflows/pre-commit-autoupdate.yml @@ -29,7 +29,7 @@ jobs: - name: Set up python uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: - python-version: '3.13' + python-version: '3.14' - name: Install pre-commit run: pip install pre-commit diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index d1d2dbbae21a..f46438c88eb6 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -38,7 +38,7 @@ jobs: - name: Set up python uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: - python-version: '3.13' + python-version: '3.14' - name: Run pre-commit checks uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 From 04f378f777eece8737be2d3de95893dbc71cd8a5 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Wed, 29 Oct 2025 10:26:01 +0100 Subject: [PATCH 7/8] Enable python 3.14 for testing of conda package since mkl=2025.3 is now available on conda-forge --- .github/workflows/conda-package.yml | 11 +++++------ .github/workflows/cron-run-tests.yaml | 3 +-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index fae1f94eb980..8c6deeb9735f 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -16,7 +16,7 @@ env: ver-script-part1: "import json; f = open('version.json', 'r'); j = json.load(f); f.close(); " ver-script-part2: "d = j['dpnp'][0]; print('='.join((d[s] for s in ('version', 'build'))))" fetch-depth: 1 - python-ver-test-all-dtypes: '3.13' + python-ver-test-all-dtypes: '3.14' test-env-name: 'test' rerun-tests-on-failure: 'true' rerun-tests-max-attempts: 2 @@ -29,8 +29,7 @@ jobs: strategy: fail-fast: false matrix: - # Cannot build conda package with python 3.14 due to dependency conflict between stock numpy and Intel MKL - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-22.04, windows-2022] permissions: @@ -129,7 +128,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest] env: @@ -262,7 +261,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [windows-2022] env: @@ -411,7 +410,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-22.04, windows-2022] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/cron-run-tests.yaml b/.github/workflows/cron-run-tests.yaml index cc0fb80c2e46..d13048cc28d0 100644 --- a/.github/workflows/cron-run-tests.yaml +++ b/.github/workflows/cron-run-tests.yaml @@ -38,8 +38,7 @@ jobs: strategy: fail-fast: false matrix: - # Cannot build conda package with python 3.14 due to dependency conflict between stock numpy and Intel MKL - python: ['3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13', '3.14'] runner: [ubuntu-22.04, ubuntu-24.04, windows-2022] steps: From c668794909bb13d59b04f6f03f850f20495a2463 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Wed, 29 Oct 2025 11:30:50 +0100 Subject: [PATCH 8/8] Run tests with oneMath interface for python 3.13, because no dpctl package on PyPI with enabled python 3.14 support --- .github/workflows/check-onemath.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-onemath.yaml b/.github/workflows/check-onemath.yaml index bc94fbd762e9..1c2f672e00db 100644 --- a/.github/workflows/check-onemath.yaml +++ b/.github/workflows/check-onemath.yaml @@ -70,7 +70,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.14'] + python: ['3.13'] # no dpctl package on PyPI with enabled python 3.14 support os: [ubuntu-22.04] # windows-2022 - no DFT support for Windows in oneMKL runs-on: ${{ matrix.os }} @@ -159,7 +159,7 @@ jobs: strategy: fail-fast: false matrix: - python: ['3.14'] + python: ['3.13'] # no dpctl package on PyPI with enabled python 3.14 support os: [ubuntu-22.04] # windows-2022 - no DFT support for Windows in oneMKL runs-on: ${{ matrix.os }}