Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/nigthly-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install dependencies
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ jobs:
permissions:
contents: read # to fetch code (actions/checkout)
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false

- name: Set up Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'

Expand All @@ -25,7 +25,7 @@ jobs:
- name: Build static files
run: ./node_modules/.bin/webpack --mode production

- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.13'
cache: 'pip'
Expand All @@ -38,7 +38,7 @@ jobs:
- name: 🏗️ Build
run: python -m flit build

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
path: ./dist

Expand All @@ -53,7 +53,7 @@ jobs:
# Mandatory for trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v8

- name: 🚀 Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false

# keep in sync with .pre-commit-config.yaml
- run: python -Im pip install --user ruff==0.11.8
- run: python -Im pip install --user ruff==0.15.12

- name: Run ruff
working-directory: .
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ jobs:
database: ['sqlite']

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
Expand All @@ -46,7 +46,7 @@ jobs:
env:
DATABASE: sqlite
- name: ⬆️ Upload coverage data
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: coverage-data-${{ matrix.python }}-sqlite
path: .coverage.*
Expand Down Expand Up @@ -75,13 +75,13 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Set up Python
id: setup-python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python }}

Expand All @@ -96,7 +96,7 @@ jobs:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres
DATABASE: postgres
- name: ⬆️ Upload coverage data
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: coverage-data-${{ matrix.python }}-postgres
path: .coverage.*
Expand All @@ -114,11 +114,11 @@ jobs:
python: ['3.13']

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false

- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
# Use latest Python, so it understands all syntax.
python-version: ${{env.PYTHON_LATEST}}
Expand All @@ -129,7 +129,7 @@ jobs:
python -Im uv pip install "coverage>=7.0,<8.0"

- name: ⬇️ Download coverage data
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
pattern: coverage-data-*
merge-multiple: true
Expand All @@ -141,7 +141,7 @@ jobs:
python -Im coverage report

- name: 'Upload coverage to Codecov'
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
14
22
8 changes: 4 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ci:

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
Expand All @@ -18,9 +18,9 @@ repos:
- id: trailing-whitespace
- repo: https://github.com/astral-sh/ruff-pre-commit
# keep in sync with .github/workflows/ruff.yml
rev: 'v0.11.8'
rev: 'v0.15.12'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

now at 0.15.22

hooks:
- id: ruff
- id: ruff-check
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-prettier
Expand All @@ -29,7 +29,7 @@ repos:
- id: prettier
types_or: [markdown, css, scss, javascript, json, yaml, ts, tsx]
- repo: https://github.com/pre-commit/mirrors-eslint
rev: 'v8.1.0'
rev: 'v10.3.0'
hooks:
- id: eslint
additional_dependencies:
Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Wagtail 7.3 and 7.4 (LTS) to the test matrix.
- Django 5.1 to the test matrix.

### Changed

- Minimum supported Wagtail is now 7.0.
- Minimum supported Django is now 5.1.

### Fixed

- `Translation.save_target()` no longer raises an `IntegrityError` on the `(translation_key, locale_id)` unique constraint when translating a snippet whose cluster contains nested `TranslatableMixin` grandchildren. Wagtail's `copy_for_translation` only re-locales the top level of the returned cluster, so the fixup is applied here as well.

### Removed

- Support for Wagtail 6.3 (reached end of life on 2026-05-01).
- Support for Django 4.2 (reached end of life in April 2026).
- Stale `WAGTAIL_VERSION` and `DJANGO_VERSION` compatibility guards for versions outside the supported range.

Comment on lines +10 to +29

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Please reword in line with other comments on other repositories. tl;dr merge and make it human written

## [1.13] - 2025-01-25

### Changed
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ Wagtail Localize is a translation plugin for the [Wagtail CMS](https://wagtail.o
Wagtail Localize requires the following:

- Python (3.10, 3.11, 3.12, 3.13, 3.14)
- Django (4.2, 5.2, 6.0)
- Wagtail (6.3 - 7.2) with [internationalisation enabled](https://docs.wagtail.org/en/stable/advanced_topics/i18n.html#configuration)
- [wagtail-modeladmin](https://pypi.org/project/wagtail-modeladmin/) if `using wagtail_localize.modeladmin` and Wagtail >= 6.3
- Django (5.1, 5.2, 6.0)
- Wagtail (7.0, 7.2, 7.3, 7.4) with [internationalisation enabled](https://docs.wagtail.org/en/stable/advanced_topics/i18n.html#configuration)
- [wagtail-modeladmin](https://pypi.org/project/wagtail-modeladmin/) if `using wagtail_localize.modeladmin`

## Installation

Expand Down
Loading