Skip to content

Keep plugin.json version in sync with release tags#17

Merged
jclusso merged 1 commit into
masterfrom
plugin-version-sync
May 29, 2026
Merged

Keep plugin.json version in sync with release tags#17
jclusso merged 1 commit into
masterfrom
plugin-version-sync

Conversation

@jclusso
Copy link
Copy Markdown
Member

@jclusso jclusso commented May 29, 2026

Add a make release VERSION=x.y.z target that validates the version, rewrites the version field in .claude-plugin/plugin.json, commits, and tags v$(VERSION). It refuses to run on a dirty tree or with a non-semver version.

Add a verify-version job to the release workflow that gates GoReleaser: on a tag push it compares the tag against plugin.json and fails the release if they differ, so a forgotten bump can never ship.

Follow-up from PR #16.

Add a make release VERSION=x.y.z target that validates the version, rewrites the version field in .claude-plugin/plugin.json, commits, and tags v$(VERSION). It refuses to run on a dirty tree or with a non-semver version.

Add a verify-version job to the release workflow that gates GoReleaser: on a tag push it compares the tag against plugin.json and fails the release if they differ, so a forgotten bump can never ship.

Follow-up from PR #16.
Copilot AI review requested due to automatic review settings May 29, 2026 14:48
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a make release VERSION=x.y.z workflow that bumps .claude-plugin/plugin.json, commits, and tags, plus a CI guard that fails the release workflow when the pushed tag and plugin.json version disagree. This closes the gap left by PR #16 where the plugin manifest version could drift from release tags.

Changes:

  • New release target in Makefile that validates the version is semver, refuses to run on a dirty tree, rewrites plugin.json's version field, commits, and creates an annotated v$(VERSION) tag.
  • New verify-version job in .github/workflows/release.yml that compares GITHUB_REF_NAME (stripped of leading v) to the version in plugin.json via jq, blocking GoReleaser via needs: on mismatch.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
Makefile Adds release target: semver check, clean-tree check, in-place version rewrite, commit, and annotated tag.
.github/workflows/release.yml Adds verify-version job gating goreleaser to enforce tag/manifest agreement on every release.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jclusso jclusso merged commit 2264b0f into master May 29, 2026
4 checks passed
@jclusso jclusso deleted the plugin-version-sync branch May 29, 2026 15:01
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.

2 participants