From ede3ddcab04db30859a55b34c13d2018ea88fd05 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Sun, 1 Nov 2026 12:08:15 +0100 Subject: [PATCH 1/5] Drop support for Python 3.9 and 3.10 Add Python 3.15 and pypy 3.12 to testing matrix --- .github/workflows/ci.yml | 9 +++------ CHANGELOG.md | 4 ++++ README.md | 2 +- pyproject.toml | 4 +--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65271d23..ec6382c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,10 +58,6 @@ jobs: # For available versions, see: # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json python-version: - - "3.9" - - "3.9.12" - - "3.10" - - "3.10.4" - "3.11" - "3.11.0" - "3.12" @@ -69,9 +65,10 @@ jobs: - "3.13" - "3.13.0" - "3.14" - - "pypy3.9" - - "pypy3.10" + - "3.15" + - "3.15.0" - "pypy3.11" + - "pypy3.12" runs-on: ubuntu-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a4cf664..21ac03f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Unreleased + +- Drop support for Python 3.9 and 3.10. + # Release 4.16.0 (July 2, 2026) No user-facing changes since 4.16.0rc2. diff --git a/README.md b/README.md index 106e83b1..55e9ae0a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The `typing_extensions` module serves two related purposes: - Enable use of new type system features on older Python versions. For example, - `typing.TypeGuard` is new in Python 3.10, but `typing_extensions` allows + `typing.TypeIs` is new in Python 3.13, but `typing_extensions` allows users on previous Python versions to use it too. - Enable experimentation with new type system PEPs before they are accepted and added to the `typing` module. diff --git a/pyproject.toml b/pyproject.toml index 6dde0165..d7f11b17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ name = "typing_extensions" version = "4.16.1.dev0" description = "Backported and Experimental Type Hints for Python 3.9+" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" license = "PSF-2.0" license-files = ["LICENSE"] keywords = [ @@ -34,8 +34,6 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "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", From ee8e4959214eb20f1e592a195d1c678426f46231 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Sun, 1 Nov 2026 12:09:24 +0100 Subject: [PATCH 2/5] Fix description --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d7f11b17..89b528d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "flit_core.buildapi" [project] name = "typing_extensions" version = "4.16.1.dev0" -description = "Backported and Experimental Type Hints for Python 3.9+" +description = "Backported and Experimental Type Hints for Python 3.11+" readme = "README.md" requires-python = ">=3.11" license = "PSF-2.0" From 176e8fd1d3a84a2768e54db3baefca8d0537bcb0 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Sun, 1 Nov 2026 12:32:30 +0100 Subject: [PATCH 3/5] Update versions --- .github/workflows/ci.yml | 7 ++++--- doc/index.rst | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec6382c7..7ab3579f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,12 +59,13 @@ jobs: # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json python-version: - "3.11" - - "3.11.0" + - "3.11.15" - "3.12" - - "3.12.0" + - "3.12.13" - "3.13" - - "3.13.0" + - "3.13.13" - "3.14" + - "3.14.6" - "3.15" - "3.15.0" - "pypy3.11" diff --git a/doc/index.rst b/doc/index.rst index 77cb0ec5..de47f6b5 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -143,7 +143,7 @@ Example usage:: Python version support ---------------------- -``typing_extensions`` currently supports Python versions 3.9 and higher. In the future, +``typing_extensions`` currently supports Python versions 3.11 and higher. In the future, support for older Python versions will be dropped some time after that version reaches end of life. From 6d8d4c3260b309563cc496d8bc02f82ab032fcef Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Tue, 3 Nov 2026 20:15:31 +0100 Subject: [PATCH 4/5] Reenable support for Python 3.10 --- .github/workflows/ci.yml | 2 ++ CHANGELOG.md | 2 +- doc/index.rst | 4 ++-- pyproject.toml | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ab3579f..9b6bdc5a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,6 +58,8 @@ jobs: # For available versions, see: # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json python-version: + - "3.10" + - "3.10.20" - "3.11" - "3.11.15" - "3.12" diff --git a/CHANGELOG.md b/CHANGELOG.md index 21ac03f0..a0afddae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Unreleased -- Drop support for Python 3.9 and 3.10. +- Drop support for Python 3.9. # Release 4.16.0 (July 2, 2026) diff --git a/doc/index.rst b/doc/index.rst index de47f6b5..52d3666f 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -8,7 +8,7 @@ providing runtime support for type hints as specified by :pep:`484` and subseque PEPs. The module serves two related purposes: - Enable use of new type system features on older Python versions. For example, - :py:data:`typing.TypeGuard` is new in Python 3.10, but ``typing_extensions`` allows + :py:data:`typing.TypeIs` is new in Python 3.13, but ``typing_extensions`` allows users on previous Python versions to use it too. - Enable experimentation with type system features proposed in new PEPs before they are accepted and added to the :py:mod:`typing` module. @@ -143,7 +143,7 @@ Example usage:: Python version support ---------------------- -``typing_extensions`` currently supports Python versions 3.11 and higher. In the future, +``typing_extensions`` currently supports Python versions 3.10 and higher. In the future, support for older Python versions will be dropped some time after that version reaches end of life. diff --git a/pyproject.toml b/pyproject.toml index 89b528d4..b127be79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ name = "typing_extensions" version = "4.16.1.dev0" description = "Backported and Experimental Type Hints for Python 3.11+" readme = "README.md" -requires-python = ">=3.11" +requires-python = ">=3.10" license = "PSF-2.0" license-files = ["LICENSE"] keywords = [ @@ -34,6 +34,7 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", From 84a63a741f25270ab7c4f6336bf3e9ec77cdb105 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Tue, 3 Nov 2026 20:16:25 +0100 Subject: [PATCH 5/5] Fix description --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b127be79..bce4804b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "flit_core.buildapi" [project] name = "typing_extensions" version = "4.16.1.dev0" -description = "Backported and Experimental Type Hints for Python 3.11+" +description = "Backported and Experimental Type Hints for Python 3.10+" readme = "README.md" requires-python = ">=3.10" license = "PSF-2.0"