Releases are driven by release-kit locally, with GoReleaser handling cross-platform binary builds in CI.
just release patch # or minor | major
This runs release-kit cut, which:
- Computes the next version (semver bump from the latest tag)
- Drafts release notes via LLM (deepseek-v4-pro-cloud via local LiteLLM proxy)
- Opens
$EDITORfor review and editing - Updates
CHANGELOG.mdvia git-cliff and commits it - Creates the GitHub release with the reviewed notes
- Pushes the tag to
origin
Pushing the tag triggers the Release GitHub Actions workflow, which runs
GoReleaser to:
- Build
coldkeyfor Linux/macOS/Windows (amd64 + arm64) - Attach
.tar.gz/.ziparchives andchecksums.txtto the existing GitHub release - Update the Homebrew cask in
pike00/homebrew-tap - Build and push the Docker image to
ghcr.io/pike00/coldkey
GoReleaser is configured with mode: keep-existing so it never overwrites the
LLM-drafted release notes.
| Recipe | What it does |
|---|---|
just changelog-preview |
Preview the unreleased CHANGELOG section (no writes) |
just changelog-backfill |
Regenerate CHANGELOG.md from full git history |
just notes-dry-run |
Draft LLM release notes for HEAD without cutting a release |
just release-yes patch |
Skip the confirm prompt (scripted use) |
- release-kit —
uv tool install --editable ~/projects/release-kit - git-cliff — invoked via
uvx git-cliff@latest(no install required) - GoReleaser — runs in CI; not needed locally
| File | Purpose |
|---|---|
release-kit.toml |
release-kit config: project name, LiteLLM model, voice notes for LLM |
cliff.toml |
git-cliff config (symlink to ~/projects/_templates/cliff.toml) |
release.just |
Shared just recipes (symlink to ~/projects/_templates/release.just) |
.goreleaser.yml |
GoReleaser config: builds, archives, Homebrew cask, Docker |