chore: add Python 3.14 and Django 6.0 support

This commit is contained in:
Aleksi Häkli 2025-12-19 21:07:12 +02:00
parent 955f39da73
commit 6866a53728
6 changed files with 31 additions and 20 deletions

View file

@ -21,7 +21,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: 3.9
python-version: 3.12
- name: Install dependencies
run: |

View file

@ -12,23 +12,25 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
django-version: ['4.2', '5.1', '5.2']
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
django-version: ['4.2', '5.2', '6.0']
include:
# Tox configuration for QA environment
- python-version: '3.13'
- python-version: '3.14'
django-version: 'qa'
# Django main
- python-version: '3.13'
- python-version: '3.14'
django-version: 'main'
experimental: true
exclude:
- python-version: '3.13'
django-version: '4.2'
- python-version: '3.9'
django-version: '5.1'
- python-version: '3.9'
django-version: '5.2'
- python-version: '3.10'
django-version: '6.0'
- python-version: '3.11'
django-version: '6.0'
steps:
- uses: actions/checkout@v5

View file

@ -2,6 +2,15 @@
Changes
=======
Not yet released
----------------
- Add Python 3.14 support.
- Add Django 6.0 support.
- Remove Python 3.9 support (EOL).
- Remove Django 5.1 support (EOL).
8.0.0 (2025-05-10)
------------------

View file

@ -1,5 +1,5 @@
[mypy]
python_version = 3.9
python_version = 3.12
ignore_missing_imports = True
[mypy-axes.migrations.*]

View file

@ -10,25 +10,25 @@ DJANGO_SETTINGS_MODULE = "tests.settings"
legacy_tox_ini = """
[tox]
envlist =
py{39,310,311,312}-dj42
py{310,311,312,313}-dj51
py{310,311,312}-dj42
py{310,311,312,313}-dj52
py311-djmain
py311-djqa
py{312,313,314}-dj60
py312-djmain
py312-djqa
[gh-actions]
python =
3.9: py39
3.10: py310
3.11: py311
3.12: py312
3.13: py313
3.14: py314
[gh-actions:env]
DJANGO =
4.2: dj42
5.1: dj51
5.2: dj52
6.0: dj60
main: djmain
qa: djqa
@ -37,8 +37,8 @@ DJANGO =
deps =
-r requirements-test.txt
dj42: django>=4.2,<5
dj51: django>=5.1,<5.2
dj52: django>=5.2,<6
dj60: django>=6.0,<7
djmain: https://github.com/django/django/archive/main.tar.gz
usedevelop = true
commands = pytest
@ -51,10 +51,10 @@ ignore_errors =
djmain: True
# QA runs type checks, linting, and code formatting checks
[testenv:py313-djqa]
[testenv:py312-djqa]
deps = -r requirements-qa.txt
commands =
mypy axes
prospector
black -t py39 --check --diff axes
black -t py312 --check --diff axes
"""

View file

@ -35,7 +35,7 @@ setup(
package_dir={"axes": "axes"},
use_scm_version=True,
setup_requires=["setuptools_scm"],
python_requires=">=3.9",
python_requires=">=3.10",
install_requires=[
"django>=4.2",
"asgiref>=3.6.0",
@ -51,19 +51,19 @@ setup(
"Environment :: Plugins",
"Framework :: Django",
"Framework :: Django :: 4.2",
"Framework :: Django :: 5.1",
"Framework :: Django :: 5.2",
"Framework :: Django :: 6.0",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"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",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Internet :: Log Analysis",
"Topic :: Security",