diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3e6e6a44bf..ee5eb6dcd0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,16 +21,16 @@ concurrency: # Current configuration: # - django 4.2, python 3.9, postgres:12, parallel -# - django 4.2, python 3.9, mysql:8.0 -# - django 4.2, python 3.10, sqlite -# - django 5.0, python 3.12, mysql:8.1, parallel -# - django 5.0, python 3.11, postgres:12, parallel, USE_EMAIL_USER_MODEL=yes -# - django 5.0, python 3.12, postgres:15, parallel, DISABLE_TIMEZONE=yes +# - django 4.2, python 3.10, mysql:8.0 +# - django 5.0, python 3.11, sqlite +# - django 5.1, python 3.12, mysql:8.1, parallel +# - django 5.1, python 3.12, sqlite, parallel, USE_EMAIL_USER_MODEL=yes +# - django 5.1, python 3.12, postgres:15, parallel, DISABLE_TIMEZONE=yes # - django stable/5.1.x, python 3.11, postgres:15 (allow failures) # - django main, python 3.12, postgres:latest, parallel (allow failures) # - elasticsearch 7, django 4.2, python 3.9, postgres:latest -# - opensearch 2, django 4.2, python 3.9, sqlite -# - elasticsearch 8, django 5.0, python 3.11, sqlite, USE_EMAIL_USER_MODEL=yes +# - opensearch 2, django 5.0, python 3.10, sqlite +# - elasticsearch 8, django 5.1, python 3.12, 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 @@ -47,8 +47,12 @@ jobs: strategy: matrix: include: - - python: '3.10' - django: 'Django>=4.2,<4.3' + - python: '3.11' + django: 'Django>=5.0,<5.1' + - python: '3.12' + django: 'Django>=5.1,<5.2' + emailuser: emailuser + parallel: '--parallel' steps: - uses: actions/checkout@v3 @@ -65,9 +69,10 @@ jobs: - name: Test run: | WAGTAIL_FAIL_ON_VERSIONED_STATIC=1 DJANGO_SETTINGS_MODULE=wagtail.test.settings django-admin check - coverage run --parallel-mode --source wagtail runtests.py + coverage run --parallel-mode --source wagtail runtests.py ${{ matrix.parallel }} env: DATABASE_ENGINE: django.db.backends.sqlite3 + USE_EMAIL_USER_MODEL: ${{ matrix.emailuser }} - name: Upload coverage data uses: actions/upload-artifact@v3 with: @@ -84,11 +89,6 @@ jobs: django: 'Django>=4.2,<4.3' experimental: false parallel: '--parallel' - - python: '3.11' - django: 'Django>=5.0,<5.1' - experimental: false - emailuser: emailuser - parallel: '--parallel' - python: '3.12' django: 'Django>=5.0,<5.1' postgres: 'postgres:15' @@ -150,11 +150,11 @@ jobs: strategy: matrix: include: - - python: '3.9' + - python: '3.10' django: 'Django>=4.2,<4.3' experimental: false - python: '3.12' - django: 'Django>=5.0,<5.1' + django: 'Django>=5.1,<5.2' experimental: false parallel: '--parallel' mysql: 'mysql:8.1' @@ -200,8 +200,8 @@ jobs: strategy: matrix: include: - - python: '3.11' - django: 'Django>=5.0,<5.1' + - python: '3.12' + django: 'Django>=5.1,<5.2' emailuser: emailuser steps: - name: Configure sysctl limits @@ -307,8 +307,8 @@ jobs: strategy: matrix: include: - - python: '3.9' - django: 'Django>=4.2,<4.3' + - python: '3.10' + django: 'Django>=5.0,<5.1' experimental: false steps: diff --git a/CHANGELOG.txt b/CHANGELOG.txt index ccc766ac6d..fd00b9195c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ Changelog 6.3 (xx.xx.xxxx) - IN DEVELOPMENT ~~~~~~~~~~~~~~~~ + * Add formal support for Django 5.1 (Matt Westcott) * Redirect to the last viewed listing page after deleting form submissions (Matthias Brück) * Provide `getTextLabel` method on date / time StreamField blocks (Vaughn Dickson) * Purge frontend cache when modifying redirects (Jake Howard) diff --git a/README.md b/README.md index c40fa385eb..036ffd9e9f 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ _(If you are reading this on GitHub, the details here may not be indicative of t Wagtail supports: -- Django 4.2.x and 5.0.x +- Django 4.2.x, 5.0.x and 5.1.x - Python 3.9, 3.10, 3.11 and 3.12 - PostgreSQL, MySQL and SQLite (with JSON1) as database backends diff --git a/docs/getting_started/integrating_into_django.md b/docs/getting_started/integrating_into_django.md index e16417e4c8..9ac93826db 100644 --- a/docs/getting_started/integrating_into_django.md +++ b/docs/getting_started/integrating_into_django.md @@ -6,7 +6,7 @@ Wagtail provides the `wagtail start` command and project template to get you sta We highly recommend working through the [Getting Started tutorial](tutorial), even if you are not planning to create a standalone Wagtail project. This will ensure you have a good understanding of Wagtail concepts. ``` -Wagtail is currently compatible with Django 4.2 and 5.0. First, install the `wagtail` package from PyPI: +Wagtail is currently compatible with Django 4.2, 5.0 and 5.1. First, install the `wagtail` package from PyPI: ```sh pip install wagtail diff --git a/docs/releases/6.3.md b/docs/releases/6.3.md index 407f91ca80..2c3e5397dc 100644 --- a/docs/releases/6.3.md +++ b/docs/releases/6.3.md @@ -11,6 +11,10 @@ depth: 1 ## What's new +### Django 5.1 support + +This release adds formal support for Django 5.1. + ### Other features * Redirect to the last viewed listing page after deleting form submissions (Matthias Brück) diff --git a/docs/releases/upgrading.md b/docs/releases/upgrading.md index ad8c923cc8..2753f6fb7e 100644 --- a/docs/releases/upgrading.md +++ b/docs/releases/upgrading.md @@ -59,7 +59,7 @@ 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 | 3.9, 3.10, 3.11, 3.12 | +| 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 | diff --git a/setup.py b/setup.py index 8b6d5562ce..ee4d793670 100755 --- a/setup.py +++ b/setup.py @@ -114,6 +114,7 @@ https://github.com/wagtail/wagtail/.", "Framework :: Django", "Framework :: Django :: 4.2", "Framework :: Django :: 5.0", + "Framework :: Django :: 5.1", "Framework :: Wagtail", "Topic :: Internet :: WWW/HTTP :: Site Management", ], diff --git a/tox.ini b/tox.ini index bb276aa83c..0f8ffe5fb4 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ skipsdist = True usedevelop = True -envlist = py{39,310,311,312}-dj{42,50,50stable,main}-{sqlite,postgres,mysql,mssql}-{elasticsearch8,elasticsearch7,noelasticsearch}-{customuser,emailuser}-{tz,notz}, +envlist = py{39,310,311,312}-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} @@ -23,7 +23,8 @@ deps = dj42: Django~=4.2.0 dj50: Django~=5.0.0 - dj50stable: git+https://github.com/django/django.git@stable/5.0.x#egg=Django + dj51: Django~=5.1.0 + dj51stable: git+https://github.com/django/django.git@stable/5.1.x#egg=Django djmain: git+https://github.com/django/django.git@main#egg=Django postgres: psycopg2>=2.6 diff --git a/wagtail/project_template/requirements.txt b/wagtail/project_template/requirements.txt index 998bd1b2f8..5fcde33aa5 100644 --- a/wagtail/project_template/requirements.txt +++ b/wagtail/project_template/requirements.txt @@ -1,2 +1,2 @@ -Django>=4.2,<5.1 +Django>=5.1,<5.2 wagtail==6.3a0