Skip to content

Latest commit

 

History

History
78 lines (56 loc) · 1.65 KB

File metadata and controls

78 lines (56 loc) · 1.65 KB

Release Guide (xgit)

This guide is the shortest safe path to publish a new xgit release.

1) Pre-flight checks

Run from repo root:

go test ./...
go test -race ./...
go build -o xgit ./cmd/xgit
./scripts/e2e_smoke.sh
./scripts/e2e_guardrails.sh

Optional coverage snapshot:

go test ./... -coverprofile=coverage.out
go tool cover -func=coverage.out | tail -n 1

2) Update docs/version notes

  1. Move meaningful entries from Unreleased to a new version section in CHANGELOG.md.
  2. Verify README install commands still match release artifacts:
    • xgit_<version>_<os>_<arch>.tar.gz
    • xgit_<version>_windows_<arch>.zip
  3. Ensure any breaking changes are clearly called out.

3) Tag and publish (GitHub + GoReleaser)

git checkout main
git pull --ff-only
git tag -a v0.1.0 -m "xgit v0.1.0"
git push origin main
git push origin v0.1.0

Then publish release artifacts:

goreleaser release --clean

.goreleaser.yaml currently sets release.draft: true, so a draft release is created first.

4) Post-release validation

Validate installation from released assets:

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/hjun1052/xgit/main/scripts/install.sh | bash
xgit version

Windows (PowerShell)

irm https://raw.githubusercontent.com/hjun1052/xgit/main/scripts/install.ps1 | iex
xgit version

Quick sanity workflow:

xgit init --provider codex-cli --non-interactive
xgit review --base main

5) Announce

  • Update GitHub release notes (highlights + known limitations).
  • Share the release URL.
  • Track incoming issue reports for the first 24–48 hours.