0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-21 09:59:02 +01:00

Add support for Python 3.13

This commit is contained in:
Matt Westcott 2024-10-10 20:19:28 +01:00 committed by LB (Ben Johnston)
parent a199096af3
commit 27b972d30f
7 changed files with 69 additions and 62 deletions

View File

@ -26,13 +26,13 @@ concurrency:
# - django 5.0, python 3.11, sqlite, WAGTAIL_CHECK_TEMPLATE_NUMBER_FORMAT=1
# - django 5.1, python 3.12, mysql:8.4, parallel, USE_EMAIL_USER_MODEL=yes
# - django 5.1, python 3.12, mariadb:11.4, USE_EMAIL_USER_MODEL=yes
# - django 5.1, python 3.12, sqlite, parallel, USE_EMAIL_USER_MODEL=yes
# - django 5.1, python 3.12, postgres:15, psycopg 3, parallel, DISABLE_TIMEZONE=yes
# - django 5.1, python 3.13, sqlite, parallel, USE_EMAIL_USER_MODEL=yes
# - django 5.1, python 3.13, postgres:15, psycopg 3, parallel, DISABLE_TIMEZONE=yes
# - django stable/5.1.x, python 3.11, postgres:15, psycopg 3 (allow failures)
# - django main, python 3.12, postgres:latest, psycopg 3, parallel (allow failures)
# - django main, python 3.13, postgres:latest, psycopg 3, parallel (allow failures)
# - elasticsearch 7, django 4.2, python 3.9, postgres:latest, psycopg 2
# - opensearch 2, django 5.0, python 3.10, sqlite
# - elasticsearch 8, django 5.1, python 3.12, sqlite, USE_EMAIL_USER_MODEL=yes
# - elasticsearch 8, django 5.1, python 3.13, sqlite, USE_EMAIL_USER_MODEL=yes
# Some tests are run in parallel by passing --parallel to runtests.py.
# When running tests in parallel, some errors cannot be pickled and result in
@ -52,7 +52,7 @@ jobs:
- python: '3.11'
django: 'Django>=5.0,<5.1'
check_template_number_format: '1'
- python: '3.12'
- python: '3.13'
django: 'Django>=5.1,<5.2'
emailuser: emailuser
parallel: '--parallel'
@ -95,7 +95,7 @@ jobs:
psycopg: 'psycopg2>=2.6'
experimental: false
parallel: '--parallel'
- python: '3.12'
- python: '3.13'
django: 'Django>=5.0,<5.1'
psycopg: 'psycopg>=3.1.8'
postgres: 'postgres:15'
@ -107,7 +107,7 @@ jobs:
psycopg: 'psycopg>=3.1.8'
postgres: 'postgres:15'
experimental: true
- python: '3.12'
- python: '3.13'
django: 'git+https://github.com/django/django.git@main#egg=Django'
psycopg: 'psycopg>=3.1.8'
experimental: true
@ -227,7 +227,7 @@ jobs:
strategy:
matrix:
include:
- python: '3.12'
- python: '3.13'
django: 'Django>=5.1,<5.2'
emailuser: emailuser
steps:

View File

@ -16,6 +16,7 @@ Changelog
* Add search and filters to form pages listing (Sage Abdullah)
* Deprecate the `WAGTAIL_AUTO_UPDATE_PREVIEW` setting, use `WAGTAIL_AUTO_UPDATE_PREVIEW_INTERVAL = 0` instead (Sage Abdullah)
* Consistently use `capfirst` for title-casing model verbose names (Sébastien Corbin)
* Add support for Python 3.13 (Matt Westcott)
* Fire `copy_for_translation_done` signal when copying translatable models as well as pages (Coen van der Kamp)
* Fix: Prevent page type business rules from blocking reordering of pages (Andy Babic, Sage Abdullah)
* Fix: Improve layout of object permissions table (Sage Abdullah)

View File

