# Release notes format Name: `vX.Y.Z-beta - Short theme` (theme is 2 to 6 words, sentence case). Tag: `vX.Y.Z-beta`, always with the `v`. Body, in this order. Omit a section only when it would be empty, except Upgrading, which is always present. 1. Intro: one or two plain sentences on what the release is about. No heading. 2. `## New`: user-visible features. Group with a bold title line (`**Group name**`) followed by bullets. 3. `## Improvements and fixes`: flat bullets. 4. `## API`: one bullet per endpoint change, `METHOD /v1/path` in backticks, then behaviour and status codes. Prefix breaking or shape changes with "Changed:". 5. `## Under the hood`: dependencies, tests, docs, architecture. Only when relevant to contributors. 6. `## Upgrading`: binary replacement, schema/migration changes, new env vars, behaviour changes for existing installs. 7. `## Known limitations`: only when there are real ones. Rules: bullets are full sentences ending with a period; user-facing wording, no commit prefixes; sentence-case headings; no horizontal rules, no metadata block, no "Pre-1.0" boilerplate (the prerelease flag says it); every release ships all 6 binaries from `task release`. ## Published releases Each body lives in `docs/releases/.md`. Publish with `tea releases create --tag --title " - " --note-file docs/releases/.md --prerelease --asset ` after `task release`, with one `--asset` per file: the six binaries, `bin/checksums.txt` and `bin/checksums.txt.sig`. `task release` produces all eight and fails before building when the signing key is missing or wrong (see [deployment.md](deployment.md#release-signing-key-maintainers-once)). Never publish a release without the two checksum files. | Tag | Theme | | --- | --- | | `2.0.0-beta` (legacy tag without the `v`, kept as is) | Vue 3 SPA and domain-driven backend | | `v2.1.0-beta` | Image upload in the editor | | `v2.2.0-beta` | Image crop, image removal & reset screens | | `v2.3.0-beta` | Multi-user invitations, display names & profile page | | `v2.4.0-beta` | Owner role, invite management & Settings page | | `v2.5.0-beta` | Media library & image picker | | `v2.6.0-beta` | Signed updates and browser restart | | `v2.6.2-beta` | English and French interface | | `v2.7.0-beta` | Markdown and block article bodies | | `v2.8.0-beta` | API keys and API reference | | `v2.8.1-beta` | Docker deployment | | `v2.8.2-beta` | Security headers and clearer log in errors | | `v2.8.3-beta` | Security policy fixes for the web app | | `v2.9.0-beta` | Media duplicate purge | | `v3.0.0-beta` | Activity log, more databases and S3 storage | | `v3.1.0-beta` | Image variants | | `v3.2.0-beta` | Article lists, editor links and activity export |