Skip to content

docs(sdk): document how the Go SDK is released - #1088

Merged
rmyndharis merged 1 commit into
mainfrom
docs/go-sdk-release-tagging
Aug 6, 2026
Merged

docs(sdk): document how the Go SDK is released#1088
rmyndharis merged 1 commit into
mainfrom
docs/go-sdk-release-tagging

Conversation

@rmyndharis

Copy link
Copy Markdown
Owner

The Go SDK has no publish workflow and cannot have one — Go has no registry to push to, so tagging is the release. Nothing in the repository recorded that, which is why the module has only ever been resolvable as a pseudo-version.

The load-bearing detail

The tag must carry the sdk/go/ module prefix, because the module lives in a subdirectory rather than at the repository root.

This is empirically confirmed rather than asserted: the repo already has bare v* app tags, and proxy.golang.org still answers v0.0.0-<date>-<commit> for github.com/rmyndharis/OpenWA/sdk/go — a bare tag does not apply to a module in a subdirectory. So go get works today, but callers cannot pin a release.

Also recorded

  • DefaultUserAgent in options.go carries the SDK version (openwa-go/0.1.0) and is sent on every request. It drifts silently if only the tag moves.
  • A published module version is immutable. Once the proxy has served it, deleting or moving the tag does not take it back; the remedy is a higher version plus, if needed, a retract directive. So tag a commit already green on main.

Scope

Docs only, deliberately. There is no publish step to automate, and sdk-ci.yml already tests sdk/go on every push to main, so a tag-triggered test job would re-run a check that has already passed on the same commit — after the tag is public and immutable, when it can no longer prevent anything.

Not reformatted: the file is not Prettier-clean on main and markdown is not gated by CI.

The Go SDK has no publish workflow and cannot have one — Go has no registry to
push to, so tagging IS the release. Nothing recorded that, so the module has
only ever been resolvable as a pseudo-version.

The tag must carry the sdk/go/ module prefix. Empirically confirmed: the repo
already has bare v* app tags, and proxy.golang.org still answers
v0.0.0-<date>-<commit> for the module, because a bare tag does not apply to a
module in a subdirectory.

Also records two things that bite silently: DefaultUserAgent in options.go
carries the SDK version and drifts if only the tag moves, and a published module
version is immutable once the proxy caches it — deleting the tag does not take
it back.

Left as-is: this file is not Prettier-clean on main and markdown is not gated by
CI, so reformatting would bury the change in noise.
@rmyndharis
rmyndharis force-pushed the docs/go-sdk-release-tagging branch from aedabe2 to ea9341b Compare August 6, 2026 03:17
@rmyndharis
rmyndharis merged commit b32dc99 into main Aug 6, 2026
13 checks passed
@rmyndharis
rmyndharis deleted the docs/go-sdk-release-tagging branch August 6, 2026 03:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant