Skip to content

ci: adopt release-please for commit-driven versioning - #34

Merged
vks-team merged 1 commit into
mainfrom
feat/adopt-release-please
Jul 7, 2026
Merged

ci: adopt release-please for commit-driven versioning#34
vks-team merged 1 commit into
mainfrom
feat/adopt-release-please

Conversation

@vks-team

@vks-team vks-team commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Item #6 of the CLI-flow alignment: replace the manual bump-version + changelog-fragment process with release-please (commit-driven versioning + CHANGELOG), matching the greennode-mcp flow. Also adds the Conventional Commits PR-title gate (item #3's title part), which is now meaningful because it drives release-please.

What changes for contributors

  • No more manual version/CHANGELOG edits. Open a PR with a Conventional Commit title (feat:/fix:/feat!:); squash-merge → the title is the release commit.
  • release-please opens a chore: release main PR that bumps go/cmd/root.go + CHANGELOG.md; merging it tags vX.Y.Z, creates the Release, and attaches binaries.

Implementation

  • release-please-config.json + .release-please-manifest.json — single package ., version 1.6.0; stamps go/cmd/root.go via an x-release-please-version marker; tag vX.Y.Z.
  • release-please.yml — maintains the release PR; when a release is cut, calls release.yml (reusable) to build + attach binaries in the same run (avoids the GITHUB_TOKEN "tags don't trigger workflows" trap).
  • release.yml — now also workflow_call (tag input); the release job creates-or-uploads via gh (works for both manual tag pushes and release-please).
  • pr-title.yml — enforces Conventional Commit PR titles.
  • Removed scripts/{bump-version,new-change,render-changelog} + .changes/. Updated CODEOWNERS, CONTRIBUTING, CLAUDE.md, docs/development, and PR template (also fixed a stale pytest line in the template).

Operational notes (repo settings — need a maintainer)

  1. Branch protection: add Conventional Commits title as a required check; set merge to squash-only so PR titles become the release commits.
  2. RELEASE_PLEASE_TOKEN (fine-grained PAT: contents + pull-requests write) is optional but recommended so the release PR's checks auto-run; without it, close & reopen the release PR once.
  3. First release-please run after merge will start from v1.6.0 and only propose a bump once new feat:/fix: PRs land.

Verified

JSON configs parse; go build + go test ./cmd/ green; grn --version still reports 1.6.0; no dangling references to the removed tooling.

Part of the CLI-onboarding alignment (#1 scaffold #32, #2 conventions #33, this #6). Remaining optional: #4/#5 per-product CLAUDE.md + agent skills.

Replace the manual bump-version + changelog-fragment flow with release-please:
- release-please-config.json + .release-please-manifest.json (single package ".",
  version tracked and stamped into go/cmd/root.go via an x-release-please-version
  marker); tag format vX.Y.Z.
- release-please.yml opens/maintains the release PR on push to main and, when a
  release is cut, calls release.yml to build + attach the binaries (avoids the
  GITHUB_TOKEN tag-does-not-trigger-workflows trap).
- release.yml is now also a reusable workflow (workflow_call tag input) and
  creates-or-uploads the release via gh.
- pr-title.yml enforces Conventional Commit PR titles (squash-merge -> release
  commit that release-please reads).
- Remove scripts/{bump-version,new-change,render-changelog} and .changes/;
  update CODEOWNERS, CONTRIBUTING, CLAUDE.md, docs/development, PR template.
@vks-team
vks-team merged commit 59227cc into main Jul 7, 2026
5 checks passed
@vks-team
vks-team deleted the feat/adopt-release-please branch July 25, 2026 15:10
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