運用マニュアル:changelogen によるリリース手順
運用マニュアル:changelogen によるリリース手順
本プロジェクトでは、リリースの自動化とチェンジログの生成に changelogen を採用しています。
概要と CI/CD フロー
changelogen を使用し、ローカルでのバージョン更新・タグ作成と GitHub Actions (CI) による自動パブリッシュを連携させます。モノレポ構成であり、パッケージごとに独立してバージョン管理を行うため、独立したタグ形式を使用します。
開発者 (Local):
pnpm run release:*を実行し、バージョン更新とタグを GitHub へプッシュ。GitHub Actions (CI):
v*または**@v*形式のタグを受け取り、ビルドと npm への公開を自動実行。
安全な公開(npm Provenance / OIDC)を保証するため、実際の
npm publishは CI 上でのみ行われます。ローカルのスクリプトにはpublish命令は含まれていません。
npm タグ(dist-tag)の管理
GitHub Actions によるパブリッシュ時、npm の latest タグは以下のルールで自動管理されます:
正式版リリース時: 常に
latestタグが更新されます。プレリリース版 (alpha/beta/rc) リリース時:
現在の
latestが「プレリリース版」または「未設定」の場合、新しくパブリッシュしたバージョンをlatestタグで公開します。すでに「正式版(安定版)」が
latestに存在する場合、本来の識別子(alphaなど)のタグで公開されます。意図: 安定版がない開発初期は最新の alpha/beta を最新として扱い、安定版リリース後は安定版を最新として保持するため。
認証方式(OIDC)による制約 本プロジェクトは npm Secret (Token) を持たず、GitHub Actions の OIDC 認証を利用しています。この方式では「1 回のパブリッシュで 1 つのタグしか付与できない」という制約があるため、上記ルールで
latestが優先された場合、alphaやbetaなどの個別タグは更新されず一つ前のバージョンのまま残ります。実用上、タグなしのnpm installで最新版が入ることを優先した設計です。
安定版が存在するのにプレリリースが latest になるケースについて 過去に安定版(例:
0.1.0)がリリースされていても、現在latestタグがプレリリース版(例:0.1.2-alpha.6)を指している状態であれば、システムは「現在はプレリリース運用フェーズである」と判断し、新しいプレリリース版でlatestを維持・更新し続けます。
リリース手順
1. リリースコマンドの実行
リリースしたいパッケージ(ルート lism-ui-vue、または apps/lism-ui-vue-nuxt)のディレクトリにて、リリースの種類に応じたコマンドを実行します。
正式版リリース (Latest)
pnpm run release
pnpm run release --patch
pnpm run release --minor
pnpm run release --majorプレリリース (Alpha / Beta / RC)
pnpm run release:alpha
pnpm run release:beta
pnpm run release:rcこれによって以下の処理が自動で行われます:
バージョン更新:
package.jsonのversionを更新。チェンジログ更新:
CHANGELOG.mdに変更点を追記。コミット & タグ: バージョン更新のみのコミットと、タグを作成。
タグ形式:
[email protected]または@lism-ui-vue/[email protected]
設定の詳細(モノレポ対応)
モノレポ内の各パッケージでタグが競合しないよう、ディレクトリごとに changelog.config.ts を配置してタグ形式を固定しています。
ルート (lism-ui-vue):
lism-ui-vue@v{{newVersion}}Nuxt モジュール (@lism-ui-vue/nuxt):
@lism-ui-vue/nuxt@v{{newVersion}}
これにより、GitHub Actions は **@v* 形式のタグを検知して適切にビルドを開始します。
コミットメッセージの重要性
changelogen はコミットメッセージに基づいてチェンジログを生成します。Conventional Commits に従ってください。
feat:... 新機能fix:... バグ修正perf:... パフォーマンス改善docs:... ドキュメントのみrefactor:... リファクタリングchore:... ビルド周り、ツールの変更ci:... CI/CD ファイルの変更
破壊的変更がある場合は、feat!: のように ! を入れるか、フッターに BREAKING CHANGE: と記載してください。