From f937387109136266fe34660e53b8db05c035e054 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 29 Oct 2025 14:27:55 -0700 Subject: [PATCH 1/3] Drop support for Python 3.9 --- .github/workflows/build-with-clang.yml | 4 ++-- .github/workflows/build_pip.yaml | 2 +- .github/workflows/conda-package-cf.yml | 8 ++------ .github/workflows/conda-package.yml | 19 ++++++------------- pyproject.toml | 3 +-- 5 files changed, 12 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build-with-clang.yml b/.github/workflows/build-with-clang.yml index eab2c32..8ef9883 100644 --- a/.github/workflows/build-with-clang.yml +++ b/.github/workflows/build-with-clang.yml @@ -13,8 +13,8 @@ jobs: strategy: matrix: - python: ["3.9", "3.10", "3.11", "3.12", "3.13"] - numpy_version: ["numpy'<2'", "numpy'>=2'"] + python: ["3.10", "3.11", "3.12", "3.13"] + numpy_version: ["numpy'>=2'"] env: ONEAPI_ROOT: /opt/intel/oneapi diff --git a/.github/workflows/build_pip.yaml b/.github/workflows/build_pip.yaml index 974d0b2..4cfbce8 100644 --- a/.github/workflows/build_pip.yaml +++ b/.github/workflows/build_pip.yaml @@ -22,7 +22,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13'] use_pre: ["", "--pre"] steps: diff --git a/.github/workflows/conda-package-cf.yml b/.github/workflows/conda-package-cf.yml index 195650d..891aa95 100644 --- a/.github/workflows/conda-package-cf.yml +++ b/.github/workflows/conda-package-cf.yml @@ -21,8 +21,6 @@ jobs: strategy: matrix: include: - - python: '3.9' - numpy: '2.0' - python: '3.10' numpy: '2.2' - python: '3.11' @@ -87,7 +85,7 @@ jobs: strategy: matrix: - python_ver: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_ver: ['3.10', '3.11', '3.12', '3.13'] numpy: ['numpy">=2"'] experimental: [false] runner: [ubuntu-latest] @@ -158,8 +156,6 @@ jobs: strategy: matrix: include: - - python: '3.9' - numpy: '2.0' - python: '3.10' numpy: '2.2' - python: '3.11' @@ -229,7 +225,7 @@ jobs: strategy: matrix: - python_ver: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_ver: ['3.10', '3.11', '3.12', '3.13'] numpy: ['numpy">=2"'] experimental: [false] runner: [windows-latest] diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index fb47cb8..e58d1ee 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13'] steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 @@ -77,7 +77,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13'] experimental: [false] runner: [ubuntu-latest] continue-on-error: ${{ matrix.experimental }} @@ -141,12 +141,7 @@ jobs: run: | CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}" conda create -n ${{ env.TEST_ENV_NAME }} $PACKAGE_NAME=${{ env.PACKAGE_VERSION }} python=${{ matrix.python }} pytest $CHANNELS - if [[ "${{ matrix.python }}" != 3.9* ]]; then - # Intel channel only has scipy=1.10 for Python 3.9, which needs mkl<2025 - # while scipy needs to install numpy and mkl_random and mkl_random-1.2.11 requires mkl>=2025 - # so avoid installing scipy for Python 3.9 which means third_party/scipy tests will not run - conda install -n ${{ env.TEST_ENV_NAME }} "scipy>=1.10" $CHANNELS - fi + conda install -n ${{ env.TEST_ENV_NAME }} "scipy>=1.10" $CHANNELS # Test installed packages conda list -n ${{ env.TEST_ENV_NAME }} @@ -161,7 +156,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13'] steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 @@ -225,7 +220,7 @@ jobs: strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.10', '3.11', '3.12', '3.13'] experimental: [false] runner: [windows-latest] continue-on-error: ${{ matrix.experimental }} @@ -315,10 +310,8 @@ jobs: ) SET "TEST_DEPENDENCIES=pytest" conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} - if ("${{ matrix.python }}" -ne "3.9") { - conda install -n ${{ env.TEST_ENV_NAME }} scipy -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} + conda install -n ${{ env.TEST_ENV_NAME }} scipy -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} } - - name: Report content of test environment shell: cmd /C CALL {0} run: | diff --git a/pyproject.toml b/pyproject.toml index 3264dce..021515d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,6 @@ classifiers = [ "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -57,7 +56,7 @@ keywords = ["DFTI", "FFT", "Fourier", "MKL"] license = "BSD-3-Clause" name = "mkl_fft" readme = {file = "README.md", content-type = "text/markdown"} -requires-python = ">=3.9,<3.14" +requires-python = ">=3.10,<3.14" [project.optional-dependencies] scipy_interface = ["scipy>=1.10"] From f0f7221cd440e73ca3c0d25af5a0cddc4e269077 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 29 Oct 2025 14:37:01 -0700 Subject: [PATCH 2/3] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de58258..260027c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [dev] - YYYY-MM-DD + +### Removed +* Dropped support for Python 3.9 [gh-243](https://github.com/IntelPython/mkl_fft/pull/243) + ## [2.1.1] - 2025-10-09 ### Fixed From 1058f335cfaeb5ad35f7b023edff7025728dc08a Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Thu, 30 Oct 2025 12:31:40 -0700 Subject: [PATCH 3/3] Update test_basic third party tests --- mkl_fft/tests/third_party/scipy/test_basic.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mkl_fft/tests/third_party/scipy/test_basic.py b/mkl_fft/tests/third_party/scipy/test_basic.py index c18c593..25cd3d6 100644 --- a/mkl_fft/tests/third_party/scipy/test_basic.py +++ b/mkl_fft/tests/third_party/scipy/test_basic.py @@ -17,10 +17,7 @@ except ImportError: pytest.skip("This test file needs scipy", allow_module_level=True) else: - if np.lib.NumpyVersion(scipy.__version__) < "1.12.0": - # scipy from Intel channel is 1.10 with python 3.9 and 3.10 - pytest.skip("This test file needs scipy>=1.12", allow_module_level=True) - elif np.lib.NumpyVersion(scipy.__version__) < "1.14.0": + if np.lib.NumpyVersion(scipy.__version__) < "1.14.0": # For python-3.11 and 3.12, scipy<1.14 is installed from Intel channel # For python<=3.9, scipy<1.14 is installed from conda channel # pylint: disable=no-name-in-module