ci: automate releases with release-please#5
Conversation
Add release-please to derive the suite version from Conventional
Commits instead of hand-bumping. The root `package.json` `version` is
the single suite version OMP records and shows; `extensions/*` members
are pinned to `0.0.0` since a git install never reads them.
Enforce the convention locally with an `hk` `commit-msg` hook
(`check_conventional_commit`) so a non-conforming message is rejected
before it reaches `master`, where release-please parses it.
The release job scopes `contents`/`issues`/`pull-requests` writes to
itself, leaving the workflow default at `permissions: {}`.
Also bump the `@oh-my-pi/pi-coding-agent` dev type dependency to
`^16.2.9` and reconcile `bun.lock`, keeping the manifest and lockfile
consistent in one change.
Ave Deus Mechanicus
|
Warning Review limit reached
Next review available in: 48 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This comment was marked as outdated.
This comment was marked as outdated.
Add a `concurrency` group keyed on workflow + ref so overlapping pushes to `master` cannot reconcile the same release PR and tags at once. Use `cancel-in-progress: false` to queue rather than cancel: the release path runs sequential, non-atomic API calls (update PR, create tag, create release), and cancelling mid-run could leave a tag with no release. Serializing avoids that partial state. By the will of the Machine God
What
Wire up automated versioning + releases for the plugin suite via release-please, and enforce the Conventional Commits it depends on.
.github/workflows/release-please.yaml— runs on push tomaster. Top-levelpermissions: {}; the release job alone getscontents/issues/pull-requests: write. Action SHA-pinned (@45996ed…,v5.0.0), matching the repo's hardening convention.release-please-config.json+.release-please-manifest.json— single root package.,release-type: node,include-component-in-tag: false(cleanvX.Y.Ztags). Manifest seeds1.0.0to match rootpackage.json.hk.pkl— newcommit-msghook (check_conventional_commit, hk's native util — no new tool dep) rejects non-conforming messages locally.extensions/rules-guard/package.json— memberversionpinned to0.0.0(members aren't versioned independently; OMP never reads a memberversionon a git install).README.md/AGENTS.md— document the release flow, the single-root-version model, and the enforced convention (incl. PR titles).@oh-my-pi/pi-coding-agentdev-dep bump to^16.2.9+ reconciledbun.lock, kept consistent in one commit.How versioning works now
Root
package.jsonversionis the single suite version OMP records inomp-plugins.lock.jsonand shows inomp plugin list. Merges tomasteras Conventional Commits (fix:→ patch,feat:→ minor,feat!:→ major) accrue into a release PR; merging it bumps the version, writesCHANGELOG.md, and tagsvX.Y.Z.Notes
commit-msghook and load-bearing for release computation. PR titles must conform too, since a squash-merge uses the title as the commit subject.v1.0.0tag now exists onmaster, so the README's#vX.Y.Zpin path resolves today.GITHUB_TOKEN, so it will not re-trigger CI (diff isversion+ changelog only). A PAT would be needed if CI-on-release-PR is ever wanted.Verification
Bun.YAML).release-please-config.jsonvalidated against release-please's published JSON schema — no invalid keys.commit-msghook proven: rejects non-conventional (exit 1), accepts conventional (exit 0).hk check --allandbun checkboth pass;bun install --dry-runconfirms lock ↔ manifest in sync.Summary by CodeRabbit
New Features
Documentation
Chores