From 1e1bcc6ce7df264566655803676d75f585ab0dca Mon Sep 17 00:00:00 2001 From: pucci Date: Sun, 28 Jun 2026 00:56:20 +0900 Subject: [PATCH] docs: add release & versioning policy (no post-tag pre-bump) Document the go-forward release process: master stays at the last shipped version, the version bump happens inside the release PR, and hotfixes branch off master. Codifies the lesson from the v0.9.1 Wayland-crash hotfix, where a post-tag pre-bump had stranded master ahead of the released line and forced an awkward version downgrade-merge. Takes effect from the next release. Co-Authored-By: Claude Opus 4.8 --- AGENTS.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 28124dda4..5e1c5d257 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -145,7 +145,15 @@ When pausing for approval, explain what the action does, why it's needed, and wh - **No `git push --force` to `master`.** If a force-push is genuinely needed (e.g. accidentally committed credentials), pause and confirm with the user before doing it. - **Never `--no-verify` past hooks** unless the user explicitly directs it. If a pre-commit hook fails, fix the underlying issue. -## 13. Pointers +## 13. Release & versioning + +- **No post-tag pre-bump.** Do not bump the version after cutting a release. `master` stays at the **last shipped version**; the bump happens **inside the release PR** itself, so `master` never runs ahead of what's published. +- **The four version files move in lockstep** in that release PR: `gui/backend/Cargo.toml`, `gui/backend/Cargo.lock` (`cargo update -p ani-gui`), `gui/frontend/package.json`, `gui/electron/package.json`. +- **Hotfixes branch off `master`.** Because `master == last shipped`, a patch branches straight off it — apply the fix, bump the patch version in the same PR, merge, tag from `master`. No release branch, no version gap to bridge. (Lesson from the v0.9.1 Wayland-crash hotfix: a prior post-tag pre-bump had stranded `master` ahead of the released line, forcing an awkward version downgrade-merge that regressed `master`.) +- **Milestones are decoupled from the version file.** After a tag, create the next-minor GitHub milestone for tracking and assign new PRs to it explicitly — do **not** infer the milestone from the in-tree version. +- **Releases publish as pre-releases** (`gh release create --prerelease`); pre-1.0, none are promoted to "Latest". + +## 14. Pointers - `docs/architecture.md` — public architecture - `docs/testing.md` — test pyramid, fixture management, coverage targets