複数パッケージのモノレポリリースノート
複数のパッケージが一緒にバージョニングされリリースされるモノレポリリースのリリースノートの書き方。クロスパッケージの変更と互換性マトリックスを解説します。
Best Practices
詳細な説明
モノレポリリースノート
モノレポは、相互依存関係を持つ複数のパッケージが同時にリリースされることが多いため、リリースノートに独自の課題をもたらします。個別パッケージのユーザーが関連する変更を素早く見つけられるように整理する必要があります。
ベストプラクティス
- どのバージョンが一緒に動作するかを示す互換性マトリックスを常に含める
- 一つのパッケージの変更が別のパッケージの特定バージョンを必要とする場合のクロスパッケージ依存関係を記載
- 依存関係の深さ順にパッケージを並べる(コアパッケージが最初)
- 調整されたリリースですべてのパッケージに一貫したバージョン日付を使用
- 可能な場合は単一のアップグレードコマンドを提供
モノレポリリースのツール
- Lerna:
lerna version+lerna publishでチェンジログ生成 - Changesets: PRベースのチェンジログエントリ、協調的なモノレポに最適
- Turborepo + semantic-release: パッケージごとの自動リリース
ユースケース
コンポーネントライブラリ、フルスタックフレームワーク、関連ツール群のモノレポのリリース管理で、複数のnpmパッケージが調整されたバージョニングと明確なクロスパッケージ変更ドキュメントを必要とする場合。