From 6d9493c094e223a0edae2d49d3921f605e9c60bd Mon Sep 17 00:00:00 2001 From: Lucas Morin Date: Sun, 18 Oct 2026 17:58:06 +0200 Subject: [PATCH] Propose Python 3.11 as the minimum supported version --- .circleci/config.yml | 35 +++++++++-------------------- .github/workflow/workflow.yml | 4 ++-- docs/contribute/contribute_code.rst | 2 +- docs/index.rst | 2 +- docs/quickstart/index.rst | 2 +- docs/whats_new/index.rst | 1 + docs/whats_new/unreleased.rst | 9 ++++++++ pyproject.toml | 4 +--- tox.ini | 9 ++------ 9 files changed, 28 insertions(+), 40 deletions(-) create mode 100644 docs/whats_new/unreleased.rst diff --git a/.circleci/config.yml b/.circleci/config.yml index 127b33bef..0bd964a0e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,7 @@ orbs: defaults: &defaults docker: - - image: cimg/python:3.10.0 + - image: cimg/python:3.11.7 working_directory: ~/project prepare_tox: &prepare_tox @@ -42,31 +42,18 @@ jobs: # Test matrix # ------------------------ - test_feature_engine_py39: + test_feature_engine_py311: docker: - - image: cimg/python:3.9.0 - working_directory: ~/project - steps: - - checkout: - path: ~/project - - *prepare_tox - - run: - name: Run tests (Python 3.9) - command: | - tox -e py39 - - test_feature_engine_py310: - docker: - - image: cimg/python:3.10.0 + - image: cimg/python:3.11.7 working_directory: ~/project steps: - checkout: path: ~/project - *prepare_tox - run: - name: Run tests (Python 3.10) + name: Run tests (Python 3.11) command: | - tox -e py310 + tox -e py311 test_feature_engine_py311_sklearn150: docker: @@ -166,7 +153,7 @@ jobs: test_style: docker: - - image: cimg/python:3.10.0 + - image: cimg/python:3.11.7 working_directory: ~/project steps: - checkout: @@ -179,7 +166,7 @@ jobs: test_docs: docker: - - image: cimg/python:3.10.0 + - image: cimg/python:3.11.7 working_directory: ~/project steps: - checkout: @@ -192,7 +179,7 @@ jobs: test_type: docker: - - image: cimg/python:3.10.0 + - image: cimg/python:3.11.7 working_directory: ~/project steps: - checkout: @@ -277,8 +264,7 @@ workflows: test-all: jobs: - - test_feature_engine_py39 - - test_feature_engine_py310 + - test_feature_engine_py311 - test_feature_engine_py311_sklearn150 - test_feature_engine_py311_sklearn160 - test_feature_engine_py311_sklearn170 @@ -298,8 +284,7 @@ workflows: - package_and_upload_to_pypi: requires: - - test_feature_engine_py39 - - test_feature_engine_py310 + - test_feature_engine_py311 - test_feature_engine_py311_sklearn150 - test_feature_engine_py311_sklearn160 - test_feature_engine_py311_sklearn170 diff --git a/.github/workflow/workflow.yml b/.github/workflow/workflow.yml index 0f9a33d14..e5c9cbcdf 100644 --- a/.github/workflow/workflow.yml +++ b/.github/workflow/workflow.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest env: OS: ubuntu-latest - PYTHON: '3.9' + PYTHON: '3.11' steps: - uses: checkout@v3 with: @@ -14,7 +14,7 @@ jobs: - name: Setup Python uses: actions/setup-python@master with: - python-version: 3.9 + python-version: "3.11" - name: Generate Report run: | pip install coverage diff --git a/docs/contribute/contribute_code.rst b/docs/contribute/contribute_code.rst index 4e85515ec..493138774 100644 --- a/docs/contribute/contribute_code.rst +++ b/docs/contribute/contribute_code.rst @@ -433,7 +433,7 @@ If the tests pass, the code is in optimal condition :) **A few things to note:** -Tox runs our tests in Python versions 3.6, 3.7, 3.8 and 3.9. However, it will only be able to +Tox runs our tests in Python versions 3.11, 3.12, 3.13 and 3.14. However, it will only be able to run the tests in the version you have installed locally. All others will fail. This is OK. As long as the tests in the Python version you have installed pass, you are good to go. diff --git a/docs/index.rst b/docs/index.rst index 98e8a3bac..2d7931cc9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -127,7 +127,7 @@ The following characteristics make feature-engine unique: Installation ------------ -Feature-engine is a Python 3 package and works well with 3.9 or later. +Feature-engine is a Python 3 package and works well with 3.11 or later. The simplest way to install feature-engine is from PyPI with pip: diff --git a/docs/quickstart/index.rst b/docs/quickstart/index.rst index a69840029..e3245ca6e 100644 --- a/docs/quickstart/index.rst +++ b/docs/quickstart/index.rst @@ -12,7 +12,7 @@ data and then modify the data. They work just like any scikit-learn transformer. Installation ------------ -Feature-engine is a Python 3 package and works well with 3.9 or later. You can install +Feature-engine is a Python 3 package and works well with 3.11 or later. You can install feature-engine with `pip`: .. code-block:: bash diff --git a/docs/whats_new/index.rst b/docs/whats_new/index.rst index e256a1280..bc061d3fb 100644 --- a/docs/whats_new/index.rst +++ b/docs/whats_new/index.rst @@ -8,6 +8,7 @@ Find out what's new in each new version release. .. toctree:: :maxdepth: 2 + unreleased v_190 v_180 v_170 diff --git a/docs/whats_new/unreleased.rst b/docs/whats_new/unreleased.rst new file mode 100644 index 000000000..8f7a1f78b --- /dev/null +++ b/docs/whats_new/unreleased.rst @@ -0,0 +1,9 @@ +Unreleased +========== + +Compatibility +------------- + +- The minimum supported Python version is now 3.11. Python 3.9 and 3.10 are no + longer supported. Upgrade Python before installing this release. Existing + Feature-engine releases retain their original Python requirements. diff --git a/pyproject.toml b/pyproject.toml index 9e5fb0199..7d2a5596c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ license = {text = "BSD 3 clause"} authors = [ { name = "Soledad Galli", email = "solegalli@protonmail.com" } ] -requires-python = ">=3.9.0" +requires-python = ">=3.11" dependencies = [ "numpy>=1.18.2", "pandas>=2.2.0", @@ -20,8 +20,6 @@ dependencies = [ classifiers = [ "License :: OSI Approved :: BSD License", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/tox.ini b/tox.ini index c31b3edd1..d2872891f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,6 @@ [tox] envlist = - py39 - py310 + py311 py311-sklearn150 py311-sklearn160 py311-sklearn170 @@ -32,11 +31,7 @@ commands = # Python versions # ------------------------- -[testenv:py39] -deps = - .[tests] - -[testenv:py310] +[testenv:py311] deps = .[tests]