diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3e019d52d..47a05235f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.10' + python-version: '3.12' - name: Install dependencies run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9bc84d205..dda14e091 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,14 +15,24 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.10', '3.11', '3.12', '3.13'] - django-version: ['4.2', '5.0', '5.1', '5.2'] - drf-version: ['3.14', '3.15'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] + django-version: ['4.2', '5.0', '5.1', '5.2', '6.0'] + drf-version: ['3.14', '3.15', '3.16'] exclude: - drf-version: '3.14' django-version: '5.0' - drf-version: '3.14' django-version: '5.1' + - python-version: '3.14' + django-version: '4.2' + - python-version: '3.14' + django-version: '5.0' + - python-version: '3.14' + django-version: '5.1' + - python-version: '3.11' + django-version: '6.0' + - python-version: '3.10' + django-version: '6.0' steps: - uses: actions/checkout@v5 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cdabffe1e..3ee9b9c3f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -48,7 +48,7 @@ repos: - id: detect-private-key exclude: ^tests/ - repo: https://github.com/asottile/pyupgrade - rev: 'v3.20.0' + rev: 'v3.21.2' hooks: - id: pyupgrade args: ['--py310-plus', '--keep-mock'] diff --git a/docs/conf.py b/docs/conf.py index f8efc6b2f..ea281e3c6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -from pkg_resources import get_distribution +from importlib.metadata import version # -- General configuration ------------------------------------------------ @@ -80,7 +80,7 @@ def django_configure(): # built documents. # # The full version, including alpha/beta/rc tags. -release = get_distribution("djangorestframework_simplejwt").version +release = version("djangorestframework_simplejwt") # The short X.Y version. version = ".".join(release.split(".")[:2]) diff --git a/setup.py b/setup.py index 06532bb81..7d320e01d 100755 --- a/setup.py +++ b/setup.py @@ -81,6 +81,7 @@ "Framework :: Django :: 5.0", "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", + "Framework :: Django :: 6.0", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", @@ -90,6 +91,7 @@ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Internet :: WWW/HTTP", ], ) diff --git a/tox.ini b/tox.ini index eff0e1d83..2012289c9 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,8 @@ envlist= py{310,311,312}-dj42-drf{314,315}-pyjwt{171,2}-tests py{310,311,312}-dj50-drf315-pyjwt{171,2}-tests - py{310,311,312,313}-dj51-drf315-pyjwt{171,2}-tests - py{311,312,313}-dj52-drf315-pyjwt{171,2}-tests + py{310,311,312,313}-dj{51,52}-drf{315,316}-pyjwt{171,2}-tests + py314-dj{52,60}-drf{315,316}-pyjwt{171,2}-tests docs [gh-actions] @@ -12,6 +12,7 @@ python= 3.11: py311 3.12: py312, docs 3.13: py313 + 3.14: py314 [gh-actions:env] DJANGO= @@ -19,9 +20,11 @@ DJANGO= 5.0: dj50 5.1: dj51 5.2: dj52 + 6.0: dj60 DRF= 3.14: drf314 3.15: drf315 + 3.16: drf316 [testenv] commands = pytest {posargs:tests} --cov-append --cov-report=xml --cov=rest_framework_simplejwt @@ -35,8 +38,10 @@ deps= dj50: Django>=5.0,<5.1 dj51: Django>=5.1,<5.2 dj52: Django>=5.2,<5.3 + dj60: Django>=6.0,<6.1 drf314: djangorestframework>=3.14,<3.15 drf315: djangorestframework>=3.15,<3.16 + drf316: djangorestframework>=3.16,<3.17 pyjwt171: pyjwt>=1.7.1,<1.8 pyjwt2: pyjwt>=2,<3 allowlist_externals=make