From 0323b0645e42bf91b5e0b4feebc3a323968b22ed Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Thu, 26 Feb 2026 18:11:20 -0600 Subject: [PATCH] Remove support for Python 3.9 --- .github/workflows/build.yaml | 4 ++-- .pre-commit-config.yaml | 2 +- CHANGELOG.rst | 1 + pyproject.toml | 2 +- tox.ini | 10 +++++----- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 99c37e2eb..1a1da8c9f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,7 +11,7 @@ jobs: py: ["3.x"] include: - toxenv: py-mindeps - py: "3.9" + py: "3.10" runs-on: ubuntu-latest name: "'${{ matrix.toxenv }}' on py${{ matrix.py }}" @@ -62,7 +62,7 @@ jobs: strategy: matrix: os: [ubuntu, windows, macos] - py: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + py: ['3.10', '3.11', '3.12', '3.13', '3.14'] name: "Test on ${{ matrix.os }}, py${{ matrix.py }}" runs-on: "${{ matrix.os }}-latest" steps: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cad85f659..46d91a2e0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -47,4 +47,4 @@ repos: rev: v3.21.2 hooks: - id: pyupgrade - args: ["--py39-plus"] + args: ["--py310-plus"] diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3d86a4d55..61aa5ba89 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -12,6 +12,7 @@ Unreleased - Update vendored schemas: bitbucket-pipelines, circle-ci, gitlab-ci, mergify, renovate (2026-02-22) +- Removed support for Python 3.9 0.36.2 ------ diff --git a/pyproject.toml b/pyproject.toml index 4dae456d9..0df83f174 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", ] -requires-python = ">=3.9" +requires-python = ">=3.10" dependencies = [ 'tomli>=2.0;python_version<"3.11"', "ruamel.yaml>=0.18.10,<0.20.0", diff --git a/tox.ini b/tox.ini index 922be7a31..de5e33b1b 100644 --- a/tox.ini +++ b/tox.ini @@ -2,10 +2,10 @@ envlist = mypy cov_clean - py39-mindeps{,-format} - py{314,313,312,311,310,39} - py{39,314}-{json5,pyjson5}{,-format} - py{39,314}-{disable_orjson} + py310-mindeps{,-format} + py{314,313,312,311,310} + py{310,314}-{json5,pyjson5}{,-format} + py{310,314}-{disable_orjson} cov_combine cov_report skip_missing_interpreters = true @@ -45,7 +45,7 @@ description = "combine coverage data" deps = coverage skip_install = true commands = coverage combine -depends = py{,39,310,311,312,313,314}{,-mindeps,-format,-json5,-pyjson5,-disable_orjson} +depends = py{,310,311,312,313,314}{,-mindeps,-format,-json5,-pyjson5,-disable_orjson} [testenv:cov_report] description = "report test coverage"