mcpField
R
release-management

release-management

github.com/motormetricsクラウド・DevOps2248 回インストール今日更新
リポジトリ

release-management について

release-pleaseを使い、monorepo全体でバージョンを統一するリポジトリ向けのリリース管理スキルです。Conventional Commitsによるバージョン更新、Release PRのマージ時期、リリース状況の確認や問題調査を説明します。

主な機能

  1. 01Conventional Commitsによる更新規則
  2. 02monorepo全体のバージョン統一
  3. 03Release PRのマージ条件
  4. 04ghによるリリース状況の確認
  5. 05リリースワークフローのトラブルシューティング

活用シーン

  1. 01自動作成されたRelease PRの確認
  2. 02リリースPRをマージする時期の判断
  3. 03最近のリリースとワークフロー実行の確認
  4. 04Release PRが作成されない原因の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/motormetrics/motormetrics --skill release-management

インストール後、Claude Code で/release-managementを入力して読み込まれたか確認します。

詳細

リリース管理スキル

リリースは release-please で管理し、統一された「v」プレフィックス付きのバージョンを使用します。

仕組み

  1. main にプッシュされたコミットによって .github/workflows/release.yml が実行されます
  2. release-please が前回のリリース以降の Conventional Commits を解析します
  3. package.json をすべて更新し、CHANGELOG.md に新しいエントリーを先頭に追加する、タイトルが chore: release v{version} の Release PR を 1 件作成または更新します
  4. Release PR がマージされるまでリリースは行われません。マージのタイミングは Claude が判断します(下記参照)
  5. マージすると 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

コメント