この記事はドワンゴ Advent Calendar 2023の 24 日目の記事です。
ドワンゴ教育事業部でインターンとして参加させていただいている乗算記号と申します。
今回はAngular commit messageを基にコミットメッセージの書き方について紹介いたします。
Angular commit message
Angular commit messageとは、JavaScriptフレームワークであるAngularのレポジトリ内で使用されているコミットメッセージのフォーマットのことを指します。
構造はheader, body, footerからなります。
<header>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
Header
以下にCommit Message Headerを翻訳したものを示します。
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ 現在形で簡潔な要約, 大文字でない, 最後にピリオド(句点)なし
│ │
│ └─⫸ コミットの影響範囲: animations|bazel|benchpress|common|compiler|compiler-cli|core|
│ elements|forms|http|language-service|localize|platform-browser|
│ platform-browser-dynamic|platform-server|router|service-worker|
│ upgrade|zone.js|packaging|changelog|docs-infra|migrations|
│ devtools
│
└─⫸ コミットの種類: build|ci|docs|feat|fix|perf|refactor|test
Type
以下のいずれかから選択:
- build: ビルドシステムまたは外部の依存関係に影響を及ぼす変更(例: gulp, broccoli, npm等)
- ci: CI設定ファイルやスクリプトの変更 (例: CircleCi, SauceLabs等)
- docs: ドキュメントのみの変更 (例:コメント,TSDoc等)
- feat: 新機能の実装・スタイルの付与
- fix: 表示崩れ・バグ・不具合等の修正
- perf:パフォーマンスを向上させるコードの変更
- refactor: バグ修正や機能追加を含まないコードの変更、実装方法の変更
- test: 不足しているテストの追加や既存のテストの修正
- chore: コアコード以外のコード (test,story等 ※最新のangularでは廃止)
Scope
コミットの変更箇所を記載、変更したファイル名や上位のディレクトリ名等を記載、記載しないこともある。
Summary
- 現在型を用いて簡潔に述べる
- (.)や(。)で終わらない
- このコミットを適用した際にどうなるのかを簡潔に説明する
❌悪い例: Propsを受け取った際の挙動を実装
⭕️良い例: Propsを受け取った際にコンポーネントの色をPropsに応じて変更するように実装
Body
変更を行なった動機やなぜこの変更を行うのかを記載する。
Summaryと同じように現在形を用いて簡潔に述べる。
小さな変更だと記載しないこともある。
終わりに
インターンに参加してコミットメッセージを書く際に戸惑った経験があるため、記事にさせていただきました。
稚拙な文章ですので、ご意見ご指摘等あればコメントをお願いします。
また、レポジトリごとのルールに差があるかと思いますので困った際はレポジトリの規約に詳しい方に聞いてみてください。
参考