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に表示されるコミットタイプを完全に制御したいチーム、または異なるセクション見出しを使用する他のバージョニングツールから移行するプロジェクト向け。

試してみる — Semantic Release Config Builder

フルツールを開く