Skip to content

Commit 11a60fb

Browse files
authored
Add Python 3.14 to CI workflow matrix (#2208)
* 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 * tox.ini: Add py314 * Update test matrix to exclude Python 3.13 and 3.14
1 parent 0c81176 commit 11a60fb

File tree

2 files changed

+27
-17
lines changed

2 files changed

+27
-17
lines changed

.github/workflows/test.yml

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
max-parallel: 5
1616
matrix:
17-
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
17+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
1818

1919
services:
2020
mariadb:
@@ -73,25 +73,33 @@ jobs:
7373
fail-fast: false
7474
max-parallel: 5
7575
matrix:
76-
# Skip 3.13 here, it needs the psycopg3 / postgis3 database
77-
python-version: ['3.9', '3.10', '3.11', '3.12']
78-
database: [postgresql, postgis]
79-
# Add psycopg3 to our matrix for modern python versions
80-
include:
81-
- python-version: '3.10'
82-
database: psycopg3
83-
- python-version: '3.11'
84-
database: psycopg3
85-
- python-version: '3.12'
76+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
77+
database: [postgresql, postgis, psycopg3]
78+
exclude:
79+
- python-version: '3.9'
8680
database: psycopg3
8781
- python-version: '3.13'
88-
database: psycopg3
82+
database: postgis
83+
- python-version: '3.13'
84+
database: postgresql
85+
- python-version: '3.14'
86+
database: postgis
87+
- python-version: '3.14'
88+
database: postgresql
89+
# Add postgis3 to our matrix for modern Python versions
90+
include:
8991
- python-version: '3.13'
9092
database: postgis3
9193
- python-version: '3.13'
9294
database: psycopg3
9395
env:
9496
DJANGO_SELENIUM_TESTS=true
97+
- python-version: '3.14'
98+
database: postgis3
99+
- python-version: '3.14'
100+
database: psycopg3
101+
env:
102+
DJANGO_SELENIUM_TESTS=true
95103

96104
services:
97105
postgres:
@@ -155,7 +163,7 @@ jobs:
155163
fail-fast: false
156164
max-parallel: 5
157165
matrix:
158-
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
166+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
159167

160168
steps:
161169
- uses: actions/checkout@v5

tox.ini

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ envlist =
66
py{39,310,311,312}-dj{42}-{sqlite,postgresql,postgis,mysql}
77
py{310,311,312}-dj{42,50,51,52}-{sqlite,postgresql,psycopg3,postgis,mysql}
88
py{313}-dj{51,52,main}-{sqlite,psycopg3,postgis3,mysql}
9+
py{314}-dj{52,main}-{sqlite,psycopg3,postgis3,mysql}
910

1011
[testenv]
1112
deps =
@@ -52,28 +53,28 @@ pip_pre = True
5253
commands = python -b -W always -m coverage run -m django test -v2 {posargs:tests}
5354

5455

55-
[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-{postgresql,psycopg3}]
56+
[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-{postgresql,psycopg3}]
5657
setenv =
5758
{[testenv]setenv}
5859
DB_BACKEND = postgresql
5960
DB_PORT = {env:DB_PORT:5432}
6061

6162

62-
[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-{postgis,postgis3}]
63+
[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-{postgis,postgis3}]
6364
setenv =
6465
{[testenv]setenv}
6566
DB_BACKEND = postgis
6667
DB_PORT = {env:DB_PORT:5432}
6768

6869

69-
[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-mysql]
70+
[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-mysql]
7071
setenv =
7172
{[testenv]setenv}
7273
DB_BACKEND = mysql
7374
DB_PORT = {env:DB_PORT:3306}
7475

7576

76-
[testenv:py{39,310,311,312,313}-dj{42,50,51,52,main}-sqlite]
77+
[testenv:py{39,310,311,312,313,314}-dj{42,50,51,52,main}-sqlite]
7778
setenv =
7879
{[testenv]setenv}
7980
DB_BACKEND = sqlite3
@@ -103,6 +104,7 @@ python =
103104
3.11: py311
104105
3.12: py312
105106
3.13: py313
107+
3.14: py314
106108

107109
[gh-actions:env]
108110
DB_BACKEND =

0 commit comments

Comments
 (0)