fix(release): embed plugin.json so Manifest.Name is populated#15
Merged
Merged
Conversation
Release v0.1.3 failed `wfctl plugin verify-capabilities` with: name: plugin.json="workflow-plugin-namecheap"; binary Manifest.Name="" version: plugin.json="0.1.0"; binary Manifest.Version="0.1.3" Mirrors the workflow-plugin-digitalocean / workflow-plugin-hover pattern: the IaC server's GetManifest RPC needs a `ManifestProvider` so the runtime truth-check sees the same Name + capability surface that plugin.json declares. Without it, `Manifest.Name` is the zero value and the post-build verify step rejects the artifact. Changes: - cmd/workflow-plugin-namecheap/main.go: add `_ \"embed\"` import + `//go:embed plugin.json` directive + `ManifestProvider: sdk.MustEmbedManifest(pluginJSON)` option on IaCServeOptions. - cmd/workflow-plugin-namecheap/plugin.json: committed copy alongside main.go for go:embed (mirrors DO + Hover layout). Both files kept in sync via the release-time validate-contract step. - plugin.json (root): bump version 0.1.0 → 0.1.4. The v0.1.3 tag is left in place for history; v0.1.4 is the first release that publishes successfully through the verify-capabilities gate. Unblocks workflow-registry PR 5 (DNS provider EnumerateAll cascade pin bump). Tagged v0.1.4 will be the manifest pin.
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
The v0.1.3 Release workflow failed
wfctl plugin verify-capabilities:Root cause: this plugin's
main.godid not passManifestProvidertoIaCServeOptions, so the binary's GetManifest RPC returned the zero-value PluginManifest. The post-build truth-check then seesManifest.Name=""and rejects the artifact.Fix (mirrors workflow-plugin-digitalocean + workflow-plugin-hover)
cmd/workflow-plugin-namecheap/main.go— add_ "embed"import +//go:embed plugin.json+ManifestProvider: sdk.MustEmbedManifest(pluginJSON)option.cmd/workflow-plugin-namecheap/plugin.json— committed copy alongsidemain.gosogo:embedresolves (mirrors DO layoutcmd/plugin/plugin.json+ root copy kept in sync viawfctl plugin validate-contract).plugin.json(root) — bump version0.1.0→0.1.4. v0.1.3 stays tagged for history; v0.1.4 is the first artifact that publishes through the verify-capabilities gate.Local verification
Name check now passes. Version check still reports the dev sentinel
0.0.0locally — release-time goreleaser ldflags inject the tag, matching the DO + Hover pattern.Unblocks
workflow-registry PR 5 (the DNS provider EnumerateAll cascade pin bump in
docs/plans/2026-05-26-dns-provider-contract.md).Test plan
GOWORK=off go test ./...green.wfctl plugin verify-capabilitieslocally: Name populated.🤖 Generated with Claude Code