From b0c94efc45ce8fbe10d544a1ac8b48e150125aee Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Sep 2025 09:55:42 +0200 Subject: [PATCH 1/3] Add Python 3.14 to CI workflow matrix Python v3.14 -- October 7th * https://www.python.org/download/pre-releases * https://www.python.org/downloads/release/python-3140rc3 * https://docs.python.org/3.14/whatsnew/3.14.html * https://code.djangoproject.com/ticket/35844 > Django 5.2 will be the first version to support Python 3.14 --- .github/workflows/test.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cfa1236a5..63cbb46e4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] services: mariadb: @@ -73,25 +73,25 @@ jobs: fail-fast: false max-parallel: 5 matrix: - # Skip 3.13 here, it needs the psycopg3 / postgis3 database - python-version: ['3.9', '3.10', '3.11', '3.12'] - database: [postgresql, postgis] - # Add psycopg3 to our matrix for modern python versions - include: - - python-version: '3.10' - database: psycopg3 - - python-version: '3.11' - database: psycopg3 - - python-version: '3.12' - database: psycopg3 - - python-version: '3.13' + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + database: [postgresql, postgis, psycopg3] + exclude: + - python-version: '3.9' database: psycopg3 + # Add postgis3 to our matrix for modern Python versions + include: - python-version: '3.13' database: postgis3 - python-version: '3.13' database: psycopg3 env: DJANGO_SELENIUM_TESTS=true + - python-version: '3.14' + database: postgis3 + - python-version: '3.14' + database: psycopg3 + env: + DJANGO_SELENIUM_TESTS=true services: postgres: @@ -155,7 +155,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v5 From d83004bcdb70275cbfcba3702b247782145050ec Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Sep 2025 09:59:32 +0200 Subject: [PATCH 2/3] tox.ini: Add py314 --- tox.ini | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tox.ini b/tox.ini index 7e7047717..39f2adc9e 100644 --- a/tox.ini +++ b/tox.ini @@ -6,6 +6,7 @@ envlist = py{39,310,311,312}-dj{42}-{sqlite,postgresql,postgis,mysql} py{310,311,312}-dj{42,50,51,52}-{sqlite,postgresql,psycopg3,postgis,mysql} py{313}-dj{51,52,main}-{sqlite,psycopg3,postgis3,mysql} + py{314}-dj{52,main}-{sqlite,psycopg3,postgis3,mysql} [testenv] deps = @@ -52,28 +53,28 @@ pip_pre = True commands = python -b -W always -m coverage run -m django test -v2 {posargs:tests} -[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-{postgresql,psycopg3}] +[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-{postgresql,psycopg3}] setenv = {[testenv]setenv} DB_BACKEND = postgresql DB_PORT = {env:DB_PORT:5432} -[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-{postgis,postgis3}] +[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-{postgis,postgis3}] setenv = {[testenv]setenv} DB_BACKEND = postgis DB_PORT = {env:DB_PORT:5432} -[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-mysql] +[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-mysql] setenv = {[testenv]setenv} DB_BACKEND = mysql DB_PORT = {env:DB_PORT:3306} -[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-sqlite] +[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-sqlite] setenv = {[testenv]setenv} DB_BACKEND = sqlite3 @@ -103,6 +104,7 @@ python = 3.11: py311 3.12: py312 3.13: py313 + 3.14: py314 [gh-actions:env] DB_BACKEND = From 52c48778e9cc1ba3cc74c5f31635c82e044d0dbb Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Sep 2025 10:13:58 +0200 Subject: [PATCH 3/3] Update test matrix to exclude Python 3.13 and 3.14 --- .github/workflows/test.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 63cbb46e4..d17b6d23b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -78,6 +78,14 @@ jobs: exclude: - python-version: '3.9' database: psycopg3 + - python-version: '3.13' + database: postgis + - python-version: '3.13' + database: postgresql + - python-version: '3.14' + database: postgis + - python-version: '3.14' + database: postgresql # Add postgis3 to our matrix for modern Python versions include: - python-version: '3.13'