ScriptsJul 26, 2026·2 min read

Release-please — Automated Release Management by Google

Generates release PRs based on conventional commits, automating changelog generation and version bumping across multiple languages and monorepos.

Agent ready

Safe staging for this asset

This asset is staged first. The copied prompt tells the agent to inspect the staged files and ask before activating scripts, MCP config, or global config.

Stage only · 29/100Policy: stage
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Stage only
Trust
Trust: Established
Entrypoint
Release-please Overview
Safe staging command
npx -y tokrepo@latest install 588e2b01-888b-11f1-9bc6-00163e2b0d79 --target codex

Stages files first; activation requires review of the staged README and plan.

Introduction

Release-please automates CHANGELOG generation, version bumps, and GitHub releases based on conventional commit messages. Maintained by Google, it opens release PRs that, when merged, create tagged releases.

What Release-please Does

  • Parses conventional commits (feat, fix, chore) to determine semantic version bumps
  • Generates and maintains CHANGELOG.md from commit history
  • Opens release PRs bundling pending changes with updated versions
  • Creates GitHub releases with notes when release PRs merge
  • Supports monorepos with independent or linked versioning per package

Architecture Overview

Release-please runs as a Node.js CLI or GitHub Action. It reads commits since the last release tag, categorizes them via the Conventional Commits spec, calculates the next version, and generates a release PR. A manifest file tracks per-package release types and strategies with pluggable support for Node, Python, Java, Go, Ruby, and more.

Self-Hosting & Configuration

  • Install via npm or use the GitHub Action (googleapis/release-please-action)
  • Set release-type per package in release-please-config.json
  • Track versions in .release-please-manifest.json for monorepos
  • Use --target-branch for release trains or maintenance branches
  • Map commit types to changelog headings in the config file

Key Features

  • 20+ release strategies for different language ecosystems
  • Monorepo support with per-component and cross-component dependency updates
  • Customizable commit type to changelog section mapping
  • Linked versions for groups of packages sharing a version number
  • Plugin system for custom versioning and changelog formatting

Comparison with Similar Tools

  • semantic-release — Fully automated on push; release-please adds a PR review step before publishing
  • standard-version — Deprecated predecessor; release-please is CI-native and actively maintained
  • changesets — Requires manual changeset files; release-please infers changes from commits
  • GoReleaser — Go-specific; release-please is language-agnostic and focuses on versioning

FAQ

Q: Does release-please publish packages to npm or PyPI? A: No. It handles versioning, changelogs, and GitHub releases. Add separate CI steps for publishing.

Q: Can I use it without conventional commits? A: No. Conventional commits are required for automatic version bump detection.

Q: How does monorepo support work? A: Configure each package path in release-please-config.json with its own release type. Versions are tracked independently per component.

Q: What if multiple features merge before the release PR? A: All unreleased commits accumulate into a single release PR with the appropriate version bump.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets