diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-07 18:48:40 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-07 18:48:40 +0300 |
| commit | f279b4170e2c58d623cc9a1a83a177c2bdfb5eb3 (patch) | |
| tree | eeb1af564cb9576a60e344be7b2fba03289b8798 /AGENTS.md | |
| parent | ed0c051c55e40c1ab3cdc029ba4ca518ee407a1e (diff) | |
fix: tighten release manifest sync flow
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -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. |
