Motivation
The current release process is entirely manual and discourages frequent releases — see #1891 (comment).
Goals
- Release as soon as changes are merged
- Automate version bumping via semver
- Keep a structured changelog (categorized changes + PR references, similar to current format)
- Keep GitHub releases titled plainly by tag
Proposed approach
Use semantic-release as discussed in #1787, with prior art in https://github.com/mll-lab/php-utils.
- Enforce conventional PR titles via amannn/action-semantic-pull-request
- Squash-merge PRs to carry the conventional commit message
- Run semantic-release on push to master — determines version, updates changelog, creates GitHub release
Open questions
- Should
chore: commits (deps, CI) appear in the changelog?
- How to handle migration from the existing
CHANGELOG.md?
- Changelog plugin choice —
@semantic-release/changelog with custom template, or a community plugin mapping to Keep a Changelog categories?
Motivation
The current release process is entirely manual and discourages frequent releases — see #1891 (comment).
Goals
Proposed approach
Use semantic-release as discussed in #1787, with prior art in https://github.com/mll-lab/php-utils.
Open questions
chore:commits (deps, CI) appear in the changelog?CHANGELOG.md?@semantic-release/changelogwith custom template, or a community plugin mapping to Keep a Changelog categories?