Skip to content

feat: add Python 3.12 support and drop Python 3.8 - #187

Merged
alenkadev merged 1 commit into
mainfrom
alenka/update-python-version
Sep 30, 2026
Merged

alenkadev merged 1 commit into
mainfrom
alenka/update-python-version

Conversation

@alenkadev

@alenkadev alenkadev commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Upgrade to Python 3.12

Changes

File Change Why
tox.ini envlist = py{311,312}-django{40} New supported versions
.github/workflows/ci.yml Test on 3.11 and 3.12; actions/checkout@v4, actions/setup-python@v5; coverage comment runs on 3.12 New supported versions; actions v2 are outdated
setup.py python_requires>=3.11, classifiers 3.11/3.12 New supported versions
.github/workflows/upgrade-python-requirements.yml python_version: "3.12" Weekly requirements bot compiles with 3.12
.github/workflows/pypi-publish.yml Release on 3.12; bump actions Build with the new version
tox.ini (quality env) Install setuptools Python 3.12 venvs no longer include setuptools, and pylint imports setup.py
requirements/constraints.txt code-annotations<3.0.0 3.0.0 requires Python >=3.12, which would break the py311 env
requirements/*.txt Regenerated with make upgrade on Python 3.12 Pins compiled against the new version
test_sign.py, test_unpack.py test_malformed_token asserts DecodeError pyjwt 2.15 raises DecodeError (the parent of InvalidSignatureError) for a corrupted signature
.readthedocs.yaml, docs/conf.py Python 3.12 (build.tools), intersphinx 3.12 python.version is deprecated; drop 3.8
token_utils/__init__.py, CHANGELOG.rst Version 0.4.0 Release

Testing

  • tox -e py311-django40,py312-django40: 13 passed on each
  • tox -e quality and tox -e pii_check: OK

- tox and CI matrix run on Python 3.11 and 3.12; bump actions/checkout
  to v4 and actions/setup-python to v5
- requirements bot and PyPI publish workflow use Python 3.12
- python_requires >=3.11, classifiers for 3.11 and 3.12
- Read the Docs and intersphinx on Python 3.12
- install setuptools in the quality env (setup.py is linted and 3.12
  venvs no longer bundle setuptools)
- constrain code-annotations<3.0.0, which requires Python >=3.12
- regenerate requirements with `make upgrade` on Python 3.12
- malformed-token tests assert DecodeError: pyjwt 2.15 raises it (the
  parent of InvalidSignatureError) for a corrupted signature
- bump version to 0.4.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  token_utils
  __init__.py
  token_utils/tests
  test_sign.py
  test_unpack.py
Project Total  

This report was generated by python-coverage-comment-action

@alenkadev
alenkadev merged commit f7cc349 into main Sep 30, 2026
7 checks passed
@alenkadev
alenkadev deleted the alenka/update-python-version branch September 30, 2026 05:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants