Skip to content

Support Wagtail 7.3 & Django 6.0#715

Open
VikasNeha wants to merge 3 commits intocoderedcorp:mainfrom
VikasNeha:story/django-6-support
Open

Support Wagtail 7.3 & Django 6.0#715
VikasNeha wants to merge 3 commits intocoderedcorp:mainfrom
VikasNeha:story/django-6-support

Conversation

@VikasNeha
Copy link
Copy Markdown

Description of change

Adds official support for Wagtail 7.3 and Django 6.0, and drops Python 3.10 / 3.11 (no longer supported by Django 6).

  • pyproject.tomlrequires-python >= 3.12; raise Django dep cap from <6.0 to <7.0; refresh Python (3.12–3.14) and Django (4.2 LTS, 5.2 LTS, 6.0) classifiers. The Wagtail dep range (>=7.0,<8.0) is unchanged — 7.3 was already permitted, just untested.
  • azure-pipelines.yml — new test matrix:
  • py3.12 + Wagtail 7.0 LTS (verifies backwards-compat on Django 4.2 / 5.2)
  • py3.13 + Wagtail 7.3.* (exercises the new minor explicitly)
  • py3.14 basic + pro + Wagtail 7.x (newest Python, Django 6 path)

Drops the py3.10 / py3.11 slots.

No source-code changes were needed — verified that coderedcms doesn't use any of the APIs deprecated/removed in Wagtail 7.3 (custom userbar items, custom CreateView/EditView overrides, image URL generator, fixtures without explicit locale_id) or affected by Django 6 (custom ORM expressions, removed
EmailMessage subtype properties, USE_L10N, the DEFAULT_AUTO_FIELD change — coderedcms/apps.py already sets it explicitly).

Documentation

  • New docs/releases/v7.0.0.rst — release notes covering Wagtail 7.3, Django 6.0, Python 3.14, and the Python 3.10/3.11 drop, with links to the Wagtail 7.3 and Django 6.0 upstream upgrade considerations.
  • docs/releases/index.rst — added a CRX 7.0 | 7.0–7.3 | 3.12–3.14 | Supported row to the support table and a v7.0.0 entry at the top of the toctree.

Tests

The existing unit-test suite covers this change — no new tests were needed since this is a dependency / CI matrix bump, not a behavioral change.

Verified locally:

  • pip install -e . wagtail==7.3.* on Python 3.13 → resolves Django 6.0.4 + Wagtail 7.3.1 cleanly; all transitive plugin pins (wagtail-cache, wagtail-flexible-forms, wagtail-seo, django-bootstrap5, django-eventtools, icalendar) hold without modification.
  • pytest coderedcms/69 passed on Python 3.13 + Django 6.0.4 + Wagtail 7.3.1.
  • pytest coderedcms/69 passed on Python 3.14 + Django 6.0.4 + Wagtail 7.3.1.
  • coderedcms start testproject --template basic followed by python manage.py makemigrations --check → no new migrations (Django 6's new defaults don't touch us).
  • ruff format --check . and ruff check . → clean.
  • sphinx-build -M html docs/ docs/_build/ -W → docs build succeeds with the new release-notes file.

CI will exercise the same combinations across the new matrix.

Bumps the supported version matrix to add Wagtail 7.3 and Django 6.0, and drops Python 3.10 / 3.11 (no longer supported by Django 6).

* pyproject.toml: requires-python >= 3.12; raise Django dep cap to <7.0; refresh Python (3.12-3.14) and Django (4.2, 5.2, 6.0) classifiers.
* azure-pipelines.yml: matrix now tests py3.12 + Wagtail 7.0 LTS, py3.13 + Wagtail 7.3, and py3.14 (basic + pro) + Wagtail 7.x.
* docs/releases/v7.0.0.rst: new release notes.
* docs/releases/index.rst: add CRX 7.0 row and toctree entry.
Wagtail 7.0 LTS declares Django>=4.2 with no upper bound, so pip on the py3.12 slot resolved Django 6.0 alongside Wagtail 7.0.6 — but Wagtail 7.0 isn't actually Django-6 compatible (django-tasks 0.7.0 raised "Task.__init__() got an unexpected keyword argument 'enqueue_on_commit'" during makemigrations).

 Adds a DJANGO_VERSION matrix variable so each slot can declare its Django constraint. The py3.12 / Wagtail 7.0.* slot now pins Django<6.0; the other slots leave it unset and let pip pick the latest Wagtail permits (Django 6.0 for Wagtail 7.3+).
Pre-existing typo in tutorial05.rst, line 106 (added in a0455b7). codespell's dictionary has tightened since then and now flags the hyphenated form, blocking the CR-QC: Spelling stage on this branch.
@VikasNeha
Copy link
Copy Markdown
Author

@vsalvino

About the failing job -

GET $ApiBase/_apis/test/codecoverage?buildId=$mainBuildId
→ "Cannot return type System.Web.Http.HttpError, from a public API
as it doesn't implement ISecuredObject"

That's an Azure DevOps internal serialization error, typically caused by either:

  • The build it's looking up doesn't have a published code-coverage attachment yet, or
  • The pipeline service account on this branch doesn't have read access to the target build.

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.

1 participant