aboutsummaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-04-07 18:48:40 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-04-07 18:48:40 +0300
commitf279b4170e2c58d623cc9a1a83a177c2bdfb5eb3 (patch)
treeeeb1af564cb9576a60e344be7b2fba03289b8798 /AGENTS.md
parented0c051c55e40c1ab3cdc029ba4ca518ee407a1e (diff)
fix: tighten release manifest sync flow
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index df94c1b2..7ae8b983 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -39,6 +39,34 @@ Default release flow:
```bash
just check
just release 0.x.y
+# wait for the GitHub release and all four binary assets to exist
+just update-latest-json 0.x.y
```
`just release 0.x.y` prepares the changelog entry, bumps `Cargo.toml`, runs tests, commits, tags, and pushes. GitHub Actions builds the binaries after the tag is pushed.
+
+`just update-latest-json 0.x.y` is the post-release website step. It uses `gh release view` against `ogulcancelik/herdr`, verifies the published release exists, rejects draft or prerelease releases, requires a non-empty release body, requires these four assets to exist, and only then rewrites `website/latest.json`:
+
+- `herdr-linux-x86_64`
+- `herdr-linux-aarch64`
+- `herdr-macos-x86_64`
+- `herdr-macos-aarch64`
+
+It also refuses to run if `website/latest.json` is already at the same or newer version. It leaves the file unstaged and prints the next commands to review, commit, and push.
+
+`website/latest.json` is the shipped updater source of truth. Keep its schema aligned with `src/update.rs`:
+
+```json
+{
+ "version": "0.x.y",
+ "notes": "### ...",
+ "assets": {
+ "linux-x86_64": "...",
+ "linux-aarch64": "...",
+ "macos-x86_64": "...",
+ "macos-aarch64": "..."
+ }
+}
+```
+
+The app update check and the in-app **What's New** flow both depend on that exact manifest shape.