◾️はじめに
Git・Githubだけの話ではないのだが、 Semantic Versioning / Conventional Commitsについて学んだので メモしておく。 どちらも公式ドキュメントにちゃんとした日本語がサポートされているので 習得は比較的に容易かと思う、、、
目次
【1】Semantic Versioning 1)Semantic Versioningの構文 【2】Conventional Commits 1)Conventional Commitsの構文 2)BREAKING CHANGE 【3】どう役立つのか?
今回のキモ
* 「型(type)」と「BREAKING CHANGE」で、バージョン更新ルールを決める のが今回のキモ
【1】Semantic Versioning
* バージョン番号(XX.XX.XX)の付け方の規約
1)Semantic Versioningの構文
<Major ver>.<Minor ver>.<Patch ver>
| 更新ルール | 説明 |
|---|---|
| Major ver | APIの変更に互換性のない場合 |
| Minor ver | 後方互換性があり機能性を追加した場合 |
| Patch ver | 後方互換性を伴うバグ修正をした場合 |
【2】Conventional Commits
* コミットメッセージを統一するための規約 * 以下の公式ドキュメントに記載されている通り「 SemVer と協調動作」
https://www.conventionalcommits.org/ja/v1.0.0/
1)Conventional Commitsの構文
< type 型>[任意 scope スコープ]: < description タイトル> [任意 body 本文] [任意 footer(s) フッター]
例
# feat(型):allow provided config object to extend other configs(タイトル)
feat: allow provided config object to extend other configs
型
* ここがキモのその1
| Type | Explanations | Memo |
|---|---|---|
| fix: | バグ修正パッチ | Semantic Versioning における PATCH に相当 |
| feat: | 新機能の追加 | Semantic Versioning における MINOR に相当 |
| docs: | ドキュメント変更 | |
| style: | コードスタイル変更(改行修正など) | |
| refactor: | リファクタリング | |
| perf: | パフォーマンス向上のための修正 | |
| test: | テストの追加・修正 | |
| build: | ビルドシステムの変更/依存関係アップデート | |
| ci: | CI/CD の設定変更 | |
| chore: | その他の変更 |
2)BREAKING CHANGE
* フッター に BREAKING CHANGE: が書かれている or 型/スコープの直後に ! が追加されているコミットは API の破壊的変更 * Semantic Versioning における MAJOR に相当
例1: フッター に BREAKING CHANGE
feat: add new feature - part1 BREAKING CHANGE: This is a breaking change
例2: 型/スコープの直後に ! が追加されているコミット
feat!: add new feature - part2
【3】どう役立つのか?
* 例えば、以下のサイトのように、Git / Github管理で OSSのsemantic-releaseを使って、バージョン管理を自動化できる
https://qiita.com/komtaki/items/d89451aea1b146ca83d6
関連記事
Git ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/06/29/104028
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
リリース自動化ツール 〜 release-please / 入門編 〜
https://dk521123.hatenablog.com/entry/2025/10/11/152333
リリース自動化ツール 〜 semantic-release / 入門編 〜
https://dk521123.hatenablog.com/entry/2025/11/28/001355