From fa26803dc491912081e6d096f3f0c645bdcf8d00 Mon Sep 17 00:00:00 2001 From: Tim Paine <3105306+timkpaine@users.noreply.github.com> Date: Thu, 6 Nov 2025 15:50:32 -0500 Subject: [PATCH] Drop python 3.9 --- copier.yaml | 2 -- cpp/.github/workflows/build.yaml.jinja | 28 ++++--------------- cpp/pyproject.toml.jinja | 5 ++-- .../wiki/Installation.md.jinja | 2 +- examples/rust.yaml | 2 +- examples/rustjswasm.yaml | 2 +- js/pyproject.toml.jinja | 3 +- .../wiki/Installation.md.jinja | 2 +- jupyter/pyproject.toml.jinja | 3 +- .../wiki/Installation.md.jinja | 2 +- pyproject.toml | 2 +- python/pyproject.toml.jinja | 3 +- .../wiki/Installation.md.jinja | 2 +- rust/pyproject.toml.jinja | 5 ++-- .../wiki/Installation.md.jinja | 2 +- rustjswasm/pyproject.toml.jinja | 5 ++-- .../wiki/Installation.md.jinja | 2 +- 17 files changed, 24 insertions(+), 48 deletions(-) diff --git a/copier.yaml b/copier.yaml index 94139f5..ad33c5e 100644 --- a/copier.yaml +++ b/copier.yaml @@ -56,8 +56,6 @@ python_version_primary: type: str default: 3.11 choices: - "3.9": - value: "3.9" "3.10": value: "3.10" "3.11": diff --git a/cpp/.github/workflows/build.yaml.jinja b/cpp/.github/workflows/build.yaml.jinja index b9fa3e9..977a9a4 100644 --- a/cpp/.github/workflows/build.yaml.jinja +++ b/cpp/.github/workflows/build.yaml.jinja @@ -30,43 +30,27 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] - cibuildwheel: ["cp39", "cp310", "cp311", "cp312", "cp313"] + python-version: [ "3.10", "3.11", "3.12", "3.13"] + cibuildwheel: ["cp310", "cp311", "cp312", "cp313"] exclude: - - python-version: "3.9" - cibuildwheel: "cp310" - - python-version: "3.9" - cibuildwheel: "cp311" - - python-version: "3.9" - cibuildwheel: "cp312" - - python-version: "3.9" - cibuildwheel: "cp313" - - python-version: "3.10" - cibuildwheel: "cp39" - python-version: "3.10" cibuildwheel: "cp311" - python-version: "3.10" cibuildwheel: "cp312" - python-version: "3.10" cibuildwheel: "cp313" - - python-version: "3.11" - cibuildwheel: "cp39" - python-version: "3.11" cibuildwheel: "cp310" - python-version: "3.11" cibuildwheel: "cp312" - python-version: "3.11" cibuildwheel: "cp313" - - python-version: "3.12" - cibuildwheel: "cp39" - python-version: "3.12" cibuildwheel: "cp310" - python-version: "3.12" cibuildwheel: "cp311" - python-version: "3.12" cibuildwheel: "cp313" - - python-version: "3.13" - cibuildwheel: "cp39" - python-version: "3.13" cibuildwheel: "cp310" - python-version: "3.13" @@ -94,11 +78,11 @@ jobs: - name: Lint run: make lint - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9' + if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' - name: Checks run: make checks - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9' + if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' - name: Install build dependencies run: pip install cibuildwheel @@ -132,13 +116,13 @@ jobs: with: name: {% raw %}test-results-${{ matrix.os }}-${{ matrix.python-version }}{% endraw %} path: junit.xml - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9' + if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' - name: Publish Unit Test Results uses: EnricoMi/publish-unit-test-result-action@v2 with: files: '**/junit.xml' - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9' + if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' - name: Upload coverage uses: codecov/codecov-action@v5 diff --git a/cpp/pyproject.toml.jinja b/cpp/pyproject.toml.jinja index 1b2ac46..933ce06 100644 --- a/cpp/pyproject.toml.jinja +++ b/cpp/pyproject.toml.jinja @@ -13,7 +13,7 @@ description = "{{project_description}}" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [] classifiers = [ @@ -22,7 +22,6 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -84,7 +83,7 @@ ignore = [ ] [tool.cibuildwheel] -build = "cp39-* cp310-* cp311-* cp312-*" +build = "cp310-* cp311-* cp312-* cp313-*" test-command = "echo 'TODO'" test-requires = [] diff --git a/cpp/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja b/cpp/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja index aa61725..8dfc880 100644 --- a/cpp/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja +++ b/cpp/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja @@ -1,6 +1,6 @@ ## Pre-requisites -You need Python >=3.9 on your machine to install `{{project_name_formatted}}`. +You need Python >=3.10 on your machine to install `{{project_name_formatted}}`. ## Install with `pip` diff --git a/examples/rust.yaml b/examples/rust.yaml index cff2804..963ed99 100644 --- a/examples/rust.yaml +++ b/examples/rust.yaml @@ -6,5 +6,5 @@ email: 3105306+timkpaine@users.noreply.github.com github: python-project-templates project_description: A Rust-Python project template project_name: python template rust -python_version_primary: '3.9' +python_version_primary: '3.11' team: Python Project Template Authors diff --git a/examples/rustjswasm.yaml b/examples/rustjswasm.yaml index b594ef7..c301273 100644 --- a/examples/rustjswasm.yaml +++ b/examples/rustjswasm.yaml @@ -6,5 +6,5 @@ email: 3105306+timkpaine@users.noreply.github.com github: python-project-templates project_description: A Rust-Python project template project_name: python template rustjswasm -python_version_primary: '3.9' +python_version_primary: '3.11' team: Python Project Template Authors diff --git a/js/pyproject.toml.jinja b/js/pyproject.toml.jinja index ce4fc26..574bee2 100644 --- a/js/pyproject.toml.jinja +++ b/js/pyproject.toml.jinja @@ -9,7 +9,7 @@ description = "{{project_description}}" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [] classifiers = [ @@ -18,7 +18,6 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", diff --git a/js/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja b/js/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja index aa61725..8dfc880 100644 --- a/js/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja +++ b/js/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja @@ -1,6 +1,6 @@ ## Pre-requisites -You need Python >=3.9 on your machine to install `{{project_name_formatted}}`. +You need Python >=3.10 on your machine to install `{{project_name_formatted}}`. ## Install with `pip` diff --git a/jupyter/pyproject.toml.jinja b/jupyter/pyproject.toml.jinja index 2867f5c..24eabc3 100644 --- a/jupyter/pyproject.toml.jinja +++ b/jupyter/pyproject.toml.jinja @@ -9,7 +9,7 @@ description = "{{project_description}}" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [] classifiers = [ @@ -20,7 +20,6 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", diff --git a/jupyter/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja b/jupyter/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja index aa61725..8dfc880 100644 --- a/jupyter/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja +++ b/jupyter/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja @@ -1,6 +1,6 @@ ## Pre-requisites -You need Python >=3.9 on your machine to install `{{project_name_formatted}}`. +You need Python >=3.10 on your machine to install `{{project_name_formatted}}`. ## Install with `pip` diff --git a/pyproject.toml b/pyproject.toml index 963a0e8..7f8dda4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "python-project-templates" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" dependencies = [] [project.optional-dependencies] diff --git a/python/pyproject.toml.jinja b/python/pyproject.toml.jinja index a8e05ab..f32e4fa 100644 --- a/python/pyproject.toml.jinja +++ b/python/pyproject.toml.jinja @@ -9,7 +9,7 @@ description = "{{project_description}}" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [] classifiers = [ @@ -18,7 +18,6 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", diff --git a/python/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja b/python/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja index aa61725..8dfc880 100644 --- a/python/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja +++ b/python/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja @@ -1,6 +1,6 @@ ## Pre-requisites -You need Python >=3.9 on your machine to install `{{project_name_formatted}}`. +You need Python >=3.10 on your machine to install `{{project_name_formatted}}`. ## Install with `pip` diff --git a/rust/pyproject.toml.jinja b/rust/pyproject.toml.jinja index 1e28419..9485c5d 100644 --- a/rust/pyproject.toml.jinja +++ b/rust/pyproject.toml.jinja @@ -9,7 +9,7 @@ description = "{{project_description}}" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [] classifiers = [ @@ -19,7 +19,6 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -92,7 +91,7 @@ ignore = [ ] [tool.cibuildwheel] -build = "cp39-*" +build = "cp310-*" test-command = "pytest -vvv {project}/{{module}}/tests" test-requires = ["pytest", "pytest-cov", "pytest-sugar", "pytest-xdist"] diff --git a/rust/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja b/rust/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja index aa61725..8dfc880 100644 --- a/rust/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja +++ b/rust/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja @@ -1,6 +1,6 @@ ## Pre-requisites -You need Python >=3.9 on your machine to install `{{project_name_formatted}}`. +You need Python >=3.10 on your machine to install `{{project_name_formatted}}`. ## Install with `pip` diff --git a/rustjswasm/pyproject.toml.jinja b/rustjswasm/pyproject.toml.jinja index fcc931d..1bc95f3 100644 --- a/rustjswasm/pyproject.toml.jinja +++ b/rustjswasm/pyproject.toml.jinja @@ -9,7 +9,7 @@ description = "{{project_description}}" readme = "README.md" license = { text = "Apache-2.0" } version = "0.1.0" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [] classifiers = [ @@ -19,7 +19,6 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -107,7 +106,7 @@ ignore = [ ] [tool.cibuildwheel] -build = "cp39-*" +build = "cp310-*" test-command = "pytest -vvv {project}/{{module}}/tests" test-requires = ["pytest", "pytest-cov", "pytest-sugar", "pytest-xdist"] diff --git a/rustjswasm/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja b/rustjswasm/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja index aa61725..8dfc880 100644 --- a/rustjswasm/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja +++ b/rustjswasm/{% if add_wiki %}docs{% endif %}/wiki/Installation.md.jinja @@ -1,6 +1,6 @@ ## Pre-requisites -You need Python >=3.9 on your machine to install `{{project_name_formatted}}`. +You need Python >=3.10 on your machine to install `{{project_name_formatted}}`. ## Install with `pip`