# 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. ## Install Save as a script file and run: # Release-please — Automated Release Management by Google ## Quick Use ```bash npm install release-please -g release-please bootstrap --token=$GITHUB_TOKEN --repo-url=owner/repo --release-type=node ``` ## 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 - https://github.com/googleapis/release-please - https://github.com/googleapis/release-please-action --- Source: https://tokrepo.com/en/workflows/asset-588e2b01 Author: Script Depot