Skip to content

ci: automate releases with release-please manifest mode#51

Merged
pcamarajr merged 2 commits into
mainfrom
feat/release-please
Jun 12, 2026
Merged

ci: automate releases with release-please manifest mode#51
pcamarajr merged 2 commits into
mainfrom
feat/release-please

Conversation

@pcamarajr

@pcamarajr pcamarajr commented Jun 12, 2026

Copy link
Copy Markdown
Owner

What changes

Adapts Scout's release flow to this plugin monorepo — without npm publish: a release here is bump + CHANGELOG + tag + GitHub Release (installation stays git-based).

Release automation

  • release-please-config.json — manifest mode, one package per plugin (release-type: simple). Each package syncs its version into .claude-plugin/marketplace.json via extra-files with a root-relative path (/...) and the JSONPath filter $.plugins[?(@.name=='<plugin>')].version (validated against the same jsonpath lib release-please uses).
  • .release-please-manifest.json — anchors the current versions of the 6 plugins (avoids the no-tags 1.0.0 proposal). bootstrap-sha points at current main, so changelogs start clean.
  • .github/workflows/release-please.yml — opens/updates one release PR per plugin; merging it cuts the <plugin>-v<version> tag + GitHub Release.

Conventional-commit guardrails (mirroring Scout)

  • .github/workflows/lint-pr-title.yml — the repo squash-merges, so the PR title is the commit release-please reads; linted as a conventional commit with per-plugin suggested scopes.
  • husky commit-msg hook + commitlint (@commitlint/config-conventional) via a tooling-only, private package.json — the plugins themselves remain non-npm. Run npm install once to activate the hook.

Docs

  • /version-plugin skill removed — release-please owns version bumps; the new-plugin registration checklist moved into CLAUDE.md.
  • CLAUDE.md documents the release flow, the English-only rule for commits/PRs, and the step-by-step for registering a new plugin.

Expected side effects

  • Each plugin's first release will create CHANGELOG.md and version.txt in the plugin directory (artifacts of the simple release type).
  • Only feat/fix/! trigger releases — refactors users perceive as features should be titled feat(...).

🤖 Generated with Claude Code

pcamarajr and others added 2 commits June 12, 2026 10:13
One release-please package per plugin (release-type simple); each package
syncs its version into .claude-plugin/marketplace.json via a root-relative
extra-files jsonpath filter. PR titles are linted as conventional commits
since squash-merge titles are what release-please reads. /version-plugin
no longer bumps versions by hand — it registers new plugins and points
updates at the conventional-commit flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…LAUDE.md

Mirror Scout's guardrails: husky commit-msg hook running commitlint
(config-conventional) via a tooling-only private package.json. The
version-plugin skill is removed — release-please owns version bumps and
the new-plugin registration checklist now lives in CLAUDE.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pcamarajr pcamarajr merged commit 6cb37e9 into main Jun 12, 2026
2 checks passed
@pcamarajr pcamarajr deleted the feat/release-please branch June 12, 2026 08:39
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