From 417d69223570f4ad58712ffdfb212c7ddad6c74b Mon Sep 17 00:00:00 2001 From: Vikas Neha Ojha Date: Wed, 29 Apr 2026 01:39:41 +0530 Subject: [PATCH 1/3] Support Wagtail 7.3 & Django 6.0 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. --- .gitignore | 1 + azure-pipelines.yml | 20 ++++++++------------ docs/releases/index.rst | 3 +++ docs/releases/v7.0.0.rst | 26 ++++++++++++++++++++++++++ pyproject.toml | 10 ++++------ 5 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 docs/releases/v7.0.0.rst diff --git a/.gitignore b/.gitignore index 326a7fdd..fd135ec4 100755 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ ENV/ # Editors .vscode/ *~ +.idea/ # Development & testing .coverage diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8ed0649b..53678921 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,24 +29,20 @@ stages: matrix: # Oldest versions of python should use the oldest versions of # wagtail we support, for testing purposes. - py3.10: - PYTHON_VERSION: '3.10' - WAGTAIL_VERSION: '7.0.*' - TEMPLATE: 'basic' - py3.11: - PYTHON_VERSION: '3.11' - WAGTAIL_VERSION: '7.1.*' - TEMPLATE: 'basic' py3.12: PYTHON_VERSION: '3.12' - WAGTAIL_VERSION: '7.1.*' + WAGTAIL_VERSION: '7.0.*' TEMPLATE: 'basic' - py3.13_basic: + py3.13: PYTHON_VERSION: '3.13' + WAGTAIL_VERSION: '7.3.*' + TEMPLATE: 'basic' + py3.14_basic: + PYTHON_VERSION: '3.14' WAGTAIL_VERSION: '7.*' TEMPLATE: 'basic' - py3.13_pro: - PYTHON_VERSION: '3.13' + py3.14_pro: + PYTHON_VERSION: '3.14' WAGTAIL_VERSION: '7.*' TEMPLATE: 'pro' diff --git a/docs/releases/index.rst b/docs/releases/index.rst index ad0f78b6..c936a732 100644 --- a/docs/releases/index.rst +++ b/docs/releases/index.rst @@ -15,6 +15,8 @@ Supported Versions: +--------------+---------+-----------+---------------------------+ | CRX version | Wagtail | Python | Support Status | +==============+=========+===========+===========================+ +| CRX 7.0 | 7.0-7.3 | 3.12-3.14 | Supported | ++--------------+---------+-----------+---------------------------+ | CRX 6.0 | 7.0-7.1 | 3.10-3.13 | Supported | +--------------+---------+-----------+---------------------------+ | CRX 5.0 | 6.3-6.4 | 3.9-3.13 | Supported | @@ -35,6 +37,7 @@ Supported Versions: .. toctree:: :maxdepth: 1 + v7.0.0 v6.0.0 v5.0.2 v5.0.1 diff --git a/docs/releases/v7.0.0.rst b/docs/releases/v7.0.0.rst new file mode 100644 index 00000000..cfb8f690 --- /dev/null +++ b/docs/releases/v7.0.0.rst @@ -0,0 +1,26 @@ +v7.0.0 release notes +==================== + + +New features +------------ + +* Support Wagtail 7.3. + +* Support Django 6.0. + +* Support Python 3.14. + + +Upgrade considerations +---------------------- + +Dropped support for Python 3.10 and 3.11, which are not supported by Django 6. + +Be sure to read the `Wagtail 7.3 upgrade considerations `_ and the `Django 6.0 release notes `_. + + +Thank you! +---------- + +Thanks to everyone who contributed to `7.0.0 on GitHub `_. \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 825a4f64..49f7a06a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,16 +15,14 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "Framework :: Django", "Framework :: Django :: 4.2", - "Framework :: Django :: 5.0", - "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", + "Framework :: Django :: 6.0", "Framework :: Wagtail", "Framework :: Wagtail :: 7", "Topic :: Internet :: WWW/HTTP", @@ -35,7 +33,7 @@ dependencies = [ "beautifulsoup4>=4.8,<5", # should be the same as wagtail "django-eventtools==1.0.*", "django-bootstrap5==25.2", - "Django>=4.2,<6.0", # should be the same as wagtail + "Django>=4.2,<7.0", # should be the same as wagtail "geocoder==1.38.*", "icalendar==6.3.*", "wagtail>=7.0,<8.0", @@ -48,7 +46,7 @@ dynamic = ["version"] license = {file = "LICENSE.txt"} name = "coderedcms" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.12" [project.scripts] coderedcms = "coderedcms.bin.coderedcms:main" From 6ef7ed2a5836d3defb0fd72596e5024d00b8e0b2 Mon Sep 17 00:00:00 2001 From: Vikas Neha Ojha Date: Wed, 29 Apr 2026 02:33:28 +0530 Subject: [PATCH 2/3] Fix CI: pin Django on the Wagtail 7.0 LTS test slot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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+). --- azure-pipelines.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 53678921..c3aecb4f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,22 +28,28 @@ stages: strategy: matrix: # Oldest versions of python should use the oldest versions of - # wagtail we support, for testing purposes. + # wagtail we support, for testing purposes. Wagtail 7.0 LTS + # predates Django 6 and its metadata leaves Django uncapped, so + # we pin Django explicitly on that slot. py3.12: PYTHON_VERSION: '3.12' WAGTAIL_VERSION: '7.0.*' + DJANGO_VERSION: '<6.0' TEMPLATE: 'basic' py3.13: PYTHON_VERSION: '3.13' WAGTAIL_VERSION: '7.3.*' + DJANGO_VERSION: '' TEMPLATE: 'basic' py3.14_basic: PYTHON_VERSION: '3.14' WAGTAIL_VERSION: '7.*' + DJANGO_VERSION: '' TEMPLATE: 'basic' py3.14_pro: PYTHON_VERSION: '3.14' WAGTAIL_VERSION: '7.*' + DJANGO_VERSION: '' TEMPLATE: 'pro' steps: @@ -53,7 +59,7 @@ stages: versionSpec: '$(PYTHON_VERSION)' architecture: 'x64' - - script: python -m pip install -r requirements-ci.txt wagtail==$(WAGTAIL_VERSION) + - script: python -m pip install -r requirements-ci.txt "wagtail==$(WAGTAIL_VERSION)" "Django$(DJANGO_VERSION)" displayName: 'CR-QC: Install coderedcms from local repo' - script: coderedcms start testproject --template $(TEMPLATE) From b4474ffc19ed340c1a61b967f90aff14df8be7f8 Mon Sep 17 00:00:00 2001 From: Vikas Neha Ojha Date: Wed, 29 Apr 2026 02:50:41 +0530 Subject: [PATCH 3/3] =?UTF-8?q?Fix=20codespell=20typo:=20pre-selected=20?= =?UTF-8?q?=E2=86=92=20preselected?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- docs/getting_started/tutorial05.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started/tutorial05.rst b/docs/getting_started/tutorial05.rst index 83c4a128..95ecd248 100644 --- a/docs/getting_started/tutorial05.rst +++ b/docs/getting_started/tutorial05.rst @@ -103,7 +103,7 @@ Publish and see what happens! The published Blog landing page. Whoa! The blog posts are already showing up! What is this magic? Well, remember that this is a parent page type -and the blog posts were children of this page. The option to "show children" is already pre-selected in the edit mode +and the blog posts were children of this page. The option to "show children" is already preselected in the edit mode for landing pages. Let's look at that now. Ways to display sub-pages on a landing page