Skip to content

Wagtail 7.3 and 7.4 LTS maintenance - #77

Merged
zerolab merged 12 commits into
mainfrom
support/wagtail-74-maintenance
Jun 3, 2026
Merged

Wagtail 7.3 and 7.4 LTS maintenance#77
zerolab merged 12 commits into
mainfrom
support/wagtail-74-maintenance

Conversation

@nickmoreton

@nickmoreton nickmoreton commented May 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add support for Wagtail 7.3 and Wagtail 7.4 LTS; drop Wagtail < 7.0 (out of upstream support).
  • Add support for Django 6.0 and Python 3.14; drop Django 5.1 and Python 3.9.
  • Simplify the tox matrix to the supported combinations: Django 4.2 on 3.10, Django 5.2 on 3.10–3.14 against Wagtail 7.0/7.3/7.4, and Django 6.0 on 3.14 against Wagtail 7.4.
  • Bump dev tooling: pre-commit-hooks v4.6.0 → v6.0.0 and ruff v0.4.4 → v0.15.12 (kept in sync between .pre-commit-config.yaml and .github/workflows/ruff.yml).
  • Switch the CI ruff invocation to ruff check — Ruff 0.15 removed the implicit check subcommand alias.
  • Fix tests/testapp/fixtures/test.json so Page rows carry a usable locale_id. Without it, fixture loading fails on Wagtail 7.3 / 7.4 with NOT NULL constraint failed: wagtailcore_page.locale_id. Uses an integer pk for Page.locale to match the fixture format.
  • Bump coverage-report, wagtailmain, and interactive tox envs, plus the publish workflow, to Python 3.14.
  • Reorganise the unreleased CHANGELOG entries into explicit Added / Removed sections.

No package source changes were required — the package has no version-guard shims, and Page.from_json / to_json remain available on Wagtail 7.4.

Sources retrieved 2026-05-12:

Test plan

  • CI matrix passes for all configured Python / Django / Wagtail combinations
  • CI matrix passes for Wagtail 7.3 and 7.4 (previously failing on the fixture load)
  • Ruff workflow passes with ruff check
  • tox -e python3.14-django6.0-wagtail7.4 passes
  • tox -e python3.10-django4.2-wagtail7.0 passes
  • tox -e coverage-report aggregates coverage on Python 3.14
  • pre-commit run --all-files passes with the new ruff and pre-commit-hooks versions
  • Smoke test the interactive env against Wagtail 7.4 to confirm admin preview still renders

🤖 Generated with Claude Code

nickmoreton and others added 3 commits May 12, 2026 14:28
Drop Python 3.9, Django 5.0, and Wagtail < 7.0 from the declared support
window (all out of upstream support). Add Python 3.14, Django 5.2 LTS,
Django 6.0, and Wagtail 7.0 LTS / 7.3 / 7.4 LTS, with the tox matrix
respecting each Django release's official Python compatibility table.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Refresh the development tooling to current upstream versions, keeping the
ruff workflow pinned to the same version as the pre-commit hook.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@nickmoreton
nickmoreton marked this pull request as draft May 12, 2026 13:36
nickmoreton and others added 3 commits May 12, 2026 14:37
Ruff 0.15 removed the implicit 'check' subcommand alias, so invoking
'ruff <path>' now exits with an error. Switch the workflow to the
explicit 'ruff check' invocation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wagtail 7.3 changed the initial-state behaviour around the wagtailcore.Page
locale field, so loading the existing fixture now fails with a NOT NULL
constraint violation on locale_id. Add the default 'en' Locale via natural
key to both fixture pages so loaddata succeeds across all supported Wagtail
versions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The earlier natural-key form (["en"]) failed deserialization because
loaddata does not enable natural foreign keys here, so the value was
treated as a literal pk. The initial Locale created by
wagtailcore.0054_initial_locale has pk=1, so reference it directly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@nickmoreton
nickmoreton marked this pull request as ready for review May 12, 2026 13:56
@nickmoreton nickmoreton self-assigned this May 12, 2026
Comment thread CHANGELOG.md Outdated
Comment on lines +10 to +17
- Drop support for Python < 3.10
- Drop support for Wagtail < 6.3
- Drop testing for Python 3.8
- Drop support for Python 3.9 (EOL 2025-10-31)
- Drop support for Wagtail < 7.0 and Django 5.0 (both out of upstream support)
- Add support for Python 3.14
- Add support for Django 5.2 LTS and Django 6.0
- Add support for Wagtail 7.0 LTS, 7.3, and 7.4 LTS

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's merge these down to 2 lines - "Added ...", "Removed ..."

Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
nickmoreton and others added 3 commits May 13, 2026 15:56
Co-authored-by: Dan Braghiș <31622+zerolab@users.noreply.github.com>
Co-authored-by: Dan Braghiș <31622+zerolab@users.noreply.github.com>
@nickmoreton

Copy link
Copy Markdown
Contributor Author

@zerolab Can this be merged now?

Comment thread CHANGELOG.md Outdated
Comment on lines +10 to +22
## Added

- Add support for Python 3.14
- Add support for Django 5.2 LTS and Django 6.0
- Add support for Wagtail 7.0 LTS, 7.3, and 7.4 LTS

## Removed

- Drop support for Python < 3.10
- Drop support for Wagtail < 6.3
- Drop testing for Python 3.8
- Drop support for Python 3.9 (EOL 2025-10-31)
- Drop support for Wagtail < 7.0 and Django 5.0 (both out of upstream support)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to be compacted.

@nickmoreton please keep these concise in the future, in all maintenance PRs.

Comment thread tox.ini Outdated
nickmoreton and others added 3 commits May 29, 2026 12:22
Co-authored-by: Dan Braghiș <31622+zerolab@users.noreply.github.com>
@zerolab
zerolab merged commit 001b666 into main Jun 3, 2026
8 checks passed
@zerolab
zerolab deleted the support/wagtail-74-maintenance branch June 3, 2026 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants