diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-30 01:03:42 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-30 01:03:42 +0300 |
| commit | 9ae93b125249dead6169bdc505c11e0f43309e40 (patch) | |
| tree | a908af4e3264e33c6061d9bf1351b25871e94d7d | |
| parent | 74ad23120e2a3989bc801c95e476429d1262e0ce (diff) | |
docs: simplify release instructions
| -rw-r--r-- | AGENTS.md | 11 | ||||
| -rw-r--r-- | justfile | 12 |
2 files changed, 4 insertions, 19 deletions
@@ -64,24 +64,17 @@ 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 verify-release-state 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 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, creates the GitHub release, uploads all four binary assets, then updates `website/latest.json` on `master` automatically. -`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`: +The release workflow must publish these four assets: - `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. - -`just verify-release-state 0.x.y` is the final read-only verification step. It checks that the published GitHub release, the local `website/latest.json`, the live `https://herdr.dev/latest.json`, and the release asset URLs all match the same version and manifest contents. - `website/latest.json` is the shipped updater source of truth. Keep its schema aligned with `src/update.rs`: ```json @@ -28,7 +28,7 @@ build: build-libghostty-vt: scripts/build_vendored_libghostty_vt.sh -# Finalize changelog, bump version, commit, tag, push, trigger release build (usage: just release 0.1.1) +# Finalize changelog, bump version, commit, tag, push, and trigger the GitHub Release workflow (usage: just release 0.1.1) release version: @if [ -n "$(git status --porcelain)" ]; then \ echo "error: commit your changes first"; \ @@ -46,15 +46,7 @@ release version: git diff --cached --quiet || git commit -m "release: v{{version}}" git tag -a v{{version}} -m "v{{version}}" git push --follow-tags - @echo "v{{version}} released — GitHub Actions building binaries" - -# Update website/latest.json from a published GitHub release (usage: just update-latest-json 0.1.1) -update-latest-json version: - python3 scripts/changelog.py sync-latest-json --version {{version}} --output website/latest.json - -# Verify GitHub release, local manifest, live manifest, and asset URLs all agree (usage: just verify-release-state 0.1.1) -verify-release-state version: - python3 scripts/changelog.py verify-release-state --version {{version}} --output website/latest.json + @echo "v{{version}} released — GitHub Actions building binaries and updating website/latest.json" # Print default config default-config: |
