Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 1.75 KB

RELEASING.md

File metadata and controls

40 lines (29 loc) · 1.75 KB

Releasing

This plugin is distributed through the Cursor Marketplace, straight from this GitHub repo. A release is a git tag plus a GitHub Release — there is no build or package step. Cursor installs the repo at a ref, so the tag is the artifact.

Versioning

We follow Semantic Versioning: MAJOR.MINOR.PATCH, tagged with the bare version (no v prefix). The current version lives in .cursor-plugin/plugin.json.

Bump When
MAJOR Breaking changes: renamed/removed skills or rules, or MCP changes that break existing installs.
MINOR New skill, rule, or tool guidance, or an additive capability.
PATCH Fixes, doc/README tweaks, prompt refinements with no new surface.

Day-to-day: every PR

When your PR changes plugin content (skills/, rules/, mcp.json), add an entry under ## [Unreleased] in CHANGELOG.md, grouped as Added / Changed / Fixed / Removed. Do not bump plugin.json yourself — the release workflow does that. The PR Check workflow fails if you change content without a changelog entry.

Cutting a release

  1. Make sure [Unreleased] in CHANGELOG.md reflects everything on main to be shipped.
  2. Go to Actions → Release → Run workflow.
  3. Pick the bump (patch / minor / major) and run.

The workflow then:

  • bumps version in .cursor-plugin/plugin.json,
  • renames ## [Unreleased] to ## [X.Y.Z] - <date> and opens a fresh empty [Unreleased],
  • commits chore(release): X.Y.Z to main,
  • creates and pushes the annotated tag X.Y.Z,
  • publishes a GitHub Release whose notes are that version's changelog section.

It fails fast if [Unreleased] is empty or the target tag already exists.