release-upm
Unity Package Manager向けパッケージの自動リリース管理コマンド。任意のUPMリポジトリで前回リリースからの変更を分析し、適切なバージョニングとリリース作成を自動化します。
プロセス:
-
環境検証
- UPMパッケージ構造の確認(package.json存在チェック)
- Gitリポジトリの状態確認
- 作業ディレクトリのクリーン状態確認
-
リリース分析
- 最新リリースタグの特定
- 前回リリースからのコミット差分取得
- 変更内容の分析(新機能/バグ修正/破壊的変更)
-
バージョン決定
- コミットメッセージからのセマンティックバージョン推奨
- ユーザー確認による最終決定
- package.json更新
-
リリース実行
- バージョンアップコミット作成
- リリースタグ作成・プッシュ
- GitHubリリース作成(変更ログ自動生成)
実行例:
ステップ1: 環境検証
- package.json存在確認とUnity形式検証
- Gitリポジトリ状態確認
- 未コミット変更の確認
ステップ2: 変更分析
- 最新リリースタグ取得
- git log による差分コミット一覧
- gitmoji/conventional commits解析
ステップ3: バージョン推奨
- 破壊的変更検出 → Major
- 新機能検出 → Minor
- バグ修正のみ → Patch
- ユーザー確認とカスタマイズ
ステップ4: リリース作成
- package.jsonバージョン更新
- バージョンコミット作成
- タグ作成とリモートプッシュ
- GitHub Release作成
エラーハンドリング:
- package.json未発見: UPMパッケージでない場合の中断
- Gitリポジトリ未初期化: リポジトリ設定の確認要求
- 未コミット変更存在: 変更のコミット/破棄を促す
- リモートリポジトリ未設定: GitHub連携の設定確認
- 権限エラー: プッシュ/リリース権限の確認
- ネットワークエラー: リモート操作失敗時の対処
- 重複バージョン: 既存タグとの競合回避
- 不正なpackage.json: Unity Package形式の検証失敗
自動検出機能:
セマンティックバージョン推奨ロジック
- Major: "BREAKING CHANGE", "破壊的変更" 検出
- Minor: ":sparkles:", "feat:", "新機能" 検出
- Patch: ":bug:", "fix:", "バグ修正" 検出
コミットメッセージ解析
- Conventional Commits形式の自動認識
- Gitmoji形式の自動認識
- 日本語コミットメッセージの意図解析
変更ログ自動生成
- 機能追加/改善/修正のカテゴリ分類
- 破壊的変更の明示
- コントリビューター情報の含有
使用例:
# 基本実行(対話的にバージョン決定)
claude /release-upm
# 推奨バージョンで自動実行
claude /release-upm --auto
# 特定バージョンを指定
claude /release-upm 1.2.0
# ドライラン(実際のリリースなし)
claude /release-upm --dry-run
必要な環境:
- Git リポジトリ
- package.json(Unity Package形式)
- GitHub リモートリポジトリ
- gh CLI(GitHub CLI)の設定
- プッシュ/リリース権限