Skip to content

Commit 3f9bcea

Browse files
authored
Support Python 3.14, and test against PyPy 3.10+ (#1104)
This introduces the following changes: * tox is configured to test CPython 3.14, PyPy 3.10, and PyPy 3.11. * GitHub CI is configured to install those same interpreter versions. * The PyPI trove classifiers are updated. * The `tests` extra is updated to resolve Python 3.14 failures caused by old pytest code that used now-removed `ast` symbols. (The coverage version is updated as well.)
1 parent e228ec0 commit 3f9bcea

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed

.github/workflows/main.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,16 @@ jobs:
1919
fail-fast: false
2020
matrix:
2121
platform: ["ubuntu-latest", "windows-latest"]
22-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "pypy3.9"]
22+
python-version:
23+
- "3.9"
24+
- "3.10"
25+
- "3.11"
26+
- "3.12"
27+
- "3.13"
28+
- "3.14"
29+
- "pypy3.9"
30+
- "pypy3.10"
31+
- "pypy3.11"
2332

2433
steps:
2534
- uses: "actions/checkout@v5"

CHANGELOG.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Fixed
2020
Added
2121
~~~~~
2222

23+
- Support Python 3.14, and test against PyPy 3.10 and 3.11 by @kurtmckee in `#1104 <https://github.com/jpadilla/pyjwt/pull/1104>`__
2324
- Docs: Add example of using leeway with nbf by @djw8605 in `#1034 <https://github.com/jpadilla/pyjwt/pull/1034>`__
2425
- Docs: Refactored docs with ``autodoc``; added ``PyJWS`` and ``jwt.algorithms`` docs by @pachewise in `#1045 <https://github.com/jpadilla/pyjwt/pull/1045>`__
2526
- Docs: Documentation improvements for "sub" and "jti" claims by @cleder in `#1088 <https://github.com/jpadilla/pyjwt/pull/1088>`

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ classifiers = [
2020
"Programming Language :: Python :: 3.11",
2121
"Programming Language :: Python :: 3.12",
2222
"Programming Language :: Python :: 3.13",
23+
"Programming Language :: Python :: 3.14",
2324
"Topic :: Utilities",
2425
]
2526
description = "JSON Web Token implementation in Python"
@@ -57,8 +58,8 @@ docs = [
5758
"zope.interface",
5859
]
5960
tests = [
60-
"coverage[toml]==5.0.4",
61-
"pytest>=6.0.0,<7.0.0",
61+
"coverage[toml]==7.10.7",
62+
"pytest>=8.4.2,<9.0.0",
6263
]
6364

6465
[project.readme]

tox.ini

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@ python =
1717
3.11: py311, docs
1818
3.12: py312
1919
3.13: py313
20-
pypy3.9: pypy3
20+
3.14: py314
21+
pypy3.9: pypy39
22+
pypy3.10: pypy310
23+
pypy3.11: pypy311
2124

2225

2326
[tox]
2427
envlist =
2528
lint
2629
typing
27-
py{39,310,311,312,313,py3}-{crypto,nocrypto}
30+
py{39,310,311,312,313,314,py39,py310,py311}-{crypto,nocrypto}
2831
docs
2932
pypi-description
3033
coverage-report
@@ -75,7 +78,7 @@ commands =
7578
[testenv:coverage-report]
7679
basepython = python3.9
7780
skip_install = true
78-
deps = coverage[toml]==5.0.4
81+
deps = coverage[toml]==7.10.7
7982
commands =
8083
coverage combine
8184
coverage report

0 commit comments

Comments
 (0)