Release-Please Configuration¶
Release-please automates version management based on conventional commits. It creates release PRs with updated changelogs, version bumps, and Git tags.
Schema Validation
Always include the $schema property in your config file. It catches invalid options immediately and saves debugging time.
Overview¶
Release-please reads your commit history and:
- Groups changes by type (feat, fix, chore, etc.)
- Generates changelogs
- Bumps versions according to semantic versioning
- Creates pull requests for releases
- Tags releases when PRs merge
Configuration Files¶
release-please-config.json¶
The main configuration file defines packages and their versioning behavior:
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"include-v-in-tag": false,
"tag-separator": "-",
"changelog-sections": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "perf", "section": "Performance" },
{ "type": "refactor", "section": "Code Refactoring" },
{ "type": "docs", "section": "Documentation", "hidden": true },
{ "type": "chore", "section": "Maintenance" },
{ "type": "test", "section": "Tests", "hidden": true },
{ "type": "ci", "section": "CI/CD", "hidden": true }
],
"packages": {
"charts/my-app": {
"release-type": "helm",
"component": "my-app",
"include-component-in-tag": false
},
"packages/backend": {
"release-type": "node",
"component": "backend",
"package-name": "my-backend",
"include-component-in-tag": true
},
"packages/frontend": {
"release-type": "node",
"component": "frontend",
"package-name": "my-frontend",
"include-component-in-tag": true
}
},
"separate-pull-requests": true
}
.release-please-manifest.json¶
Tracks current versions for each package:
Configuration Options¶
Global Options¶
| Option | Description | Example |
|---|---|---|
include-v-in-tag |
Prefix tags with v |
true = v1.0.0, false = 1.0.0 |
tag-separator |
Separator between component and version | - = backend-1.0.0 |
separate-pull-requests |
Create one PR per component | Recommended for monorepos |
changelog-sections |
How to group commits in changelogs | See example above |
Package Options¶
| Option | Description | Values |
|---|---|---|
release-type |
Package ecosystem | node, helm, simple, python, go, etc. |
component |
Component name for tagging | Any string |
include-component-in-tag |
Include component in tag | true = backend-1.0.0 |
package-name |
Package name (for node, etc.) | Matches package.json name |
Schema Validation¶
Always validate configuration against the official schema:
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
This catches invalid options immediately. Options like release-name don't exist. The schema prevents wasted debugging time.
In This Section¶
- Release Types - Node, Helm, Simple, and changelog customization
- Extra-Files - Version tracking in arbitrary files
- Workflow Integration - GitHub Actions setup and outputs
- Troubleshooting - Common issues and solutions
Related¶
- Change Detection - Skip unnecessary builds
- Workflow Triggers - GITHUB_TOKEN compatibility
- Content Comparison - Skip version-only changes
References¶
- Release-please Action - GitHub Marketplace
- Release-please Repository - googleapis
- Manifest Releaser Documentation - Monorepo configuration
- Configuration Schema - JSON schema for validation