commitlint configuration for mol-conventional-changelog
# Install commitlint cli and mol commitlint config
npm install --save-dev mol-commitlint-config @commitlint/cli
# Configure commitlint to use mol commitlint config
echo "module.exports = {extends: ['./node_modules/mol-commitlint-config']}" > commitlint.config.js
or in the package.json
{
"commitlint": {
"extends": [
"./node_modules/mol-commitlint-config"
]
}
}
To lint commits before they are created you can use the 'commitmsg' hook as described here
{
"scripts": {
"commitmsg": "commitlint -E GIT_PARAMS"
}
}
Detailed Setup instructions
- Local setup - Lint messages on commit with husky
- CI setup - Lint messages during CI builds
- A commit message consists of a header, body and footer.
- The header has a type and a subject:
{{type}}: {{subject}}
<BLANK LINE>
{{body}}
<BLANK LINE>
{{breaking changes}}
<BLANK LINE>
{{footer}}
The header is the only mandatory part of the commit message.
The first line (type + subject) is limited to 50 characters [enforced]
Any other line should be limited to 72 character [automatic wrapping]
This allows the message to be easier to read on GitHub as well as in various git tools.
Must be one of the following:
feat
: A new feature.fix
: A bug fix.docs
: Documentation only changes.style
: Markup-only changes (white-space, formatting, missing semi-colons, etc).refactor
: A code change that neither fixes a bug or adds a feature.perf
: A code change that improves performance.test
: Adding or updating tests.chore
: Build process or auxiliary tool changes.ci
: CI related changes.
The subject contains succinct description of the change:
- Use the imperative, present tense: "change" not "changed" nor "changes"
- No dot (.) at the end.
Just as in the subject, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior.
Affects [only on lerna environments]
Select the packages the commit affected.
Breaking Changes must start with the words BREAKING CHANGE:
.
The footer is the place to reference any tasks related to this commit.