gitconfig uses goreleaser together with GitHub Actions to produce and publish release artefacts.
Each release produces:
CGO_ENABLED=0.asdf-gitconfig plugin).The project follows Semantic Versioning:
v<MAJOR>.<MINOR>.<PATCH>
| Change | Increment |
|---|---|
| Breaking API / behaviour change | MAJOR |
| New, backward-compatible feature | MINOR |
| Bug fix, docs, chore | PATCH |
main is clean and passinggit checkout main
git pull
./hack/dev.sh all # fmt + lint + test
# Replace x.y.z with the new version
git tag -a vx.y.z -m "Release vx.y.z"
git push origin vx.y.z
Pushing a tag that matches v* starts the release workflow, which:
goreleaser release --clean using the config in .goreleaser.yaml.gitconfig --version
gitconfig locations
To test the goreleaser config locally without creating a release:
goreleaser release --snapshot --clean
# Artefacts are written to dist/
ls dist/
.goreleaser.yaml referenceLocated at the repository root. Key settings:
| Setting | Value |
|---|---|
| Binary name | gitconfig |
| Entry point | ./cmd |
| Target OS | linux, darwin, windows |
| Target arch | amd64, arm64 |
| CGO | disabled (CGO_ENABLED=0) |
To add a new platform, edit the goos / goarch lists in .goreleaser.yaml and open a PR.
For urgent fixes that cannot wait for the next planned release:
git checkout -b fix/<description> vx.y.z