Skip to main content
This document explains how our automated release process works using Release Please.

Overview

We use Release Please to automate releases. When you push to master, Release Please automatically:
  1. Parses commit messages for conventional commits
  2. Creates/updates a Release PR with version bumps and changelog
  3. Tags and creates a GitHub release when the Release PR is merged

How It Works

1. Write Conventional Commits

Use these prefixes in your commit messages:
  • feat: - New feature (minor version bump)
  • fix: - Bug fix (patch version bump)
  • feat!: or fix!: - Breaking change (major version bump)
  • chore:, docs:, refactor: - No version bump
feat: add user authentication
fix: resolve login button issue
feat!: change API response format

2. Push to Master

When commits with releasable changes (feat, fix, deps) are pushed to master, Release Please automatically creates or updates a Release PR.

3. Release PR Lifecycle

Release PRs have status labels:

Pending

autorelease: pending - PR is ready for review/merge

Tagged

autorelease: tagged - PR merged, release tagged

Published

autorelease: published - GitHub release published

4. Merge Release PR

When you merge the Release PR, Release Please:
  1. Updates CHANGELOG.md and version files
  2. Creates a git tag with the new version
  3. Creates a GitHub Release

Best Practices

  • Use squash-merge for PRs to maintain clean commit history
  • Write clear commit messages that explain the change’s impact
  • Review Release PRs before merging to ensure correct version bumps

Manual Version Override

To release a specific version, add Release-As: x.x.x to your commit body:
git commit --allow-empty -m "chore: release 2.0.0" -m "Release-As: 2.0.0"

Troubleshooting

No Release PR Created?

1

Check Releasable Commits

Ensure you have feat:, fix:, or deps: commits
2

Remove Stale Labels

Look for old PRs with autorelease: pending labels
3

Force Rerun

Add release-please:force-run label to trigger manually

Fix Release Notes

Edit the merged PR body and add:
BEGIN_COMMIT_OVERRIDE
feat: corrected commit message for release notes
END_COMMIT_OVERRIDE
This allows you to correct commit messages that will appear in the release notes after the fact.

Resources