-
Notifications
You must be signed in to change notification settings - Fork 675
Open
Description
Problem
Release-please stopped creating releases after v0.31.0 because merge commits on master had non-conventional titles like Next Release or Release v0.31.0 — develop → master (#666). Release-please logs: commit could not be parsed: unexpected token.
This caused:
- No stable release for weeks (stuck at 0.31.0)
- Manual release needed for 0.33.0
- Homebrew-core stuck at old version
- User confusion about versions
Solution
Add a CI check that blocks merge if the PR title doesn't match conventional commit format:
^(feat|fix|chore|docs|ci|refactor|perf|test|build|style)(\(.+\))?!?: .+
Where to enforce
- All PRs targeting master — must be
feat:,fix:,chore:, etc. - All PRs targeting develop — same rule (so develop → master squash merges are already compliant)
Implementation
GitHub Action using amannn/action-semantic-pull-request or similar:
name: PR Title Check
on:
pull_request:
types: [opened, edited, synchronize]
branches: [master, develop]
jobs:
check-title:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}Also document
- develop → master must be squash merged (not merge commit)
- The squash title becomes the commit message on master
- Release-please parses this commit message to determine version bump
Context
- v0.31.0 worked because PR feat: 9-tool AI agent support + emoji removal #704 was squash merged with
feat: 9-tool AI agent support - v0.33.0 had to be released manually because PR Next Release #780 was merge committed with
Next Release
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels