Skip to content

MailOnline/mol-commitlint-config

Repository files navigation

Build Status Commitizen friendly

mol-commitlint-config

commitlint configuration for mol-conventional-changelog

Setup

# 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

Commit Message Format

  • 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.

Type

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.

Subject

The subject contains succinct description of the change:

  • Use the imperative, present tense: "change" not "changed" nor "changes"
  • No dot (.) at the end.

Body

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

Breaking Changes must start with the words BREAKING CHANGE: .

Footer

The footer is the place to reference any tasks related to this commit.