diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 70a19a34..c8a1a3da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -90,19 +90,27 @@ jobs: python: '3.14' allow_failure: true + - name: py314t-djmain-postgres-xdist-coverage + python: '3.14t' + allow_failure: true + - name: py314-dj60-postgres-xdist-coverage python: '3.14' allow_failure: false + - name: py314t-dj60-postgres-xdist-coverage + python: '3.14t' + allow_failure: false + - name: py314-dj52-postgres-xdist-coverage python: '3.14' allow_failure: false - - name: py313-dj52-postgres-xdist-coverage - python: '3.13' + - name: py314t-dj52-postgres-xdist-coverage + python: '3.14t' allow_failure: false - - name: py313-dj51-postgres-xdist-coverage + - name: py313-dj52-postgres-xdist-coverage python: '3.13' allow_failure: false @@ -122,18 +130,10 @@ jobs: python: '3.10' allow_failure: false - - name: py310-dj51-postgres-xdist-coverage - python: '3.10' - allow_failure: false - - name: py310-dj42-postgres-xdist-coverage python: '3.10' allow_failure: false - - name: py311-dj51-mysql-coverage - python: '3.11' - allow_failure: false - - name: py310-dj42-mysql-coverage python: '3.10' allow_failure: false @@ -150,10 +150,6 @@ jobs: python: '3.13' allow_failure: false - - name: py312-dj51-sqlite-xdist-coverage - python: '3.12' - allow_failure: false - - name: py311-dj42-sqlite-xdist-coverage python: '3.11' allow_failure: false diff --git a/docs/changelog.rst b/docs/changelog.rst index 3fd8a069..2962ab30 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -7,7 +7,8 @@ v4.12.0 (2026-02-14) Compatibility ^^^^^^^^^^^^^ -* Official Python 3.14 support. +* Official Python 3.14 support (with free threading support). +* Dropped support for Django 5.1 * Dropped support for Python 3.9, minimum version is now Python 3.10. * Official Django 6.0 support. diff --git a/docs/contributing.rst b/docs/contributing.rst index 897d4ae0..06fd6064 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -140,9 +140,9 @@ writing), running them all will take a long time. All valid configurations can be found in `tox.ini`. To test against a few of them, invoke tox with the `-e` flag:: - $ tox -e py39-dj42-postgres,py310-dj52-mysql + $ tox -e py314-dj60-postgres,py310-dj52-mysql -This will run the tests on Python 3.9/Django 4.2/PostgeSQL and Python +This will run the tests on Python 3.14/Django 6.0/PostgeSQL and Python 3.10/Django 5.2/MySQL. diff --git a/pyproject.toml b/pyproject.toml index d63f93d1..02cf0b22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,6 @@ classifiers = [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Framework :: Django :: 4.2", - "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", "Framework :: Django :: 6.0", "Intended Audience :: Developers", @@ -56,7 +55,7 @@ coverage = [ "coverage-enable-subprocess", ] postgres = [ - "psycopg[binary]", + "psycopg", ] mysql = [ "mysqlclient==2.2.7", diff --git a/tox.ini b/tox.ini index 4089cdbe..6ad5b7a4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,10 @@ [tox] envlist = - py314-dj{main,60,52,51}-postgres - py313-dj{main,60,52,51}-postgres - py312-dj{main,60,52,51,42}-postgres - py311-dj{52,51,42}-postgres - py310-dj{52,51,42}-postgres + py314{t}-dj{main,60,52}-postgres + py313-dj{main,60,52}-postgres + py312-dj{main,60,52,42}-postgres + py311-dj{52,42}-postgres + py310-dj{52,42}-postgres linting [testenv] @@ -18,7 +18,6 @@ deps = djmain: https://github.com/django/django/archive/main.tar.gz dj60: Django>=6.0a1,<6.1 dj52: Django>=5.2a1,<6.0 - dj51: Django>=5.1,<5.2 dj42: Django>=4.2,<4.3 pytestmin: pytest>=7.0,<7.1