Skip to content

Release process

Release process

go-sdk follows the standard Go module release model: a release is a git tag. There is no separate publish step to go get a tagged version — the Go module proxy and pkg.go.dev index the tag automatically.

Versioning

  • Semantic Versioning (vMAJOR.MINOR.PATCH), with pre-release suffixes for the current alpha line (v0.0.1-alpha.N).
  • The module path is stable — github.com/ai-agent-assembly/go-sdk — so a major bump past v1 would add a /vN suffix per Go’s import-compatibility rule.
  • VERSION is not the release version; it pins the gateway protocol the SDK targets. See Compatibility.

Cutting a release

  1. Land all changes on master with CI green.

  2. If the gateway protocol changed, bump VERSION and update the conformance vectors; confirm with make test.

  3. Tag the commit and push the tag:

    git tag v0.0.1-alpha.4
    git push remote v0.0.1-alpha.4
  4. Publish the release notes on the GitHub Releases page for that tag.

What happens after the tag

  • go get github.com/ai-agent-assembly/go-sdk@v0.0.1-alpha.4 resolves through the module proxy immediately.
  • pkg.go.dev renders the godoc for the tag within minutes.
  • The goreleaser config (.goreleaser.yaml) is validated on every push to master by the goreleaser-check job; it is set up for source archives, with binary builds skipped (this is a library, not a CLI).

Consuming a pinned version

require github.com/ai-agent-assembly/go-sdk v0.0.1-alpha.3

Pin an exact tag while the SDK is pre-release; review the release notes before moving to a newer alpha.