A pure-Go implementation of the semantic-release contract — parses Conventional Commits since the last tag, decides the next version, tags, and publishes a GitHub Release. It powers the release workflow behind this site: every merge that says feat or fix flows through go-semantic-release to a new tag and a Fly.io deploy.

Deep dive: Writing semantic-release in Go, with real monorepo support → — the four monorepo discovery modes and why the Node original’s assumptions don’t survive a Go workspace.

Companions cover the ergonomic gaps around it:

Stack: Go · Conventional Commits · GitHub Actions