semantic-releaseでconventionalcommitsプリセットを使用
デフォルトのangularプリセットの代わりにconventionalcommitsプリセットでsemantic-releaseを設定。コミットタイプからリリースへのマッピングとリリースノートのフォーマットをカスタマイズ。
Plugin Configuration
詳細な説明
conventionalcommitsプリセット
semantic-releaseはデフォルトでAngularコミット規約を使用しますが、conventionalcommitsプリセットはどのコミットタイプがリリースをトリガーするか、リリースノートのフォーマット方法について、より柔軟な設定を提供します。
設定
{
"branches": ["main"],
"plugins": [
["@semantic-release/commit-analyzer", {
"preset": "conventionalcommits"
}],
["@semantic-release/release-notes-generator", {
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{"type": "feat", "section": "Features", "hidden": false},
{"type": "fix", "section": "Bug Fixes", "hidden": false},
{"type": "perf", "section": "Performance", "hidden": false},
{"type": "docs", "section": "Documentation", "hidden": true}
]
}
}],
"@semantic-release/npm",
"@semantic-release/github"
]
}
angularとconventionalcommitsの比較
| 機能 | angular | conventionalcommits |
|---|---|---|
| セクションカスタマイズ | 限定的 | 完全制御 |
| 非表示タイプ | 設定不可 | hiddenプロパティ |
| Breaking changeフォーマット | フッターのみ | ヘッダー(!)とフッター |
セクション設定
release-notes-generatorのpresetConfig.types配列は、どのコミットタイプがリリースノートに表示されるか、どのセクション見出しの下に表示されるかを制御します。hidden: trueを設定すると、分析されたにもかかわらずリリースノートからそのタイプを除外します。
ユースケース
リリースノートのフォーマット方法やchangelogに表示されるコミットタイプを完全に制御したいチーム、または異なるセクション見出しを使用する他のバージョニングツールから移行するプロジェクト向け。