Skip to content

ci: gate PRs on a version bump when commands change - #6

Closed
nadaverell wants to merge 1 commit into
mainfrom
ci/version-bump-check
Closed

nadaverell wants to merge 1 commit into
mainfrom
ci/version-bump-check

Conversation

@nadaverell

@nadaverell nadaverell commented Jun 27, 2026 •

Copy link
Copy Markdown
Contributor

Why

Plugins set an explicit version, so Claude Code only delivers updates to installed users when it's bumped. A command change can otherwise merge to main and never reach anyone — which just happened: the /pr edit (#4) shipped no bump and went unreleased until a follow-up.

What it does

A pull_request check that:

  • fails the PR if anything under plugins/skyhook-skills/commands/ changed but plugin.json version wasn't bumped vs the base branch, and
  • verifies the three version fields agree (marketplace.json metadata.version, marketplace.json plugins[].version, plugin.json version).

Chosen over auto-bump-on-merge deliberately: the maintainer keeps the semver decision, it needs no write access to main, and non-shipping edits (README, etc.) aren't forced to bump.


Note

Low Risk
CI-only addition with no runtime, auth, or shipped command behavior changes.

Overview
Adds a pull_request → main workflow that blocks merges when shipped plugin commands change without a release bump, and when version metadata drifts across files.

On every PR it compares plugins/skyhook-skills/commands/ to the base branch; if anything changed, plugins/skyhook-skills/.claude-plugin/plugin.json version must differ from base or the job fails with a clear error. It always checks that plugin.json version, .claude-plugin/marketplace.json metadata.version, and marketplace.json plugins[0].version match.

Checkout uses fetch-depth: 0 so git show / three-dot diffs against origin/${BASE_REF} work. No auto-bump — maintainers choose semver; README-only PRs aren’t forced to bump.

Reviewed by Cursor Bugbot for commit 9709667. Bugbot is set up for automated code reviews on this repo. Configure here.

Plugins set an explicit version, so Claude Code only ships updates to installed
users when it's bumped — a change can otherwise merge and never reach anyone (as
just happened with the /pr edit). Adds a PR gate that requires a plugin.json
version bump whenever commands/ changes, and verifies the three version fields
(marketplace metadata + plugin entry + plugin.json) stay in sync. No auto-bump:
the maintainer still chooses the semver, and non-shipping edits aren't forced.
@nadaverell

Copy link
Copy Markdown
Contributor Author

Switching to auto-bump-on-merge (main is unprotected, so the bot can bump directly) — superseded by the auto-version-bump workflow. The check approach still made you do the bump manually; auto-bump removes the step.

@nadaverell nadaverell closed this Jun 27, 2026
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