Skip to content

feat(ci): automated versioning via release-please + commitlint - #20

Merged
CMaintz merged 1 commit into
mainfrom
feat/release-please
Sep 24, 2026
Merged

CMaintz merged 1 commit into
mainfrom
feat/release-please

Conversation

@CMaintz

@CMaintz CMaintz commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Automated versioning, as requested. Four pieces:

  • release-please (release-type: simple, v5, SHA-pinned) — on push to main, reads conventional commits since the last release and maintains a rolling release PR that bumps the version + regenerates the CHANGELOG. You cut the release by merging that PR (milestone-timed). No language package to publish — it just tracks version + changelog.
  • Floating v1 alias mover — release-please tags vX.Y.Z but doesn't manage the major alias; a follow-up step re-points v1 onto each release so @v1 consumers get minors/patches.
  • commitlint (v6.2.1, SHA-pinned) — enforces Conventional Commits on PRs, so a mistyped prefix can't produce a wrong bump. New blocking PR check (merge commits ignored).
  • Manifest seeded at 1.2.0.

Two things to know:

  1. CHANGELOG ownership transfers to release-please. I did not hand-edit CHANGELOG here — its first release PR will propose the next version (likely 1.3.0, given the recent feat: commits) with commit-derived notes. The existing hand-written ## [Unreleased] bullets will be superseded by that generated section — review the release PR before merging and tidy the stale Unreleased header once. chore(git): union merge driver for CHANGELOG.md #18's union driver becomes a harmless backstop.
  2. Token choice: default GITHUB_TOKEN (no PAT/secret). The release PR's own gate checks won't auto-run as a result — fine for a version/changelog PR you review. Swap to a PAT later if you want checks on it.

Merge this, and on the next push to main you'll see the first release PR appear.

release-please (release-type: simple, v5) maintains a rolling release PR from the
conventional commits since the last release, bumping the version + regenerating the
CHANGELOG; merging it cuts the release. A follow-up step moves the floating v1 alias
onto each release (release-please tags vX.Y.Z but doesn't manage the major alias).
commitlint enforces Conventional Commits on PRs so the bump/changelog input stays
honest. Uses the default GITHUB_TOKEN (no PAT); trade-off noted in the workflow.

Manifest seeded at 1.2.0 (current release). No CHANGELOG hand-edit here — release-please
takes ownership going forward; its first release PR proposes the next version.
@CMaintz
CMaintz merged commit b2eb6d7 into main Sep 24, 2026
4 checks passed
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