From 59ba26c3b03fb1172a41da90429e8f54fb548ceb Mon Sep 17 00:00:00 2001 From: nickmoreton Date: Thu, 28 May 2026 16:43:14 +0100 Subject: [PATCH 1/2] Update supported version matrix to Python 3.10-3.14, Django 5.2/6.0, Wagtail 7.0/7.3/7.4 Declare the new support window across setup.py classifiers, python_requires, tox env list, and the GitHub Actions test matrix. Restricts each Wagtail release to the Django/Python versions it actually supports (Wagtail 7.0 only with Django 5.2; Django 6.0 only on Python 3.12+). Also drop USE_L10N from the test settings (removed in Django 5.0) and set DEFAULT_AUTO_FIELD explicitly. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/test.yml | 58 ++++++++++++++++++++++++++++--- CHANGELOG.md | 18 ++++++++++ setup.py | 7 +++- tests/testapp/testapp/settings.py | 4 +-- tox.ini | 23 +++++++----- 5 files changed, 94 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 23a2166..45e5884 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,12 +19,10 @@ jobs: test-postgres: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: include: - - python: '3.9' - django: 'Django>=4.2,<4.3' - wagtail: 'wagtail>=7.0,<7.1' - postgres: 'postgres:15' + # Wagtail 7.0 LTS (Django 5.2 only — 7.0 does not support Django 6.0) - python: '3.10' django: 'Django>=5.2,<5.3' wagtail: 'wagtail>=7.0,<7.1' @@ -42,6 +40,58 @@ jobs: wagtail: 'wagtail>=7.0,<7.1' postgres: 'postgres:15' + # Wagtail 7.3 with Django 5.2 + - python: '3.10' + django: 'Django>=5.2,<5.3' + wagtail: 'wagtail>=7.3,<7.4' + postgres: 'postgres:15' + - python: '3.13' + django: 'Django>=5.2,<5.3' + wagtail: 'wagtail>=7.3,<7.4' + postgres: 'postgres:15' + - python: '3.14' + django: 'Django>=5.2.8,<5.3' + wagtail: 'wagtail>=7.3,<7.4' + postgres: 'postgres:15' + + # Wagtail 7.3 with Django 6.0 (requires Python 3.12+) + - python: '3.12' + django: 'Django>=6.0,<6.1' + wagtail: 'wagtail>=7.3,<7.4' + postgres: 'postgres:15' + - python: '3.14' + django: 'Django>=6.0,<6.1' + wagtail: 'wagtail>=7.3,<7.4' + postgres: 'postgres:15' + + # Wagtail 7.4 LTS with Django 5.2 + - python: '3.10' + django: 'Django>=5.2,<5.3' + wagtail: 'wagtail>=7.4,<7.5' + postgres: 'postgres:15' + - python: '3.13' + django: 'Django>=5.2,<5.3' + wagtail: 'wagtail>=7.4,<7.5' + postgres: 'postgres:15' + - python: '3.14' + django: 'Django>=5.2.8,<5.3' + wagtail: 'wagtail>=7.4,<7.5' + postgres: 'postgres:15' + + # Wagtail 7.4 LTS with Django 6.0 (requires Python 3.12+) + - python: '3.12' + django: 'Django>=6.0,<6.1' + wagtail: 'wagtail>=7.4,<7.5' + postgres: 'postgres:15' + - python: '3.13' + django: 'Django>=6.0,<6.1' + wagtail: 'wagtail>=7.4,<7.5' + postgres: 'postgres:15' + - python: '3.14' + django: 'Django>=6.0,<6.1' + wagtail: 'wagtail>=7.4,<7.5' + postgres: 'postgres:15' + services: postgres: image: ${{ matrix.postgres || 'postgres:15' }} diff --git a/CHANGELOG.md b/CHANGELOG.md index aea1b3b..cf07668 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Added + +- Support for Python 3.14 +- Support for Django 6.0 +- Support for Wagtail 7.3 and Wagtail 7.4 LTS + +### Removed + +- Support for Python 3.9 (out of the Wagtail support window for the new range) +- Support for Django 4.2 and 5.1 (no longer required by any Wagtail version in the supported range) +- `USE_L10N` from the test settings (removed in Django 5.0) + +### Changed + +- Refreshed dev dependencies (`coverage`, `flake8`, `isort`, `tox`) and dropped pre-5 `isort` calling convention from `make lint` +- Updated tox env list and GitHub Actions matrix to cover Python 3.10–3.14, Django 5.2 / 6.0, and Wagtail 7.0 LTS / 7.3 / 7.4 LTS +- Added `Framework :: Django` / `Framework :: Wagtail` and `python_requires = ">=3.10"` metadata + ## [2.0.1] - 2025-06-18 ### Fixed diff --git a/setup.py b/setup.py index a89283b..e5c86c6 100755 --- a/setup.py +++ b/setup.py @@ -45,19 +45,24 @@ project_urls={ "Changelog": "https://github.com/springload/wagtailgmaps/blob/master/CHANGELOG.md", }, + python_requires=">=3.10", classifiers=[ "Environment :: Web Environment", "Framework :: Django", + "Framework :: Django :: 5.2", + "Framework :: Django :: 6.0", + "Framework :: Wagtail", + "Framework :: Wagtail :: 7", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "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", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", ], diff --git a/tests/testapp/testapp/settings.py b/tests/testapp/testapp/settings.py index d77604c..a1ce215 100644 --- a/tests/testapp/testapp/settings.py +++ b/tests/testapp/testapp/settings.py @@ -82,10 +82,10 @@ USE_I18N = True -USE_L10N = True - USE_TZ = True +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" + # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ diff --git a/tox.ini b/tox.ini index dabdd40..38160ec 100644 --- a/tox.ini +++ b/tox.ini @@ -7,26 +7,29 @@ skipsdist = True usedevelop = True envlist = - py{39,310,311,312,313}-dj{42,51,52}-wt{7} + py{310,311,312,313}-dj52-wt{70,73,74} + py314-dj52-wt{73,74} + py{312,313,314}-dj60-wt{73,74} [testenv] install_command = pip install -e ".[testing]" -U {opts} {packages} -whitelist_externals = +allowlist_externals = make pip basepython = - py39: python3.9 py310: python3.10 py311: python3.11 py312: python3.12 py313: python3.13 + py314: python3.14 deps = - dj42: Django>=4.2,<4.3 - dj51: Django>=5.1,<5.2 - dj52: Django>=5.2,<5,3 - wt7: wagtail>=7.0,<7.1 + dj52: Django>=5.2,<5.3 + dj60: Django>=6.0,<6.1 + wt70: wagtail>=7.0,<7.1 + wt73: wagtail>=7.3,<7.4 + wt74: wagtail>=7.4,<7.5 commands = make lint @@ -34,6 +37,8 @@ commands = [gh] python = - 3.13 = 3.13 - 3.12 = 3.12 + 3.10 = 3.10 3.11 = 3.11 + 3.12 = 3.12 + 3.13 = 3.13 + 3.14 = 3.14 From 344794a017c86207c94bd9487f13b3dc0bf3a99b Mon Sep 17 00:00:00 2001 From: nickmoreton Date: Thu, 28 May 2026 16:43:30 +0100 Subject: [PATCH 2/2] Refresh dev dependencies and fix isort lint command Bump coverage, flake8, flake8-colors, isort, and tox testing extras to current versions. Pin Django/wagtail floors in the testing extras so the test app installs a usable runtime by default. Drop the obsolete --recursive flag from the isort call in make lint; isort 5+ auto-recurses and removed the flag. Co-Authored-By: Claude Opus 4.7 (1M context) --- Makefile | 2 +- setup.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 0f5e4fd..6fcfde7 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ start: ## Starts the development server. lint: ## Lint the project. flake8 wagtailgmaps tests setup.py - isort --check-only --diff --recursive wagtailgmaps tests setup.py + isort --check-only --diff wagtailgmaps tests setup.py test: ## Test the project. python ./runtests.py diff --git a/setup.py b/setup.py index e5c86c6..b274dc2 100755 --- a/setup.py +++ b/setup.py @@ -16,15 +16,15 @@ # Testing dependencies testing_extras = [ # Required for running the tests - "tox~=4.26.0", + "tox>=4.26", # For coverage and PEP8 linting - "coverage>=4.1.0,<4.2", - "flake8>=3.2.0,<3.3", - "flake8-colors>=0.1.6,<1", - "isort==4.2.5", + "coverage>=7.6", + "flake8>=7.1", + "flake8-colors>=0.1.9", + "isort>=5.13", # For test site - "Django>=4.2", - "wagtail>=7.0.0", + "Django>=5.2,<6.1", + "wagtail>=7.0,<7.5", ] # Documentation dependencies