Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 1.8 KB

File metadata and controls

38 lines (26 loc) · 1.8 KB

How-to release

There are two kinds of plugin entry in marketplace.json, and they release very differently. Check which kind you are touching before doing anything.

Remote plugins (git-subdir source)

Each remote plugin lives in its own repo and cuts its own releases (semantic-release → vX.Y.Z tag + GitHub Release). On release, that repo's CI opens a PR here bumping the plugin entry's pinned source.ref to the new tag. Merging the PR publishes the new version to everyone tracking this marketplace. main of each plugin repo is free for work-in-progress — only tagged commits are ever served, because every entry pins a ref.

Each plugin entry uses a git-subdir source so only the plugin's subdirectory is fetched.

Local plugins (relative-path source)

Some plugins live in this repo, under plugins/<name>/, and their entry uses a relative path as its source instead of a git-subdir object. These have no separate repo, no tag, and no pinned ref.

The consequence: there is nothing between a commit and the users. Merging to main publishes immediately — anyone who runs /plugin marketplace update pingvinen picks up whatever main says. So main is not a scratch area for local plugins the way it is for remote plugin repos. Do the work on a branch and merge it when it is actually ready.

To release a change to a local plugin:

  1. Edit the plugin's files under plugins/<name>/ on a branch.
  2. Bump version on the plugin's entry in .claude-plugin/marketplace.json. Semver by hand; nothing automates this.
  3. Update the plugin table in README.md if the description or the plugin list changed.
  4. Merge to main. That is the release.

Users on an older copy only see the change after /plugin marketplace update pingvinen followed by /plugin update <name>@pingvinen.