Scripts2026年7月26日·1 分钟阅读

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 就绪

这个资产会安全暂存

这个资产会先安全暂存。复制的指令会要求 Agent 读取暂存文件,并在激活脚本、MCP 配置或全局配置前先确认。

Stage only · 29/100策略:需暂存
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Stage only
信任
信任等级:Established
入口
Release-please Overview
安全暂存命令
npx -y tokrepo@latest install 588e2b01-888b-11f1-9bc6-00163e2b0d79 --target codex

先暂存文件;激活前需要读取暂存 README 和安装计划。

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

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产