Semantic Commit Messages
The reasons for these conventions
- automatic generating of the changelog
- simple navigation through Git history (e.g. ignoring the style changes)
See how a minor change to your commit message style can make you a better developer.
Format
`<type>(<scope>): <subject>`
`<scope>` is optionalExample
feat: add hat wobble
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.Example <type> values:
| Type | Meaning |
|---|---|
feat | new feature for the user, not a new feature for build script |
fix | bug fix for the user, not a fix to a build script |
docs | changes to the documentation |
style | formatting, missing semi colons, etc; no production code change |
refactor | refactoring production code, eg. renaming a variable |
test | adding missing tests, refactoring tests; no production code change |
chore | updating grunt tasks etc; no production code change, e.g. dependencies upgrade |
perf | performance improvement change, e.g. better concurrency performance |
ci | updating CI configuration files and scripts e.g. .gitHub/workflows/*.yml |
Example <Scope> values:
initrunnerwatcherconfigweb-serverproxy
The <scope> can be empty (e.g. if the change is a global or difficult to assign to a single component), in which case the parentheses are omitted. In smaller projects such as Karma plugins, the <scope> is empty.
Message Subject (First Line)
The first line cannot be longer than 72 characters and should be followed by a blank line. The type and scope should always be lowercase as shown below
Message Body
use as in the <subject>, use the imperative, present tense: "change" not "changed" nor "changes". Message body should include motivation for the change and contrasts with previous behavior.
Message footer
Referencing issues
Closed issues should be listed on a separate line in the footer prefixed with "Closes" keyword as the following:
Closes #234or in the case of multiple issues:
Closes #123, #245, #992References
Source: dae upstream · AGPL-3.0 license.
