Skip to content

chore(release): plugin-version discipline (workflow#758)#22

Merged
intel352 merged 1 commit into
mainfrom
chore/758-release-discipline
May 23, 2026
Merged

chore(release): plugin-version discipline (workflow#758)#22
intel352 merged 1 commit into
mainfrom
chore/758-release-discipline

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Summary

Per workflow#758 Layer 3 — mirrors workflow-plugin-digitalocean#165 (canonical template).

  • Delete .github/workflows/sync-plugin-version.yml — sync mechanism retired; goreleaser before-hook + binary ldflag carry the release-tag truth.
  • plugin.json.version"0.0.0" sentinel (flat M.m.p, ParseSemver-compatible).
  • plugin.json.minEngineVersion0.61.0 (requires sdk.ResolveBuildVersion + IaCServeOptions.BuildVersion from workflow v0.61.0).
  • Rename internal.ProviderVersioninternal.Version (default "dev") to match the canonical -X *.Version= ldflag the validate-contract gate expects.
  • cmd/workflow-plugin-azure/main.go: passes sdk.ResolveBuildVersion(internal.Version) to IaCServeOptions.BuildVersion. Binary's runtime version surfaces via GetManifest RPC even when committed plugin.json shows the sentinel.
  • .goreleaser.yaml: ldflag now targets internal.Version.
  • release.yml: pre-build wfctl plugin validate-contract --for-publish + post-build --release-dir verification; setup-wfctl pinned to v0.61.0.
  • Bump workflow pin v0.57.0 → v0.61.0.

Test plan

  • GOWORK=off go build ./... — green
  • GOWORK=off go test ./... -count=1 -timeout 180s — all green
  • Local wfctl plugin validate-contract . — PASS
  • Local wfctl plugin validate-contract --for-publish --tag v0.0.1 . — PASS
  • release.yml gates fire on next v* tag push (post-merge)

Out of scope

  • Remaining Layer 3b pilot plugins (AWS, GCP, github) + the broader sweep tracked under workflow#758.

Rollback

Revert PR. Restores sync workflow, workflow pin, version string, and ldflag target. Pure-additive forward; revert is clean.

🤖 Generated with Claude Code

Layer 3 mechanical migration mirroring workflow-plugin-digitalocean#165.

- Delete .github/workflows/sync-plugin-version.yml — sync mechanism retired;
  goreleaser before-hook + binary ldflag carry the release-tag truth.
- plugin.json.version -> "0.0.0" sentinel.
- plugin.json.minEngineVersion -> 0.61.0 (requires sdk.ResolveBuildVersion +
  IaCServeOptions.BuildVersion from workflow v0.61.0).
- Rename internal.ProviderVersion -> internal.Version (default "dev") to match
  the canonical -X *.Version= ldflag the validate-contract gate expects.
- cmd/workflow-plugin-azure/main.go: wire sdk.ResolveBuildVersion(internal.Version)
  via IaCServeOptions.BuildVersion. Runtime binary surfaces the injected tag via
  GetManifest RPC even though committed plugin.json shows the sentinel.
- .goreleaser.yaml: ldflag now targets internal.Version.
- release.yml: pre-build wfctl plugin validate-contract --for-publish +
  post-build --release-dir verification; setup-wfctl pinned to v0.61.0.
- Bump workflow pin v0.57.0 -> v0.61.0; GOWORK=off go mod tidy.

Verification:
- GOWORK=off go build ./... — green
- GOWORK=off go test ./... -count=1 -timeout 180s — all green
- wfctl plugin validate-contract . — PASS
- wfctl plugin validate-contract --for-publish --tag v0.0.1 . — PASS

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@intel352 intel352 merged commit 7b02379 into main May 23, 2026
4 checks passed
@intel352 intel352 deleted the chore/758-release-discipline branch May 23, 2026 21:04
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