From 9df6dd11f51e6940008c393f9422d85e9362e512 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 7 Jan 2025 15:38:39 +0100 Subject: [PATCH 1/6] Support python 3.13 --- .github/workflows/build-sphinx.yml | 2 +- .github/workflows/check-mkl-interfaces.yaml | 4 ++-- .github/workflows/conda-package.yml | 12 ++++++------ .github/workflows/cron-run-tests.yaml | 2 +- .github/workflows/generate_coverage.yaml | 2 +- .github/workflows/pre-commit.yml | 2 +- setup.py | 1 + 7 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-sphinx.yml b/.github/workflows/build-sphinx.yml index 2cba3f30a3d9..cd8d7a4fc65d 100644 --- a/.github/workflows/build-sphinx.yml +++ b/.github/workflows/build-sphinx.yml @@ -36,7 +36,7 @@ jobs: pull-requests: write env: - python-ver: '3.12' + python-ver: '3.13' CHANNELS: '-c dppy/label/dev -c intel -c conda-forge --override-channels' NO_INTEL_CHANNELS: '-c dppy/label/dev -c conda-forge --override-channels' # Install the latest oneAPI compiler to work around an issue diff --git a/.github/workflows/check-mkl-interfaces.yaml b/.github/workflows/check-mkl-interfaces.yaml index 791f4c59e1b8..3ee687bf5d47 100644 --- a/.github/workflows/check-mkl-interfaces.yaml +++ b/.github/workflows/check-mkl-interfaces.yaml @@ -32,7 +32,7 @@ jobs: strategy: matrix: - python: ['3.12'] + python: ['3.13'] os: [ubuntu-22.04] # windows-2019 - no DFT support for Windows in oneMKL permissions: @@ -125,7 +125,7 @@ jobs: strategy: matrix: - python: ['3.12'] + python: ['3.13'] os: [ubuntu-22.04] # windows-2019 - no DFT support for Windows in oneMKL permissions: diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index d0086d60ec04..f9a12d6b999e 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] os: [ubuntu-22.04, windows-2019] permissions: @@ -107,7 +107,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] continue-on-error: true @@ -205,7 +205,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] continue-on-error: true @@ -254,7 +254,7 @@ jobs: (echo CONDA_LIB_BIN_PATH=%CONDA_PREFIX%\Library\bin\) >> %GITHUB_ENV% - name: Install conda-index - run: mamba install conda-index=${{ env.CONDA_INDEX_VERSION }} + run: mamba install conda-index"<=${{ env.CONDA_INDEX_VERSION }}" - name: Create conda channel run: | @@ -331,7 +331,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] os: [ubuntu-22.04, windows-2019] runs-on: ${{ matrix.os }} @@ -406,7 +406,7 @@ jobs: channels: conda-forge conda-remove-defaults: 'true' run-post: 'false' - python-version: '3.12' + python-version: '3.13' activate-environment: 'cleanup' - name: Install anaconda-client diff --git a/.github/workflows/cron-run-tests.yaml b/.github/workflows/cron-run-tests.yaml index 80dd2bf24ab4..8d4d3745ee02 100644 --- a/.github/workflows/cron-run-tests.yaml +++ b/.github/workflows/cron-run-tests.yaml @@ -34,7 +34,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] runner: [ubuntu-22.04, ubuntu-24.04, windows-2019] continue-on-error: false diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 520ce02253ca..020964cd1d0b 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -20,7 +20,7 @@ jobs: shell: bash -el {0} env: - python-ver: '3.12' + python-ver: '3.13' CHANNELS: '-c dppy/label/dev -c intel -c conda-forge --override-channels' NO_INTEL_CHANNELS: '-c dppy/label/dev -c conda-forge --override-channels' # Install the latest oneAPI compiler to work around an issue diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index ee63d0a170ef..59b10427b09c 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -31,7 +31,7 @@ jobs: - name: Set up python uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: - python-version: '3.12' + python-version: '3.13' - name: Run pre-commit checks uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 diff --git a/setup.py b/setup.py index 7a2c10a16ba7..37c85fd2647d 100644 --- a/setup.py +++ b/setup.py @@ -38,6 +38,7 @@ def _get_cmdclass(): Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 +Programming Language :: Python :: 3.13 Programming Language :: Python :: Implementation :: CPython Topic :: Software Development Topic :: Scientific/Engineering From ed5a33334e1aa19c4a8dbf323ede117608e125a6 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 7 Jan 2025 15:58:36 +0100 Subject: [PATCH 2/6] Use python 3.12 in building docs, since no CuPy support for python 3.13 --- .github/workflows/build-sphinx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-sphinx.yml b/.github/workflows/build-sphinx.yml index cd8d7a4fc65d..2cba3f30a3d9 100644 --- a/.github/workflows/build-sphinx.yml +++ b/.github/workflows/build-sphinx.yml @@ -36,7 +36,7 @@ jobs: pull-requests: write env: - python-ver: '3.13' + python-ver: '3.12' CHANNELS: '-c dppy/label/dev -c intel -c conda-forge --override-channels' NO_INTEL_CHANNELS: '-c dppy/label/dev -c conda-forge --override-channels' # Install the latest oneAPI compiler to work around an issue From 70b395d03daecd5861796828cfd5e74c92732f04 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 7 Jan 2025 16:33:18 +0100 Subject: [PATCH 3/6] Use python 3.12 in env where to run conda commands and create a dedicated env for install built dpnp package --- .github/workflows/conda-package.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index f9a12d6b999e..6c5736bd393c 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -13,6 +13,7 @@ env: # Follow oneAPI installation instruction for conda, since intel channel is not longer available # CHANNELS: '-c dppy/label/dev -c intel -c conda-forge --override-channels' CHANNELS: '-c dppy/label/dev -c https://software.repos.intel.com/python/conda/ -c conda-forge --override-channels' + CONDA_BUILD_INDEX_ENV_PY_VER: '3.12' # conda does not support python 3.13 CONDA_BUILD_VERSION: '24.11.2' CONDA_INDEX_VERSION: '0.5.0' RERUN_TESTS_ON_FAILURE: 'true' @@ -61,7 +62,7 @@ jobs: use-mamba: 'true' channels: conda-forge conda-remove-defaults: 'true' - python-version: ${{ matrix.python }} + python-version: ${{ env.CONDA_BUILD_INDEX_ENV_PY_VER}} activate-environment: 'build' # Sometimes `mamba install ...` fails due to slow download speed rate, so disable the check in mamba @@ -136,8 +137,8 @@ jobs: use-mamba: 'true' channels: conda-forge conda-remove-defaults: 'true' - python-version: ${{ matrix.python }} - activate-environment: ${{ env.TEST_ENV_NAME }} + python-version: ${{ env.CONDA_BUILD_INDEX_ENV_PY_VER}} + activate-environment: 'index' - name: Install conda-index run: mamba install conda-index=${{ env.CONDA_INDEX_VERSION }} @@ -159,7 +160,9 @@ jobs: echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV - name: Install dpnp - run: mamba install ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} + run: | + mamba create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} + mamba activate ${{ env.TEST_ENV_NAME }} env: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.CHANNELS }}' MAMBA_NO_LOW_SPEED_LIMIT: 1 @@ -244,8 +247,8 @@ jobs: use-mamba: 'true' channels: conda-forge conda-remove-defaults: 'true' - python-version: ${{ matrix.python }} - activate-environment: ${{ env.TEST_ENV_NAME }} + python-version: ${{ env.CONDA_BUILD_INDEX_ENV_PY_VER}} + activate-environment: 'index' - name: Store conda paths as envs run: | @@ -254,7 +257,7 @@ jobs: (echo CONDA_LIB_BIN_PATH=%CONDA_PREFIX%\Library\bin\) >> %GITHUB_ENV% - name: Install conda-index - run: mamba install conda-index"<=${{ env.CONDA_INDEX_VERSION }}" + run: mamba install conda-index=${{ env.CONDA_INDEX_VERSION }} - name: Create conda channel run: | @@ -282,7 +285,8 @@ jobs: - name: Install dpnp run: | @echo on - mamba install ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} + mamba create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} + mamba activate ${{ env.TEST_ENV_NAME }} env: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.CHANNELS }}' MAMBA_NO_LOW_SPEED_LIMIT: 1 From a131bb266a4ccddbc75958a60243d15db13df861 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 7 Jan 2025 17:07:00 +0100 Subject: [PATCH 4/6] Pin numpy >=1.23 to install latest numpy version --- .github/workflows/conda-package.yml | 4 ++-- conda-recipe/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 6c5736bd393c..0543b6613055 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -162,7 +162,7 @@ jobs: - name: Install dpnp run: | mamba create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} - mamba activate ${{ env.TEST_ENV_NAME }} + conda activate ${{ env.TEST_ENV_NAME }} env: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.CHANNELS }}' MAMBA_NO_LOW_SPEED_LIMIT: 1 @@ -286,7 +286,7 @@ jobs: run: | @echo on mamba create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} - mamba activate ${{ env.TEST_ENV_NAME }} + conda activate ${{ env.TEST_ENV_NAME }} env: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.CHANNELS }}' MAMBA_NO_LOW_SPEED_LIMIT: 1 diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml index 3285fa4604ec..f37930d0c945 100644 --- a/conda-recipe/meta.yaml +++ b/conda-recipe/meta.yaml @@ -12,7 +12,7 @@ requirements: host: - python - setuptools - - numpy + - numpy >=1.23 - cython - cmake >=3.21 - ninja From 12a9f6fbeefbd7145a69419ffaa9564421b1b6e8 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Tue, 7 Jan 2025 22:20:28 +0100 Subject: [PATCH 5/6] Do not use python 3.13 in coverage action, since no support in coveralls --- .github/workflows/generate_coverage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 020964cd1d0b..520ce02253ca 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -20,7 +20,7 @@ jobs: shell: bash -el {0} env: - python-ver: '3.13' + python-ver: '3.12' CHANNELS: '-c dppy/label/dev -c intel -c conda-forge --override-channels' NO_INTEL_CHANNELS: '-c dppy/label/dev -c conda-forge --override-channels' # Install the latest oneAPI compiler to work around an issue From 7050a8fff04900a71ad972a6f7b9fa83fcbe1675 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Wed, 8 Jan 2025 11:36:31 +0100 Subject: [PATCH 6/6] Remove conda-index from test env --- .github/workflows/conda-package.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 0543b6613055..23ed4fe904e1 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -138,7 +138,7 @@ jobs: channels: conda-forge conda-remove-defaults: 'true' python-version: ${{ env.CONDA_BUILD_INDEX_ENV_PY_VER}} - activate-environment: 'index' + activate-environment: ${{ env.TEST_ENV_NAME }} - name: Install conda-index run: mamba install conda-index=${{ env.CONDA_INDEX_VERSION }} @@ -159,10 +159,13 @@ jobs: echo PACKAGE_VERSION=${PACKAGE_VERSION} echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV + # conda-index does not support python 3.13 + - name: Remove conda-index + run: mamba remove conda-index + - name: Install dpnp run: | - mamba create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} - conda activate ${{ env.TEST_ENV_NAME }} + mamba install ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} env: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.CHANNELS }}' MAMBA_NO_LOW_SPEED_LIMIT: 1 @@ -248,7 +251,7 @@ jobs: channels: conda-forge conda-remove-defaults: 'true' python-version: ${{ env.CONDA_BUILD_INDEX_ENV_PY_VER}} - activate-environment: 'index' + activate-environment: ${{ env.TEST_ENV_NAME }} - name: Store conda paths as envs run: | @@ -282,11 +285,14 @@ jobs: echo PACKAGE_VERSION: %PACKAGE_VERSION% (echo PACKAGE_VERSION=%PACKAGE_VERSION%) >> %GITHUB_ENV% + # conda-index does not support python 3.13 + - name: Remove conda-index + run: mamba remove conda-index + - name: Install dpnp run: | @echo on - mamba create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} - conda activate ${{ env.TEST_ENV_NAME }} + mamba install ${{ env.PACKAGE_NAME }}=${{ env.PACKAGE_VERSION }} pytest python=${{ matrix.python }} ${{ env.TEST_CHANNELS }} env: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.CHANNELS }}' MAMBA_NO_LOW_SPEED_LIMIT: 1