chore(release): plugin-version discipline (workflow#758)#22
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Per workflow#758 Layer 3 — mirrors workflow-plugin-digitalocean#165 (canonical template).
.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.minEngineVersion→0.61.0(requiressdk.ResolveBuildVersion+IaCServeOptions.BuildVersionfrom workflow v0.61.0).internal.ProviderVersion→internal.Version(default"dev") to match the canonical-X *.Version=ldflag thevalidate-contractgate expects.cmd/workflow-plugin-azure/main.go: passessdk.ResolveBuildVersion(internal.Version)toIaCServeOptions.BuildVersion. Binary's runtime version surfaces via GetManifest RPC even when committed plugin.json shows the sentinel..goreleaser.yaml: ldflag now targetsinternal.Version.release.yml: pre-buildwfctl plugin validate-contract --for-publish+ post-build--release-dirverification;setup-wfctlpinned tov0.61.0.v0.57.0 → v0.61.0.Test plan
GOWORK=off go build ./...— greenGOWORK=off go test ./... -count=1 -timeout 180s— all greenwfctl plugin validate-contract .— PASSwfctl plugin validate-contract --for-publish --tag v0.0.1 .— PASSrelease.ymlgates fire on nextv*tag push (post-merge)Out of scope
Rollback
Revert PR. Restores sync workflow, workflow pin, version string, and ldflag target. Pure-additive forward; revert is clean.
🤖 Generated with Claude Code