2.6 KiB
2.6 KiB
| summary |
|---|
| Release checklist for gogcli (GitHub release + Homebrew tap) |
Releasing gogcli
This playbook mirrors the Homebrew + GitHub flow used in ../camsnap.
When Peter says “release fully” / “release including Homebrew”: do all steps below (CI + tag + GitHub release + tap update + Homebrew sanity install).
Assumptions:
- Repo:
steipete/gogcli - Tap repo:
../homebrew-tap(tap:steipete/tap) - Homebrew formula name:
gogcli(installs thegogbinary)
0) Prereqs
- Clean working tree on
main. - Go toolchain installed (Go version comes from
go.mod). makeworks locally.- Access to the tap repo (e.g.
steipete/homebrew-tap).
1) Verify build is green
make ci
Optional: confirm GitHub Actions is green for the commit you’re tagging:
gh run list -L 5 --branch main
2) Update changelog
- Add a new section to
CHANGELOG.mdfor the version you’re releasing.
Example heading:
## 0.1.0 - 2025-12-12
3) Tag & push
git checkout main
git pull
# commit changelog + any release tweaks
git commit -am "release: vX.Y.Z"
git tag -a vX.Y.Z -m "Release X.Y.Z"
git push origin main --tags
4) Update (or add) the Homebrew formula
In the tap repo (assumed sibling at ../homebrew-tap), create/update Formula/gogcli.rb.
Recommended formula shape (build-from-source, no binary assets needed):
version "X.Y.Z"url "https://github.com/steipete/gogcli/archive/refs/tags/vX.Y.Z.tar.gz"sha256 "<sha256>"depends_on "go" => :build- Build:
system "go", "build", *std_go_args(ldflags: "-s -w"), "./cmd/gog"
Compute the SHA256 for the tag tarball:
curl -L -o /tmp/gogcli.tar.gz https://github.com/steipete/gogcli/archive/refs/tags/vX.Y.Z.tar.gz
shasum -a 256 /tmp/gogcli.tar.gz
Commit + push in the tap repo:
cd ../homebrew-tap
git add Formula/gogcli.rb
git commit -m "gogcli vX.Y.Z"
git push origin main
5) Sanity-check install from tap
brew update
brew uninstall gogcli || true
brew untap steipete/tap || true
brew tap steipete/tap
brew install steipete/tap/gogcli
brew test steipete/tap/gogcli
gog --help
6) Create GitHub Release
- Create a GitHub Release for tag
vX.Y.Z. - Title:
gogcli X.Y.Z(orgog X.Y.Zif you prefer the binary name). - Body: copy the bullets from
CHANGELOG.mdfor that version.
Tip (CLI):
gh release create vX.Y.Z --title "gogcli X.Y.Z" --notes-file /tmp/gogcli-release.md
Notes
gogcurrently does not print a version string; use tags + changelog as the source of truth.- If you later add
gog version, update this doc to validategog versionpost-install.