@ -85,7 +85,7 @@ _(If you are reading this on GitHub, the details here may not be indicative of t
Wagtail supports:
- Django 4.2.x, 5.0.x and 5.1.x
- Python 3.9, 3.10, 3.11 and 3.12
- Python 3.9, 3.10, 3.11, 3.12 and 3.13
- PostgreSQL, MySQL, MariaDB and SQLite (with JSON1) as database backends
[Previous versions of Wagtail](https://docs.wagtail.org/en/stable/releases/upgrading.html#compatible-django-python-versions) additionally supported Python 2.7, 3.8 and earlier Django versions.

View File

@ -11,6 +11,10 @@ depth: 1
## What's new
### Python 3.13 support
This release adds formal support for Python 3.13.
### Django 5.1 support
This release adds formal support for Django 5.1.

View File

@ -57,57 +57,57 @@ New feature releases frequently add support for newer versions of Django and Pyt
The compatible versions of Django and Python for each Wagtail release are:
| Wagtail release | Compatible Django versions | Compatible Python versions |
| --------------- | -------------------------- | -------------------------- |
| 6.3 | 4.2, 5.0, 5.1 | 3.9, 3.10, 3.11, 3.12 |
| 6.2 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 6.1 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 6.0 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 5.2 LTS | 3.2, 4.1, 4.2, 5.0[^*] | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 5.1 | 3.2, 4.1, 4.2 | 3.8, 3.9, 3.10, 3.11 |
| 5.0 | 3.2, 4.1, 4.2 | 3.7, 3.8, 3.9, 3.10, 3.11 |
| 4.2 | 3.2, 4.0, 4.1 | 3.7, 3.8, 3.9, 3.10, 3.11 |
| 4.1 LTS | 3.2, 4.0, 4.1 | 3.7, 3.8, 3.9, 3.10, 3.11 |
| 4.0 | 3.2, 4.0, 4.1 | 3.7, 3.8, 3.9, 3.10 |
| 3.0 | 3.2, 4.0 | 3.7, 3.8, 3.9, 3.10 |
| 2.16 | 3.2, 4.0 | 3.7, 3.8, 3.9, 3.10 |
| 2.15 LTS | 3.0, 3.1, 3.2 | 3.6, 3.7, 3.8, 3.9, 3.10 |
| 2.14 | 3.0, 3.1, 3.2 | 3.6, 3.7, 3.8, 3.9 |
| 2.13 | 2.2, 3.0, 3.1, 3.2 | 3.6, 3.7, 3.8, 3.9 |
| 2.12 | 2.2, 3.0, 3.1 | 3.6, 3.7, 3.8, 3.9 |
| 2.11 LTS | 2.2, 3.0, 3.1 | 3.6, 3.7, 3.8 |
| 2.10 | 2.2, 3.0, 3.1 | 3.6, 3.7, 3.8 |
| 2.9 | 2.2, 3.0 | 3.5, 3.6, 3.7, 3.8 |
| 2.8 | 2.1, 2.2, 3.0 | 3.5, 3.6, 3.7, 3.8 |
| 2.7 LTS | 2.0, 2.1, 2.2 | 3.5, 3.6, 3.7, 3.8 |
| 2.6 | 2.0, 2.1, 2.2 | 3.5, 3.6, 3.7 |
| 2.5 | 2.0, 2.1, 2.2 | 3.4, 3.5, 3.6, 3.7 |
| 2.4 | 2.0, 2.1 | 3.4, 3.5, 3.6, 3.7 |
| 2.3 LTS | 1.11, 2.0, 2.1 | 3.4, 3.5, 3.6 |
| 2.2 | 1.11, 2.0 | 3.4, 3.5, 3.6 |
| 2.1 | 1.11, 2.0 | 3.4, 3.5, 3.6 |
| 2.0 | 1.11, 2.0 | 3.4, 3.5, 3.6 |
| 1.13 LTS | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.12 LTS | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.11 | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.10 | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.9 | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.8 LTS | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.7 | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.6 | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.5 | 1.8, 1.9 | 2.7, 3.3, 3.4, 3.5 |
| 1.4 LTS | 1.8, 1.9 | 2.7, 3.3, 3.4, 3.5 |
| 1.3 | 1.7, 1.8, 1.9 | 2.7, 3.3, 3.4, 3.5 |
| 1.2 | 1.7, 1.8 | 2.7, 3.3, 3.4, 3.5 |
| 1.1 | 1.7, 1.8 | 2.7, 3.3, 3.4 |
| 1.0 | 1.7, 1.8 | 2.7, 3.3, 3.4 |
| 0.8 LTS | 1.6, 1.7 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.7 | 1.6, 1.7 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.6 | 1.6, 1.7 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.5 | 1.6 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.4 | 1.6 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.3 | 1.6 | 2.6, 2.7 |
| 0.2 | 1.6 | 2.7 |
| 0.1 | 1.6 | 2.7 |
| Wagtail release | Compatible Django versions | Compatible Python versions |
| --------------- | -------------------------- | --------------------------- |
| 6.3 | 4.2, 5.0, 5.1 | 3.9, 3.10, 3.11, 3.12, 3.13 |
| 6.2 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 6.1 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 6.0 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 5.2 LTS | 3.2, 4.1, 4.2, 5.0[^*] | 3.8, 3.9, 3.10, 3.11, 3.12 |
| 5.1 | 3.2, 4.1, 4.2 | 3.8, 3.9, 3.10, 3.11 |
| 5.0 | 3.2, 4.1, 4.2 | 3.7, 3.8, 3.9, 3.10, 3.11 |
| 4.2 | 3.2, 4.0, 4.1 | 3.7, 3.8, 3.9, 3.10, 3.11 |
| 4.1 LTS | 3.2, 4.0, 4.1 | 3.7, 3.8, 3.9, 3.10, 3.11 |
| 4.0 | 3.2, 4.0, 4.1 | 3.7, 3.8, 3.9, 3.10 |
| 3.0 | 3.2, 4.0 | 3.7, 3.8, 3.9, 3.10 |
| 2.16 | 3.2, 4.0 | 3.7, 3.8, 3.9, 3.10 |
| 2.15 LTS | 3.0, 3.1, 3.2 | 3.6, 3.7, 3.8, 3.9, 3.10 |
| 2.14 | 3.0, 3.1, 3.2 | 3.6, 3.7, 3.8, 3.9 |
| 2.13 | 2.2, 3.0, 3.1, 3.2 | 3.6, 3.7, 3.8, 3.9 |
| 2.12 | 2.2, 3.0, 3.1 | 3.6, 3.7, 3.8, 3.9 |
| 2.11 LTS | 2.2, 3.0, 3.1 | 3.6, 3.7, 3.8 |
| 2.10 | 2.2, 3.0, 3.1 | 3.6, 3.7, 3.8 |
| 2.9 | 2.2, 3.0 | 3.5, 3.6, 3.7, 3.8 |
| 2.8 | 2.1, 2.2, 3.0 | 3.5, 3.6, 3.7, 3.8 |
| 2.7 LTS | 2.0, 2.1, 2.2 | 3.5, 3.6, 3.7, 3.8 |
| 2.6 | 2.0, 2.1, 2.2 | 3.5, 3.6, 3.7 |
| 2.5 | 2.0, 2.1, 2.2 | 3.4, 3.5, 3.6, 3.7 |
| 2.4 | 2.0, 2.1 | 3.4, 3.5, 3.6, 3.7 |
| 2.3 LTS | 1.11, 2.0, 2.1 | 3.4, 3.5, 3.6 |
| 2.2 | 1.11, 2.0 | 3.4, 3.5, 3.6 |
| 2.1 | 1.11, 2.0 | 3.4, 3.5, 3.6 |
| 2.0 | 1.11, 2.0 | 3.4, 3.5, 3.6 |
| 1.13 LTS | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.12 LTS | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.11 | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.10 | 1.8, 1.10, 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 1.9 | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.8 LTS | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.7 | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.6 | 1.8, 1.9, 1.10 | 2.7, 3.3, 3.4, 3.5 |
| 1.5 | 1.8, 1.9 | 2.7, 3.3, 3.4, 3.5 |
| 1.4 LTS | 1.8, 1.9 | 2.7, 3.3, 3.4, 3.5 |
| 1.3 | 1.7, 1.8, 1.9 | 2.7, 3.3, 3.4, 3.5 |
| 1.2 | 1.7, 1.8 | 2.7, 3.3, 3.4, 3.5 |
| 1.1 | 1.7, 1.8 | 2.7, 3.3, 3.4 |
| 1.0 | 1.7, 1.8 | 2.7, 3.3, 3.4 |
| 0.8 LTS | 1.6, 1.7 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.7 | 1.6, 1.7 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.6 | 1.6, 1.7 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.5 | 1.6 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.4 | 1.6 | 2.6, 2.7, 3.2, 3.3, 3.4 |
| 0.3 | 1.6 | 2.6, 2.7 |
| 0.2 | 1.6 | 2.7 |
| 0.1 | 1.6 | 2.7 |
[^*]: Added in a patch release

View File

@ -111,6 +111,7 @@ https://github.com/wagtail/wagtail/.",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Framework :: Django",
"Framework :: Django :: 4.2",
"Framework :: Django :: 5.0",

View File

@ -2,7 +2,7 @@
skipsdist = True
usedevelop = True
envlist = py{39,310,311,312}-dj{42,50,51,51stable,main}-{sqlite,postgres,mysql,mssql}-{elasticsearch8,elasticsearch7,noelasticsearch}-{customuser,emailuser}-{tz,notz},
envlist = py{39,310,311,312,313}-dj{42,50,51,51stable,main}-{sqlite,postgres,mysql,mssql}-{elasticsearch8,elasticsearch7,noelasticsearch}-{customuser,emailuser}-{tz,notz},
[testenv]
install_command = pip install -e ".[testing]" -U {opts} {packages}
@ -16,6 +16,7 @@ basepython =
py310: python3.10
py311: python3.11
py312: python3.12
py313: python3.13
deps =
django-sendfile==0.3.6