From f67b473b0c198da20586d1e2f6d10bd9233f0b2a Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:02:35 +0100 Subject: [PATCH 1/9] Update classifiers in pyproject.toml Removed Django 5.1 classifier and added Free Threading support. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d63f93d1..c80276c1 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", @@ -34,6 +33,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: Free Threading", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Testing", From 9df992d4c21f44e6eda4c867739fefae23408197 Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:11:32 +0100 Subject: [PATCH 2/9] Updates --- .github/workflows/main.yml | 16 ---------------- docs/contributing.rst | 4 ++-- pyproject.toml | 1 - tox.ini | 11 +++++------ 4 files changed, 7 insertions(+), 25 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 70a19a34..0cb9b7f9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -102,10 +102,6 @@ jobs: python: '3.13' allow_failure: false - - name: py313-dj51-postgres-xdist-coverage - python: '3.13' - allow_failure: false - - name: py312-dj60-postgres-xdist-coverage python: '3.12' allow_failure: false @@ -122,18 +118,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 +138,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/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 c80276c1..4e196b0d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,6 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", - "Programming Language :: Python :: Free Threading", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Testing", diff --git a/tox.ini b/tox.ini index 4089cdbe..8bde05ae 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-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 From b3e75b1b7747405341171b6a0ae1f4d6a2f18cc3 Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:15:31 +0100 Subject: [PATCH 3/9] Adds free threaded python --- .github/workflows/main.yml | 12 ++++++++++++ tox.ini | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0cb9b7f9..c8a1a3da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -90,14 +90,26 @@ 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: py314t-dj52-postgres-xdist-coverage + python: '3.14t' + allow_failure: false + - name: py313-dj52-postgres-xdist-coverage python: '3.13' allow_failure: false diff --git a/tox.ini b/tox.ini index 8bde05ae..6ad5b7a4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - py314-dj{main,60,52}-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 From f3848a52a671d5c09eb0dfad72a815dfb8c0024e Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:20:58 +0100 Subject: [PATCH 4/9] Python based postgres! --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4e196b0d..02cf0b22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,7 +55,7 @@ coverage = [ "coverage-enable-subprocess", ] postgres = [ - "psycopg[binary]", + "psycopg", ] mysql = [ "mysqlclient==2.2.7", From 39b99d613a242116907f8ceb5942a6ab09519ebc Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:32:06 +0100 Subject: [PATCH 5/9] Updat e e docsk --- .github/workflows/main.yml | 4 +--- docs/changelog.rst | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c8a1a3da..f44d8ce5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -88,9 +88,7 @@ jobs: - name: py314-djmain-postgres-xdist-coverage python: '3.14' - allow_failure: true - - - name: py314t-djmain-postgres-xdist-coverage + allow_f - name: py314t-djmain-postgres-xdist-coverage python: '3.14t' allow_failure: true diff --git a/docs/changelog.rst b/docs/changelog.rst index 5a83b61e..25d20ee6 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -7,7 +7,8 @@ v4.12.0 (Not released yet) 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. From 7ae9647a5cfe2db6793f1c34fa8763b4326ce9cc Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:33:34 +0100 Subject: [PATCH 6/9] Web editor crapped out. --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f44d8ce5..c8a1a3da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -88,7 +88,9 @@ jobs: - name: py314-djmain-postgres-xdist-coverage python: '3.14' - allow_f - name: py314t-djmain-postgres-xdist-coverage + allow_failure: true + + - name: py314t-djmain-postgres-xdist-coverage python: '3.14t' allow_failure: true From 2254af91cd2d0cb30be0a21a706a56e3bec4ca05 Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:34:47 +0100 Subject: [PATCH 7/9] Set allow_failure to false for several jobs --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c8a1a3da..4bb1fc86 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -88,11 +88,11 @@ jobs: - name: py314-djmain-postgres-xdist-coverage python: '3.14' - allow_failure: true + allow_failure: false - name: py314t-djmain-postgres-xdist-coverage python: '3.14t' - allow_failure: true + allow_failure: false - name: py314-dj60-postgres-xdist-coverage python: '3.14' @@ -140,7 +140,7 @@ jobs: - name: py313-djmain-sqlite-coverage python: '3.13' - allow_failure: true + allow_failure: false - name: py313-dj60-sqlite-coverage python: '3.13' From 51183cd533de281f952bc171b59254e501264009 Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:38:16 +0100 Subject: [PATCH 8/9] The main django branch "CAN" fail --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4bb1fc86..f2147c4d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -88,11 +88,11 @@ jobs: - name: py314-djmain-postgres-xdist-coverage python: '3.14' - allow_failure: false + allow_failure: true - name: py314t-djmain-postgres-xdist-coverage python: '3.14t' - allow_failure: false + allow_failure: true - name: py314-dj60-postgres-xdist-coverage python: '3.14' From c6e128ceaa4ee3e695fad3b891e563d85b3f1de1 Mon Sep 17 00:00:00 2001 From: Javier Buzzi Date: Tue, 10 Feb 2026 10:39:16 +0100 Subject: [PATCH 9/9] Change allow_failure to true for py313-djmain-sqlite-coverage --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f2147c4d..c8a1a3da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -140,7 +140,7 @@ jobs: - name: py313-djmain-sqlite-coverage python: '3.13' - allow_failure: false + allow_failure: true - name: py313-dj60-sqlite-coverage python: '3.13'