Wagtail 7.4 Maintenance#276
Conversation
Wagtail 7.3 (migration wagtailcore.0094_alter_page_locale) tightened Page.locale_id to NOT NULL without a default, so fixtures that omit the locale fail to load with an IntegrityError. Point each page at the default Locale row created by wagtailcore migrations. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Update the supported Wagtail range to 7.0–7.4 LTS following the current Wagtail support window, and add Django 6.0 to the matrix. - Bump Wagtail lower bound to 7.0; drop the Wagtail 6 classifier - Expand tox matrix to cover Wagtail 7.0/7.1/7.2/7.3/7.4 and Django 6.0 - Remove legacy file/thumbnail templates and the wagtail_version_gte template tag, which only existed to support Wagtail < 6.0 - Inline now-always-true WAGTAIL_VERSION guards in tests Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Bump pre-commit-hooks to v6.0.0 and ruff to 0.15.13 - Bump testing/linting extras lower bounds (coverage, tox, pre-commit) - Bump actions/setup-python to v6 and actions/upload-artifact to v5 across workflows; align actions/checkout to v5 in nightly tests Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| - Support for Wagtail 7.2, 7.3, and 7.4 LTS | ||
| - Support for Django 6.0 | ||
| - Support for Python 3.14 |
There was a problem hiding this comment.
as in the other repose, please combine into one line
| dependencies = [ | ||
| "Wagtail>=6.3", | ||
| "Wagtail>=7.0", | ||
| "Django>=4.2", |
There was a problem hiding this comment.
we are good to ask for min. Django 5.2
| wagtail71: wagtail>=7.1,<7.2 | ||
| wagtail72: wagtail>=7.2,<7.3 |
There was a problem hiding this comment.
| wagtail71: wagtail>=7.1,<7.2 | |
| wagtail72: wagtail>=7.2,<7.3 |
| dj42: Django>=4.2,<5.0 | ||
| dj51: Django>=5.1,<5.2 |
There was a problem hiding this comment.
| dj42: Django>=4.2,<5.0 | |
| dj51: Django>=5.1,<5.2 |
| python{3.10,3.12}-dj42-wagtail{70,71,72,73} | ||
| python{3.13}-dj{51,52}-wagtail{70,71,72,73} | ||
| python{3.13}-dj52-wagtail74 | ||
| python{3.14}-dj{52,60}-wagtail{72,73,74} |
There was a problem hiding this comment.
| python{3.10,3.12}-dj42-wagtail{70,71,72,73} | |
| python{3.13}-dj{51,52}-wagtail{70,71,72,73} | |
| python{3.13}-dj52-wagtail74 | |
| python{3.14}-dj{52,60}-wagtail{72,73,74} | |
| python{3.10}-dj{52}-wagtail{70,73} | |
| python{3.13,3.14}-dj{52,60}-wagtail74 |
zerolab
left a comment
There was a problem hiding this comment.
Thank you for this.
Left a few comment with things to address
| - Support for Wagtail 7.2, 7.3, and 7.4 LTS | ||
| - Support for Django 6.0 | ||
| - Support for Python 3.14 |
There was a problem hiding this comment.
grumble, grumble - please compact this
|
|
||
|
|
||
| # TODO: Remove once support for Wagtail < 4.1 is dropped | ||
| @override_settings(WAGTAIL_USAGE_COUNT_ENABLED=True) |
There was a problem hiding this comment.
this is also relevant to my prev comment around removing override_settings
| python{3.10,3.12}-dj42-wagtail{70,71,72,73} | ||
| python{3.13}-dj{51,52}-wagtail{70,71,72,73} | ||
| python{3.13}-dj52-wagtail74 | ||
| python{3.14}-dj{52,60}-wagtail{72,73,74} |
There was a problem hiding this comment.
| python{3.10,3.12}-dj42-wagtail{70,71,72,73} | |
| python{3.13}-dj{51,52}-wagtail{70,71,72,73} | |
| python{3.13}-dj52-wagtail74 | |
| python{3.14}-dj{52,60}-wagtail{72,73,74} | |
| python{3.11}-dj52-wagtail70 | |
| python{3.12}-dj52-wagtail73 | |
| python{3.13}-dj52-wagtail74 | |
| python{3.14}-dj{52,60}-wagtail{74} |
| wagtail71: wagtail>=7.1,<7.2 | ||
| wagtail72: wagtail>=7.2,<7.3 |
There was a problem hiding this comment.
| wagtail71: wagtail>=7.1,<7.2 | |
| wagtail72: wagtail>=7.2,<7.3 |
| dj42: Django>=4.2,<5.0 | ||
| dj51: Django>=5.1,<5.2 |
There was a problem hiding this comment.
| dj42: Django>=4.2,<5.0 | |
| dj51: Django>=5.1,<5.2 |
| - Python (3.10, 3.11, 3.12, 3.13, 3.14) | ||
| - Django (4.2, 5.1, 5.2) | ||
| - Wagtail (6.3, 7.0, 7.2) | ||
| - Django (4.2, 5.1, 5.2, 6.0) |
There was a problem hiding this comment.
| - Django (4.2, 5.1, 5.2, 6.0) | |
| - Django (5.2, 6.0) |
|
Thanks @zerolab I have applied the changes now. |
Summary
Modernise wagtailmedia against the current Wagtail / Django / Python support matrices, retrieved 2026-05-14:
Test fixtures are also patched to keep working on Wagtail 7.3+, where
wagtailcore.0094_alter_page_localetightenedPage.locale_idto NOT NULL without a default.Commits
Add locale to page fixtures for Wagtail 7.3+ compatibility— fixes a latent fixture issue surfaced by adding 7.3/7.4 to the test matrix.Drop Wagtail < 7.0; add Wagtail 7.3 and 7.4 LTS support— production support-window changes.Update dev dependencies and CI action versions— dev / CI tooling refresh.Production changes
pyproject.toml:Wagtail>=7.0; dropFramework :: Wagtail :: 6classifier.tox.ini: matrix now covers Wagtail 7.0 / 7.3 / 7.4 across Python 3.10–3.14 and Django 5.2 / 6.0.README.md/CHANGELOG.md: updated supported-version statements._file_field_legacy.htmland_thumbnail_field_legacy.htmltemplates and thewagtail_version_gtetemplate tag (only existed for Wagtail < 6.0).WAGTAIL_VERSION >= (4, 2)/(5, 1)/(6, 0)guards in tests; cleared stale# TODO: Remove once support for Wagtail < 4.1 is droppedcomments.Page.localeNOT NULL).Dev dependency / CI changes
.pre-commit-config.yaml:pre-commit-hooksv5 → v6,ruffv0.12.9 → v0.15.13..github/workflows/ruff.yml: ruff 0.12.9 → 0.15.13 (kept in sync with the pre-commit pin)..github/workflows/test.yml:actions/setup-python@v5 → v6,actions/upload-artifact@v4 → v5..github/workflows/nightly-tests.yml:actions/checkout@v4 → v5,actions/setup-python@v5 → v6.pyproject.tomlextras:coverage>=7.14,tox>=4.54,pre-commit>=4.6.Out of scope (not changed)
step-security/harden-runneris SHA-pinned at v2.13.1 — leaving SHA-pinned actions for explicit maintainer review.actions/download-artifactleft at v5 (latest is v8) — major bump not verified.Test plan
tox -e python3.12-dj52-wagtail70— 191 tests passtox -e python3.13-dj52-wagtail72— passtox -e python3.13-dj52-wagtail73— passtox -e python3.13-dj52-wagtail74— passtox -e python3.14-dj60-wagtail74— passpre-commit run --all-filesclean🤖 Generated with Claude Code