release-management について
release-pleaseを使い、monorepo全体でバージョンを統一するリポジトリ向けのリリース管理スキルです。Conventional Commitsによるバージョン更新、Release PRのマージ時期、リリース状況の確認や問題調査を説明します。
主な機能
- 01Conventional Commitsによる更新規則
- 02monorepo全体のバージョン統一
- 03Release PRのマージ条件
- 04ghによるリリース状況の確認
- 05リリースワークフローのトラブルシューティング
活用シーン
- 01自動作成されたRelease PRの確認
- 02リリースPRをマージする時期の判断
- 03最近のリリースとワークフロー実行の確認
- 04Release PRが作成されない原因の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ motormetrics/ motormetrics --skill release-managementインストール後、Claude Code で/release-managementを入力して読み込まれたか確認します。
詳細
リリース管理スキル
リリースは release-please で管理し、統一された「v」プレフィックス付きのバージョンを使用します。
仕組み
mainにプッシュされたコミットによって.github/workflows/release.ymlが実行されます- release-please が前回のリリース以降の Conventional Commits を解析します
package.jsonをすべて更新し、CHANGELOG.mdに新しいエントリーを先頭に追加する、タイトルがchore: release v{version}の Release PR を 1 件作成または更新します- Release PR がマージされるまでリリースは行われません。マージのタイミングは Claude が判断します(下記参照)
- マージすると
v{version}タグと GitHub Release が作成されます
feat はマイナーバージョンを、fix と perf はパッチバージョンを引き上げます。feat! または BREAKING CHANGE フッターはメジャーバージョンを引き上げます。
Release PR のマージタイミング
この判断を行うのは Ru ではなく Claude です。機能 PR がマージされたときとトリアージ中に、オープン中の Release PR を確認し、以下の条件を満たしたらマージしてください。
次の場合はマージしてください:
featが 1 件以上含まれている場合、またはfixとperfのみで、7 日以上オープンしている場合
次の場合は保留してください:
mainの最新の本番デプロイが失敗した場合、またはそのデプロイに含まれる変更のリバートが保留中の場合- Release PR が
CHANGELOG.md、.release-please-manifest.json、およびversionフィールド以外も変更している場合は、マージせずに調査してください
次の場合は先に Ru に確認してください:
- メジャーバージョンの引き上げ(
feat!またはBREAKING CHANGEフッター)の場合
gh pr merge <number> --squash でマージし、main に chore: release v{version} のコミットが 1 件だけ入るようにしてください。その後、バージョンと PR のリンクを報告してください。
バージョン体系
- 形式:
v{major}.{minor}.{patch}(例:v5.31.0) - モノレポ全体でバージョンを統一します
- タグにコンポーネントのプレフィックスは付きません(
include-component-in-tag: false)
設定
release-please-config.json:ルートパッケージにはrelease-type: nodeを指定し、各ワークスペースのpackage.jsonをextra-filesに記載して、ルートと同じバージョンを共有します.release-please-manifest.json:現在のバージョンを記録します。release-please は各 Release PR でこれを更新します
新しいワークスペースパッケージを追加する際は、extra-files エントリーも追加してください。追加しないと、そのパッケージのバージョンがずれていきます。
リリース状況の確認
# View the open Release PR
gh pr list --label "autorelease: pending"
# View recent releases
gh release list --limit 5
# Check release workflow status
gh run list --workflow=release.yml --limit 5
デバッグ
Release PR がない
- リリースのトリガーになるのは
feat、fix、perf、および破壊的変更を含むコミットのみです。chore、docsなどはトリガーになりません - ワークフローが実行されたか確認してください:
gh run list --workflow=release.yml
Release PR にチェックがない
GITHUB_TOKENで作成された PR は他のワークフローをトリガーしないため、Release PR では PR チェックが実行されません。変更されるのはバージョンと変更履歴のみです
特定のバージョンを指定する
Release-As: x.y.zフッターを含むコミットを追加するか、release-please-config.jsonにrelease-asを設定してください
関連情報
- 変更履歴の詳細は
changelogスキルを参照してください - リリースのロールバックについては
deployment-rollbackスキルを参照してください - ワークフロー:
.github/workflows/release.yml
コメント
Markdown 対応