From 98dedbd19cf2227fc0c8e771e0689a007b145854 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 15:21:47 +0000 Subject: [PATCH 01/10] Adjust test for wagtail and django and add python 3.13 --- .github/workflows/test.yml | 4 ++-- pyproject.toml | 13 +++++++------ tox.ini | 21 ++++++++++----------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 51ffe02..4236683 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@v3 @@ -41,7 +41,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] services: postgres: diff --git a/pyproject.toml b/pyproject.toml index 5eadf12..ba04ff6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,23 +15,24 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Framework :: Django", - "Framework :: Django :: 3.2", - "Framework :: Django :: 4.1", "Framework :: Django :: 4.2", + "Framework :: Django :: 5.0", + "Framework :: Django :: 5.1", "Framework :: Wagtail", "Framework :: Wagtail :: 4", "Framework :: Wagtail :: 5", + "Framework :: Wagtail :: 6", ] -requires-python = ">=3.8" +requires-python = ">=3.9" dynamic = ["version"] dependencies = [ - "Django>=3.2", - "Wagtail>=4.1,<6.0", + "Django>=4.2", + "Wagtail>=4.2", ] [project.optional-dependencies] testing = [ diff --git a/tox.ini b/tox.ini index d09ed35..0d27fd3 100644 --- a/tox.ini +++ b/tox.ini @@ -3,17 +3,16 @@ skipsdist = True usedevelop = True envlist = - python{3.8,3.9,3.10,3.11}-django{3.2,4.1}-wagtail{4.1,4.2}-{sqlite,postgres} - python{3.8,3.9,3.10,3.11}-django{3.2,4.1,4.2}-wagtail{5.0,5.1,5.2}-{sqlite,postgres} - python3.12-django5.0-wagtail5.2-sqlite + python{3.9,3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} + python{3.12,3.13}-django{5.1}-wagtail{6.3}-{sqlite,postgres} [gh-actions] python = - 3.8: python3.8 3.9: python3.9 3.10: python3.10 3.11: python3.11 3.12: python3.12 + 3.13: python3.13 [gh-actions:env] DB = @@ -27,25 +26,25 @@ commands = coverage report -m basepython = - python3.8: python3.8 python3.9: python3.9 python3.10: python3.10 python3.11: python3.11 python3.12: python3.12 + python3.13: python3.13 deps = coverage - django3.2: Django>=3.2,<4.0 - django4.1: Django>=4.1,<4.2 django4.2: Django>=4.2,<4.3 django5.0: Django>=5.0,<5.1 + django5.1: Django>=5.1,<5.2 - wagtail4.1: wagtail>=4.1,<4.2 - wagtail4.2: wagtail>=4.2,<4.3 - wagtail5.0: wagtail>=5.0,<5.1 - wagtail5.1: wagtail>=5.1,<5.2 wagtail5.2: wagtail>=5.2,<5.3 + wagtail6.0: wagtail>=6.0,<6.1 + wagtail6.1: wagtail>=6.1,<6.2 + wagtail6.2: wagtail>=6.2,<6.3 + wagtail6.3: wagtail>=6.3,<6.4 + postgres: psycopg2>=2.6 From 03475e1c32d424fa4d7f6110ec2e42bdb502e28c Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 15:26:46 +0000 Subject: [PATCH 02/10] Don't worry about python 3.13 just yet --- .github/workflows/test.yml | 4 ++-- tox.ini | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4236683..1fe309e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.9', '3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v3 @@ -41,7 +41,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.9', '3.10', '3.11', '3.12'] services: postgres: diff --git a/tox.ini b/tox.ini index 0d27fd3..37117ce 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ usedevelop = True envlist = python{3.9,3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} - python{3.12,3.13}-django{5.1}-wagtail{6.3}-{sqlite,postgres} + python{3.12}-django{5.1}-wagtail{6.3}-{sqlite,postgres} [gh-actions] python = @@ -12,7 +12,6 @@ python = 3.10: python3.10 3.11: python3.11 3.12: python3.12 - 3.13: python3.13 [gh-actions:env] DB = @@ -30,7 +29,6 @@ basepython = python3.10: python3.10 python3.11: python3.11 python3.12: python3.12 - python3.13: python3.13 deps = coverage From 28a3c1df591a56b1c2c9a04406eafddf045a60f8 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 15:41:29 +0000 Subject: [PATCH 03/10] Fix messed up matrix --- tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 37117ce..3c59fb0 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,8 @@ skipsdist = True usedevelop = True envlist = - python{3.9,3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} + python3.9-django4.2-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} + python{3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} python{3.12}-django{5.1}-wagtail{6.3}-{sqlite,postgres} [gh-actions] From f84832c69e145e6e9b6580f7d5c96815874a40b7 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 16:08:22 +0000 Subject: [PATCH 04/10] Take into account the Wagtail version when importing modules --- tox.ini | 1 - wagtail_devtools/api/serializers.py | 2 +- .../management/commands/_base_admin_responses.py | 12 +++++++++--- .../test/management/commands/build_fixtures.py | 3 +-- wagtail_devtools/test/settings.py | 4 +++- wagtail_devtools/test/tests/test_build_fixtures.py | 3 +-- wagtail_devtools/test/views.py | 8 +++++++- wagtail_devtools/test/wagtail_hooks.py | 8 +++++++- 8 files changed, 29 insertions(+), 12 deletions(-) diff --git a/tox.ini b/tox.ini index 3c59fb0..dfd7ff0 100644 --- a/tox.ini +++ b/tox.ini @@ -44,7 +44,6 @@ deps = wagtail6.2: wagtail>=6.2,<6.3 wagtail6.3: wagtail>=6.3,<6.4 - postgres: psycopg2>=2.6 setenv = diff --git a/wagtail_devtools/api/serializers.py b/wagtail_devtools/api/serializers.py index 1db2f30..d2a78d3 100644 --- a/wagtail_devtools/api/serializers.py +++ b/wagtail_devtools/api/serializers.py @@ -1,6 +1,6 @@ from django.apps import apps from wagtail.admin.admin_url_finder import AdminURLFinder -from wagtail.models.collections import Collection +from wagtail.models import Collection from wagtail.snippets.models import get_snippet_models from wagtail_devtools.api.dataclasses import ( diff --git a/wagtail_devtools/management/commands/_base_admin_responses.py b/wagtail_devtools/management/commands/_base_admin_responses.py index ad03449..e8cd535 100644 --- a/wagtail_devtools/management/commands/_base_admin_responses.py +++ b/wagtail_devtools/management/commands/_base_admin_responses.py @@ -4,14 +4,20 @@ from django.conf import settings from django.contrib.auth import get_user_model from django.core.management.base import BaseCommand, CommandError +from wagtail import VERSION as WAGTAIL_VERSION from wagtail.admin.admin_url_finder import AdminURLFinder from wagtail.admin.utils import get_admin_base_url -from wagtail.contrib.modeladmin.helpers import AdminURLHelper + + +if WAGTAIL_VERSION < (6, 0): + from wagtail.contrib.modeladmin.helpers import AdminURLHelper +else: + from wagtail_modeladmin.helpers import AdminURLHelper + from wagtail.contrib.settings.registry import registry as settings_registry from wagtail.documents import get_document_model from wagtail.images import get_image_model -from wagtail.models import get_page_models -from wagtail.models.collections import Collection +from wagtail.models import Collection, get_page_models from wagtail.snippets.models import get_snippet_models diff --git a/wagtail_devtools/test/management/commands/build_fixtures.py b/wagtail_devtools/test/management/commands/build_fixtures.py index a36821e..99ce1d1 100644 --- a/wagtail_devtools/test/management/commands/build_fixtures.py +++ b/wagtail_devtools/test/management/commands/build_fixtures.py @@ -9,8 +9,7 @@ from wagtail.contrib.search_promotions.models import Query, SearchPromotion from wagtail.documents.models import Document as WagtailDocument from wagtail.images.models import Image as WagtailImage -from wagtail.models import Page, Site -from wagtail.models.collections import Collection +from wagtail.models import Collection, Page, Site from wagtail_devtools.test.models import ( FormFieldOne, diff --git a/wagtail_devtools/test/settings.py b/wagtail_devtools/test/settings.py index 7723b1b..e8651e3 100644 --- a/wagtail_devtools/test/settings.py +++ b/wagtail_devtools/test/settings.py @@ -12,6 +12,8 @@ import dj_database_url +from wagtail import VERSION as WAGTAIL_VERSION + # Build paths inside the project like this: os.path.join(PROJECT_DIR, ...) PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -47,7 +49,7 @@ "wagtail.search", "wagtail.admin", "wagtail.api.v2", - "wagtail.contrib.modeladmin", + "wagtail.contrib.modeladmin" if WAGTAIL_VERSION < (6, 0) else "wagtail_modeladmin", "wagtail.contrib.routable_page", "wagtail.contrib.styleguide", "wagtail.sites", diff --git a/wagtail_devtools/test/tests/test_build_fixtures.py b/wagtail_devtools/test/tests/test_build_fixtures.py index a1e8d52..2f928f8 100644 --- a/wagtail_devtools/test/tests/test_build_fixtures.py +++ b/wagtail_devtools/test/tests/test_build_fixtures.py @@ -12,8 +12,7 @@ from wagtail.contrib.settings.registry import registry as settings_registry from wagtail.documents import get_document_model from wagtail.images import get_image_model -from wagtail.models import Page, Site -from wagtail.models.collections import Collection +from wagtail.models import Collection, Page, Site from wagtail.snippets.models import get_snippet_models diff --git a/wagtail_devtools/test/views.py b/wagtail_devtools/test/views.py index e6145de..ccda85e 100644 --- a/wagtail_devtools/test/views.py +++ b/wagtail_devtools/test/views.py @@ -4,8 +4,14 @@ from django.shortcuts import render from django.template.response import TemplateResponse from django.utils import timezone +from wagtail import VERSION as WAGTAIL_VERSION from wagtail.models import Page -from wagtail.search.models import Query + + +if WAGTAIL_VERSION < (6, 0): + from wagtail.search.models import Query +else: + from wagtail.contrib.search_promotions.models import Query def search(request): diff --git a/wagtail_devtools/test/wagtail_hooks.py b/wagtail_devtools/test/wagtail_hooks.py index b813b52..0a24155 100644 --- a/wagtail_devtools/test/wagtail_hooks.py +++ b/wagtail_devtools/test/wagtail_hooks.py @@ -1,7 +1,13 @@ from django.urls import path, reverse +from wagtail import VERSION as WAGTAIL_VERSION from wagtail import hooks from wagtail.admin.menu import Menu, MenuItem, SubmenuMenuItem -from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register + + +if WAGTAIL_VERSION < (6, 0): + from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register +else: + from wagtail_modeladmin.options import ModelAdmin, modeladmin_register from wagtail_devtools.test.views import example_calendar, example_calendar_month From 8146c72c9e9bcb1847626ff2111416d34b741601 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 16:20:16 +0000 Subject: [PATCH 05/10] Need to include wagtailmodeladmin --- tox.ini | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tox.ini b/tox.ini index dfd7ff0..e0a1459 100644 --- a/tox.ini +++ b/tox.ini @@ -3,9 +3,9 @@ skipsdist = True usedevelop = True envlist = - python3.9-django4.2-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} - python{3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-{sqlite,postgres} - python{3.12}-django{5.1}-wagtail{6.3}-{sqlite,postgres} + python3.9-django4.2-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-{sqlite,postgres} + python{3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-{sqlite,postgres} + python{3.12}-django{5.1}-wagtail{6.3}-wagtailmodeladmin-{sqlite,postgres} [gh-actions] python = @@ -44,6 +44,8 @@ deps = wagtail6.2: wagtail>=6.2,<6.3 wagtail6.3: wagtail>=6.3,<6.4 + wagtail-modeladmin: wagtailmodeladmin + postgres: psycopg2>=2.6 setenv = From 47338dd535b106328bf0bcb3bf3eabc3da62e8f3 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 16:31:43 +0000 Subject: [PATCH 06/10] Typo for wagtail-modeladmin in tox.ini --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index e0a1459..e4c7b6e 100644 --- a/tox.ini +++ b/tox.ini @@ -44,7 +44,7 @@ deps = wagtail6.2: wagtail>=6.2,<6.3 wagtail6.3: wagtail>=6.3,<6.4 - wagtail-modeladmin: wagtailmodeladmin + wagtailmodeladmin: wagtail-modeladmin postgres: psycopg2>=2.6 From dc9137e3b0194e54476298bc0b42c3c677727c8c Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 17:09:59 +0000 Subject: [PATCH 07/10] Reduce the testing for postgres Just to speed things up for the moment. --- README.md | 6 +++--- tox.ini | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f4a6118..e3d4fb3 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ A set of developer tools in the form of management commands. ## Supported versions -- Python 3.8+ -- Django 3.2+ -- Wagtail 4.1+ +- Python 3.9+ +- Django 4.2+ +- Wagtail 5.2+ ## Features diff --git a/tox.ini b/tox.ini index e4c7b6e..3343349 100644 --- a/tox.ini +++ b/tox.ini @@ -3,9 +3,9 @@ skipsdist = True usedevelop = True envlist = - python3.9-django4.2-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-{sqlite,postgres} - python{3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-{sqlite,postgres} - python{3.12}-django{5.1}-wagtail{6.3}-wagtailmodeladmin-{sqlite,postgres} + python3.9-django4.2-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-sqlite + python{3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-sqlite + python3.12-django5.1-wagtail6.3-wagtailmodeladmin-{sqlite,postgres} [gh-actions] python = From 93e264a02cfb92f01b05ac2344e1b67af45db972 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 17:13:22 +0000 Subject: [PATCH 08/10] Only postgres on 3.12 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1fe309e..b4d1d67 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,7 +41,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.9', '3.10', '3.11', '3.12'] + python: ['3.12'] services: postgres: From 660ae17cbe4c5ad5e486882d70bfb40ce5e5ce39 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 17:24:35 +0000 Subject: [PATCH 09/10] Try options for pool --- wagtail_devtools/test/settings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wagtail_devtools/test/settings.py b/wagtail_devtools/test/settings.py index e8651e3..a7fccba 100644 --- a/wagtail_devtools/test/settings.py +++ b/wagtail_devtools/test/settings.py @@ -103,7 +103,9 @@ # https://docs.djangoproject.com/en/stable/ref/settings/#databases DATABASES = { - "default": dj_database_url.config(default="sqlite:///test_wagtail_devtools.db"), + "default": dj_database_url.config( + default="sqlite:///test_wagtail_devtools.db", options={"pool": True} + ), } From 4cb3bde7a93120ff88f64b70a275cb75815751d1 Mon Sep 17 00:00:00 2001 From: Nick Moreton Date: Fri, 6 Dec 2024 17:30:35 +0000 Subject: [PATCH 10/10] Dont test with poptgres for now. --- .github/workflows/test.yml | 56 +++++++++++++++---------------- tox.ini | 2 +- wagtail_devtools/test/settings.py | 4 +-- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b4d1d67..999d66e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,33 +37,33 @@ jobs: env: DB: sqlite - test-postgres: - runs-on: ubuntu-latest - strategy: - matrix: - python: ['3.12'] + # test-postgres: + # runs-on: ubuntu-latest + # strategy: + # matrix: + # python: ['3.12'] - services: - postgres: - image: ${{ matrix.postgres || 'postgres:12' }} - env: - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + # services: + # postgres: + # image: ${{ matrix.postgres || 'postgres:12' }} + # env: + # POSTGRES_PASSWORD: postgres + # ports: + # - 5432:5432 + # options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python }} - - name: Install - run: | - python -m pip install --upgrade pip setuptools wheel - python -m pip install .[ci] - - name: Test - run: tox # -- --exclude exclude-in-github-actions # temporary workaround - env: - DATABASE_URL: postgres://postgres:postgres@localhost:5432/wagtail_devtools - DB: postgres + # steps: + # - uses: actions/checkout@v3 + # - name: Set up Python ${{ matrix.python }} + # uses: actions/setup-python@v4 + # with: + # python-version: ${{ matrix.python }} + # - name: Install + # run: | + # python -m pip install --upgrade pip setuptools wheel + # python -m pip install .[ci] + # - name: Test + # run: tox # -- --exclude exclude-in-github-actions # temporary workaround + # env: + # DATABASE_URL: postgres://postgres:postgres@localhost:5432/wagtail_devtools + # DB: postgres diff --git a/tox.ini b/tox.ini index 3343349..9062931 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,7 @@ usedevelop = True envlist = python3.9-django4.2-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-sqlite python{3.10,3.11,3.12}-django{4.2,5.0}-wagtail{5.2,6.0,6.1,6.2,6.3}-wagtailmodeladmin-sqlite - python3.12-django5.1-wagtail6.3-wagtailmodeladmin-{sqlite,postgres} + python3.12-django5.1-wagtail6.3-wagtailmodeladmin-sqlite [gh-actions] python = diff --git a/wagtail_devtools/test/settings.py b/wagtail_devtools/test/settings.py index a7fccba..e8651e3 100644 --- a/wagtail_devtools/test/settings.py +++ b/wagtail_devtools/test/settings.py @@ -103,9 +103,7 @@ # https://docs.djangoproject.com/en/stable/ref/settings/#databases DATABASES = { - "default": dj_database_url.config( - default="sqlite:///test_wagtail_devtools.db", options={"pool": True} - ), + "default": dj_database_url.config(default="sqlite:///test_wagtail_devtools.db"), }