【セマンティックリリース】
semantic-release とは?
最終更新:
💡 「次のバージョンは何番?」をコミット履歴が自動で教えてくれる
コミットメッセージを解析し、次のバージョン番号の決定、リリースノート生成、パッケージ公開などを自動化するツール。実行する処理や公開先はプラグインと設定による。
📌 このページのポイント
semantic-releaseは何を自動化するの?
番号はどうやって決まるの?
既定の規約なら、fixはパッチ、featはマイナー、BREAKING CHANGEの記載がある破壊的変更はメジャーの更新になるよ。たとえば1.2.0から修正なら1.2.1、新機能なら1.3.0。複数の変更があれば、必要な更新の大きさを解析するんだ。
mainにマージすれば必ず公開される?
CHANGELOG.mdも既定で書き換わる?
npm以外にも使える?
公開先に合うプラグインや実行処理を設定すれば使えるよ。npm公開を無効にする設定もある。commitlintで規約を確認する方法も役立つけれど、必須の組み合わせではない。規約と実際の変更内容が合っているかはレビューしよう。
まとめ:ざっくりこれだけ覚えればOK!
「semantic-release」って出てきたら「コミット履歴からバージョンとリリースを全自動化するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「semantic-release」 = セマンティックなバージョンとリリースの自動化
💬 semanticはSemantic Versioning(セマンティックバージョニング)にも使われる言葉だよ。変更の影響をコミットの規約に従って判定し、バージョン番号へ反映する仕組みなんだ。