Skip to content

ci: add tag-driven release workflow - #1

Closed
makegov-hal[bot] wants to merge 6 commits into
mainfrom
ci/release-workflow
Closed

ci: add tag-driven release workflow#1
makegov-hal[bot] wants to merge 6 commits into
mainfrom
ci/release-workflow

Conversation

@makegov-hal

@makegov-hal makegov-hal Bot commented May 15, 2026

Copy link
Copy Markdown

Summary

  • Adds .github/workflows/release.yml — fires on push of a vX.Y.Z tag.
  • Runs the test suite one last time, creates a GitHub Release with auto-generated notes, then pokes proxy.golang.org so pkg.go.dev picks up the new version promptly.

Why now (and why a separate PR)

Held back from the initial commit so we could land it deliberately and confirm the tag flow. The Go release pattern is just different enough from the sibling SDKs' npm/PyPI publish workflows that it's worth a focused review.

Testing

  • After merge, push a throwaway v0.0.0-test tag to confirm the workflow runs end-to-end.
  • Delete the test tag + release.
  • First real run will be v0.1.0.

Risks

  • Uses only the built-in GITHUB_TOKEN; no additional secrets required.
  • Worst case if it breaks: gh release create fails on the tag — re-run manually with gh release create <tag> --generate-notes. The proxy.golang.org poke is non-fatal (curl errors are swallowed); pkg.go.dev catches up on its own within ~30 min regardless.

infinityplusone and others added 6 commits May 15, 2026 14:31
Go SDK for the Tango API — federal contracts, IDVs, entities,
opportunities, grants, vehicles, and more, with dynamic response
shaping. Ships the full transport, error model, retry/rate-limit
handling, webhook signing+CRUD, and a curated subset of resource
methods. The sibling SDKs (tango-node, tango-python) are at v1.0.0;
this Go SDK starts at v0.1.0 and will grow toward parity in the 0.x
line.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
golangci-lint v1.64.8 was choking on Go 1.26 stdlib build-tagged files
(chacha20poly1305/fips140only_go1.26.go), cascading into bogus
"undefined: tango" typecheck errors against examples/. Linting against
the declared minimum Go version (1.23) is also the more conventional
choice for OSS — lint what you support.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pure whitespace — no semantic changes. Caught by the lint job once it
got past the Go 1.26 stdlib typecheck cascade.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- transport.go: defer the standard idiom that errcheck complains about
  by explicitly discarding the Close error.
- testutil_test.go: remove three unused helpers (newTestClientFull,
  singleResultHandler, singleRecordHandler) and the now-unused
  net/http/httptest + time imports. The remaining helpers are all in use.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mirrors the pattern in makegov/docs. Runs fast checks (gofmt, go vet,
end-of-file, trailing-whitespace) on commit, and golangci-lint on push
so contributors catch lint failures locally before CI does.

Local setup:

    brew install pre-commit   # or: pip install pre-commit
    make hooks

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Fires on push of a vX.Y.Z tag:
- runs the test suite one last time
- creates a GitHub Release with auto-generated notes
- pings proxy.golang.org so pkg.go.dev picks up the new version

No secrets beyond the built-in GITHUB_TOKEN.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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