From a5d0e0d8693f4cbea577a28392fb62b6938b8376 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Fri, 21 Nov 2025 09:54:47 -0600 Subject: [PATCH 1/4] Add testing with python 3.14 in GH actions --- .github/workflows/build-with-clang.yml | 2 +- .github/workflows/conda-package-cf.yml | 8 ++++++++ .github/workflows/conda-package.yml | 8 ++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-with-clang.yml b/.github/workflows/build-with-clang.yml index 98c06a3..e60fb8b 100644 --- a/.github/workflows/build-with-clang.yml +++ b/.github/workflows/build-with-clang.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - python: ["3.10", "3.11", "3.12", "3.13"] + python: ["3.10", "3.11", "3.12", "3.13", , "3.14"] numpy_version: ["numpy'>=2'"] env: ONEAPI_ROOT: /opt/intel/oneapi diff --git a/.github/workflows/conda-package-cf.yml b/.github/workflows/conda-package-cf.yml index 8849209..2d0a6ac 100644 --- a/.github/workflows/conda-package-cf.yml +++ b/.github/workflows/conda-package-cf.yml @@ -28,6 +28,8 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" + - python: "3.14" + numpy: "2.3" steps: - uses: actions/checkout@v4 with: @@ -83,6 +85,8 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" + - python: "3.14" + numpy: "2.3" env: conda-bld: C:\Miniconda\conda-bld\win-64\ steps: @@ -133,6 +137,8 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" + - python: "3.14" + numpy: "2.3" env: CHANNELS: -c conda-forge --override-channels @@ -206,6 +212,8 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" + - python: "3.14" + numpy: "2.3" env: CHANNELS: -c conda-forge --override-channels diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index bf570b0..fcc31b7 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ["3.10", "3.11", "3.12", "3.13"] + python: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 with: @@ -66,7 +66,7 @@ jobs: strategy: matrix: - python: ["3.10", "3.11", "3.12", "3.13"] + python: ["3.10", "3.11", "3.12", "3.13", "3.14"] env: conda-bld: C:\Miniconda\conda-bld\win-64\ steps: @@ -116,6 +116,8 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" + - python: "3.14" + numpy: "2.3" env: CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels @@ -188,6 +190,8 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" + - python: "3.14" + numpy: "2.3" env: CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels From f4b46853b189d2e8d1b60e712c396b71ac45d907 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Fri, 21 Nov 2025 09:55:19 -0600 Subject: [PATCH 2/4] Build docs with python 3.14 --- .github/workflows/build-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 4831132..0697d86 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -35,7 +35,7 @@ jobs: if: ${{ !github.event.pull_request || github.event.action != 'closed' }} uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" architecture: x64 - name: Install sphinx dependencies if: ${{ !github.event.pull_request || github.event.action != 'closed' }} From ec7e795fb4e8f0943494f41420aadfdcf442825a Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Fri, 21 Nov 2025 10:00:15 -0600 Subject: [PATCH 3/4] Pin GitHub actions by hash --- .github/workflows/build-docs.yml | 8 ++++---- .github/workflows/build-with-clang.yml | 6 +++--- .github/workflows/conda-package-cf.yml | 24 ++++++++++++------------ .github/workflows/conda-package.yml | 24 ++++++++++++------------ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 0697d86..88ccc29 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -16,7 +16,7 @@ jobs: pull-requests: write steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 + uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 with: access_token: ${{ github.token }} - name: Add Intel repository @@ -33,7 +33,7 @@ jobs: sudo apt-get install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mkl-devel - name: Setup Python if: ${{ !github.event.pull_request || github.event.action != 'closed' }} - uses: actions/setup-python@v5 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: "3.14" architecture: x64 @@ -43,7 +43,7 @@ jobs: run: | pip install numpy cython setuptools">=77" scikit-build cmake sphinx sphinx_rtd_theme furo pydot graphviz sphinxcontrib-programoutput sphinxcontrib-googleanalytics sphinx_design - name: Checkout repo - uses: actions/checkout@v4.1.1 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 persist-credentials: false @@ -61,7 +61,7 @@ jobs: git clean -dfx - name: Save built docs as an artifact if: ${{ github.event.pull_request && github.event.action != 'closed'}} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: ${{ env.PACKAGE_NAME }} rendered documentation path: ~/rendered_docs diff --git a/.github/workflows/build-with-clang.yml b/.github/workflows/build-with-clang.yml index e60fb8b..135808c 100644 --- a/.github/workflows/build-with-clang.yml +++ b/.github/workflows/build-with-clang.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 + uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 with: access_token: ${{ github.token }} @@ -42,13 +42,13 @@ jobs: sudo apt-get install intel-oneapi-mkl-devel - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: ${{ matrix.python }} architecture: x64 - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 diff --git a/.github/workflows/conda-package-cf.yml b/.github/workflows/conda-package-cf.yml index 2d0a6ac..ff0056e 100644 --- a/.github/workflows/conda-package-cf.yml +++ b/.github/workflows/conda-package-cf.yml @@ -31,7 +31,7 @@ jobs: - python: "3.14" numpy: "2.3" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 @@ -39,7 +39,7 @@ jobs: run: | echo "pkgs_dirs: [~/.conda/pkgs]" >> ~/.condarc - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 0 # Increase to reset cache with: @@ -66,7 +66,7 @@ jobs: $CHANNELS \ conda-recipe-cf - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} path: /usr/share/miniconda/conda-bld/linux-64/${{ env.PACKAGE_NAME }}-*.conda @@ -90,17 +90,17 @@ jobs: env: conda-bld: C:\Miniconda\conda-bld\win-64\ steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 - - uses: conda-incubator/setup-miniconda@v3 + - uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 with: conda-remove-defaults: true auto-activate-base: true activate-environment: "" - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 3 # Increase to reset cache with: @@ -117,7 +117,7 @@ jobs: - name: Build conda package run: conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c conda-forge --override-channels conda-recipe-cf - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} path: ${{ env.conda-bld }}${{ env.PACKAGE_NAME }}-*.conda @@ -145,7 +145,7 @@ jobs: steps: - name: Download artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} - name: Add conda to system path @@ -172,7 +172,7 @@ jobs: run: | echo "pkgs_dirs: [~/.conda/pkgs]" >> ~/.condarc - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 0 # Increase to reset cache with: @@ -220,10 +220,10 @@ jobs: steps: - name: Download artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} - - uses: conda-incubator/setup-miniconda@v3 + - uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 with: conda-remove-defaults: true auto-activate-base: true @@ -251,7 +251,7 @@ jobs: conda create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} numpy=${{ matrix.numpy }} -c ${{ env.GITHUB_WORKSPACE }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile more lockfile - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 3 # Increase to reset cache with: diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index fcc31b7..5c73999 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -21,7 +21,7 @@ jobs: matrix: python: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 @@ -29,7 +29,7 @@ jobs: run: | echo "pkgs_dirs: [~/.conda/pkgs]" >> ~/.condarc - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 0 # Increase to reset cache with: @@ -56,7 +56,7 @@ jobs: $CHANNELS \ conda-recipe - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} path: /usr/share/miniconda/conda-bld/linux-64/${{ env.PACKAGE_NAME }}-*.conda @@ -70,17 +70,17 @@ jobs: env: conda-bld: C:\Miniconda\conda-bld\win-64\ steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 - - uses: conda-incubator/setup-miniconda@v3 + - uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 with: conda-remove-defaults: true auto-activate-base: true activate-environment: "" - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 3 # Increase to reset cache with: @@ -97,7 +97,7 @@ jobs: - name: Build conda package run: conda build --no-test --python ${{ matrix.python }} -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels conda-recipe - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} path: ${{ env.conda-bld }}${{ env.PACKAGE_NAME }}-*.conda @@ -123,7 +123,7 @@ jobs: steps: - name: Download artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} - name: Add conda to system path @@ -150,7 +150,7 @@ jobs: run: | echo "pkgs_dirs: [~/.conda/pkgs]" >> ~/.condarc - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 0 # Increase to reset cache with: @@ -197,10 +197,10 @@ jobs: steps: - name: Download artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} - - uses: conda-incubator/setup-miniconda@v3 + - uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 with: conda-remove-defaults: true auto-activate-base: true @@ -228,7 +228,7 @@ jobs: conda create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} numpy=${{ matrix.numpy }} -c ${{ env.GITHUB_WORKSPACE }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile more lockfile - name: Cache conda packages - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 env: CACHE_NUMBER: 3 # Increase to reset cache with: From f08a53e5c76f4fd69196665cd20f590359c97e05 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Fri, 21 Nov 2025 10:11:16 -0600 Subject: [PATCH 4/4] Exclude python 3.14 for building conda-package since no python 3.14 support for numpy-base has been released --- .github/workflows/build-with-clang.yml | 2 +- .github/workflows/conda-package.yml | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-with-clang.yml b/.github/workflows/build-with-clang.yml index 135808c..0ce5703 100644 --- a/.github/workflows/build-with-clang.yml +++ b/.github/workflows/build-with-clang.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - python: ["3.10", "3.11", "3.12", "3.13", , "3.14"] + python: ["3.10", "3.11", "3.12", "3.13", "3.14"] numpy_version: ["numpy'>=2'"] env: ONEAPI_ROOT: /opt/intel/oneapi diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 5c73999..16094f3 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python: ["3.10", "3.11", "3.12", "3.13"] # no python 3.14 support by numpy-base is relased steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: @@ -66,7 +66,7 @@ jobs: strategy: matrix: - python: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python: ["3.10", "3.11", "3.12", "3.13"] # no python 3.14 support by numpy-base is relased env: conda-bld: C:\Miniconda\conda-bld\win-64\ steps: @@ -116,8 +116,6 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" - - python: "3.14" - numpy: "2.3" env: CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels @@ -190,8 +188,6 @@ jobs: numpy: "2.3" - python: "3.13" numpy: "2.3" - - python: "3.14" - numpy: "2.3" env: CHANNELS: -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels