diff --git a/CHANGELOG.md b/CHANGELOG.md index 3645c55..9d16ab2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); version ## [Unreleased] +## [2.4.2] - 2026-10-14 + +Release hygiene: stage 0 of the 2026-10-12 audit. Nothing the panel or the +mail path does changes; the release workflow, the tests, the dependencies and +the documents do. + ### Fixed - **A release image says which release it is.** The e2e gate in diff --git a/README.md b/README.md index 8559dbf..b23ca50 100644 --- a/README.md +++ b/README.md @@ -112,8 +112,8 @@ outbound mail will not reach the real internet without DNS, PTR, and port 25. > local image and pulls nothing: > > ```sh -> docker build -f build/Dockerfile --build-arg VERSION=2.4.1 \ -> -t ghcr.io/mixeme/selfpost:2.4.1 . +> docker build -f build/Dockerfile --build-arg VERSION=2.4.2 \ +> -t ghcr.io/mixeme/selfpost:2.4.2 . > ``` ```sh @@ -122,7 +122,7 @@ docker run --rm -d --name selfpost-try \ -e SELFPOST_HOSTNAME=mail.local.test \ -e PANEL_COOKIE_SECURE=false \ -v selfpost-try-data:/data \ - ghcr.io/mixeme/selfpost:2.4.1 + ghcr.io/mixeme/selfpost:2.4.2 ``` **Get the setup URL** (pick one): diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 5da727a..98b44ab 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -23,7 +23,7 @@ services: selfpost: - image: ghcr.io/mixeme/selfpost:2.4.1 + image: ghcr.io/mixeme/selfpost:2.4.2 restart: unless-stopped environment: SELFPOST_HOSTNAME: "${SELFPOST_HOSTNAME:?set the mail/panel hostname, e.g. mail.example.com}" diff --git a/docs/audit-2026-10-12.md b/docs/audit-2026-10-12.md index 5125728..c394dd0 100644 --- a/docs/audit-2026-10-12.md +++ b/docs/audit-2026-10-12.md @@ -543,7 +543,7 @@ card, and it is not planned) are mockup-first; a migration the test server has already run is never edited — the next file is added; the published `1.x` tags and images are history and are not touched. -### Stage 0 — release hygiene (no product code) → `2.4.2` +### Stage 0 — release hygiene (no product code) → `2.4.2` (shipped 2026-10-14) - [x] **Stamp the right version** (H1). Make the e2e build take the version from the environment (`VERSION: ${SELFPOST_E2E_VERSION:-e2e}` in diff --git a/docs/development.md b/docs/development.md index 30a7b27..ddd7c7b 100644 --- a/docs/development.md +++ b/docs/development.md @@ -107,7 +107,7 @@ than the default «meaningful step» rule in [§ Commits and release build](#com 2. Git tag `vX.Y.Z` and publish the GitHub Release only on explicit request (see [§ Release image](#release-image)). -**Planned version cuts** (from pin `2.4.1`; adjust if semver changes mid-track): +**Planned version cuts** (from pin `2.4.2`; adjust if semver changes mid-track): | Stage | ID | Cut | |---|---|---| @@ -130,6 +130,12 @@ than the default «meaningful step» rule in [§ Commits and release build](#com | 17 | panel-notifications | `2.3.0` | | 18 | from-header-binding | `2.4.0` | | 19 | code audit 2026-10-12 and its plan (docs only, owner-requested cut) | `2.4.1` (PATCH) | +| 20 | audit-2026-10-12 stage 0: release hygiene | `2.4.2` (PATCH) | +| 21 | audit-2026-10-12 stages 1 and 2 | `2.5.0` | +| 22 | audit-2026-10-12 stage 2b: the log tailer | `2.5.1` | +| 23 | audit-2026-10-12 stage 3 | `2.5.2` | +| 24 | audit-2026-10-12 stage 4 | `2.5.3` | +| 25 | audit-2026-10-12 stage 5 | `2.6.0` | Docs-only prep (checklists in plans, no product code) uses the same per-step commit rule but **no** version cut until the next product stage ships. diff --git a/docs/guide.md b/docs/guide.md index 97d2fdf..0ae95cd 100644 --- a/docs/guide.md +++ b/docs/guide.md @@ -184,14 +184,14 @@ cat ./data/setup-token #### Fixed image tag `deploy/docker-compose.yml` pins an explicit version (`ghcr.io/mixeme/selfpost:X.Y.Z`), -deliberately never `:latest`. The current pin is `2.4.1`. **No 2.x image is +deliberately never `:latest`. The current pin is `2.4.2`. **No 2.x image is published on ghcr.io yet** (the newest there is `1.3.0`); until one is, build it from the checkout under the pinned name, and Compose uses the local image instead of pulling: ```sh -docker build -f build/Dockerfile --build-arg VERSION=2.4.1 \ - -t ghcr.io/mixeme/selfpost:2.4.1 . +docker build -f build/Dockerfile --build-arg VERSION=2.4.2 \ + -t ghcr.io/mixeme/selfpost:2.4.2 . ``` `VERSION` must equal the tag: it is the version the backup check compares diff --git a/docs/roadmap.md b/docs/roadmap.md index a0d9102..883bf13 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -42,14 +42,15 @@ in `git log` and [CHANGELOG.md](../CHANGELOG.md). | from-header-binding | Hold a message's `From:` header against the application that sends it | shipped `2.4.0` | 9/9 | [plans/from-header-binding.md](plans/from-header-binding.md) | | panel-redesign | Panel redesign (accepted mockups, design contract) | shipped `2.0.0` | 27/27 | [plans/panel-redesign.md](plans/panel-redesign.md) | | schema-squash | Squash SQLite migrations into a 2.x baseline | built in panel-redesign (stage 1) | — | [plans/panel-redesign.md](plans/panel-redesign.md) | -| audit-2026-10-12 | Follow-ups of the 2026-10-12 full-tree code audit, seven stages | agreed (2026-10-12: stage 0 first, then 1+2; the rest after) | 7/61 | [audit-2026-10-12.md](audit-2026-10-12.md) | +| audit-2026-10-12 | Follow-ups of the 2026-10-12 full-tree code audit, seven stages | in progress (stage 0 shipped `2.4.2`; next stages 1+2 → `2.5.0`) | 7/61 | [audit-2026-10-12.md](audit-2026-10-12.md) | **Recommended order** (not binding; owner, 2026-10-09: feature order follows development convenience): **panel-redesign** shipped as `2.0.0` (2026-10-11) and **inbound-antispam-panel** as `2.1.0` (2026-10-12), built in the new component kit — styling its two screens once instead of twice. **delivery-log-storage** shipped as `2.2.0` the same day, **panel-notifications** as `2.3.0` and -**from-header-binding** as `2.4.0`. +**from-header-binding** as `2.4.0`. Stage 0 of +[audit-2026-10-12](audit-2026-10-12.md) shipped as `2.4.2` (2026-10-14). Nothing is agreed after it: every remaining item is a candidate. panel-docs shipped in [CHANGELOG.md](../CHANGELOG.md) `[1.8.0]`; dmarc-reports in `[1.7.0]`