Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 36 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,25 +55,41 @@ jobs:
matrix:
# We try to test on the earliest available bugfix release of each
# Python version, because typing sometimes changed between bugfix releases.
# For some of these versions, setup-python only provides these builds
# on older versions of Ubuntu.
# 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"
- "3.12.0"
- "3.13"
- "3.13.0"
- "3.14"
- "pypy3.9"
- "pypy3.10"
- "pypy3.11"

runs-on: ubuntu-latest
include:
- os: ubuntu-latest
python-version: "3.10"
- os: ubuntu-24.04
python-version: "3.10.4"
- os: ubuntu-latest
python-version: "3.11"
- os: ubuntu-24.04
python-version: "3.11.0"
- os: ubuntu-latest
python-version: "3.12"
- os: ubuntu-24.04
python-version: "3.12.0"
- os: ubuntu-latest
python-version: "3.13"
- os: ubuntu-24.04
python-version: "3.13.0"
- os: ubuntu-latest
python-version: "3.14"
- os: ubuntu-24.04
python-version: "3.14.0"
- os: ubuntu-latest
python-version: "3.15"
- os: ubuntu-latest
python-version: "3.15.0"
Comment on lines +81 to +86

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3.14.0, 3.15 and 3.15.0 are all new here; all the other entries in the matrix are the same (except that 3.9 is also removed)

- os: ubuntu-latest
python-version: "pypy3.10"
- os: ubuntu-latest
python-version: "pypy3.11"

runs-on: ${{ matrix.os }}

permissions:
contents: read
Expand All @@ -89,6 +105,9 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
# Test the latest patch release for entries like "3.11", even when
# the runner has an older patch release cached.
check-latest: true

- name: Install coverage
run: |
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Unreleased

- Drop support for Python 3.9.

# Release 4.16.0 (July 2, 2026)

No user-facing changes since 4.16.0rc2.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.10 and higher. In the future,
support for older Python versions will be dropped some time after that version
reaches end of life.

Expand Down
5 changes: 2 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ 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.10+"
readme = "README.md"
requires-python = ">=3.9"
requires-python = ">=3.10"
license = "PSF-2.0"
license-files = ["LICENSE"]
keywords = [
Expand All @@ -34,7 +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",
Expand Down
Loading