What is @commitlint/config-angular?
@commitlint/config-angular is a shareable configuration for commitlint that follows the Angular commit message guidelines. It helps enforce a consistent commit message format in your project, which is particularly useful for projects that follow the Angular style guide.
What are @commitlint/config-angular's main functionalities?
Enforcing Commit Message Format
This configuration enforces the Angular commit message format. By extending `@commitlint/config-angular`, your project will adhere to the Angular commit message conventions, ensuring consistency and readability.
{
"extends": ["@commitlint/config-angular"]
}
Customizing Rules
You can customize the commit message rules by extending the default configuration. In this example, the `type-enum` rule is customized to include specific types of commit messages such as `feat`, `fix`, `docs`, etc.
{
"extends": ["@commitlint/config-angular"],
"rules": {
"type-enum": [
2,
"always",
[
"feat",
"fix",
"docs",
"style",
"refactor",
"test",
"chore"
]
]
}
}
Other packages similar to @commitlint/config-angular
@commitlint/config-conventional
@commitlint/config-conventional is another shareable configuration for commitlint that follows the conventional commit message guidelines. It is similar to @commitlint/config-angular but adheres to the broader conventional commits specification rather than the Angular-specific guidelines.
commitizen
Commitizen is a tool that helps you write consistent commit messages by providing an interactive prompt. While @commitlint/config-angular enforces commit message rules, Commitizen assists in the creation of those messages, ensuring they follow a specified format.
cz-conventional-changelog
cz-conventional-changelog is an adapter for Commitizen that helps you write commit messages following the conventional changelog format. It is similar to @commitlint/config-angular in that it enforces a specific commit message format, but it does so through an interactive prompt rather than linting.
@commitlint/config-angular
Lint your commits, angular-style
Shareable commitlint
config enforcing the Angular commit convention.
Use with @commitlint/cli and @commitlint/prompt-cli.
Getting started
npm install --save-dev @commitlint/config-angular @commitlint/cli
echo "export default {extends: ['@commitlint/config-angular']};" > commitlint.config.js
Rules
Problems
The following rules are considered problems for @commitlint/config-angular
and will yield a non-zero exit code when not met.
Consult Rules reference for a list of available rules.
type-enum
-
condition: type
is found in value
-
rule: always
-
value
[
'build',
'ci',
'docs',
'feat',
'fix',
'perf',
'refactor',
'revert',
'style',
'test'
]
echo "foo: some message"
echo "fix: some message"
type-case
- description:
type
is in case value
- rule:
always
- value
'lowerCase'
echo "FIX: some message"
echo "fix: some message"
type-empty
- condition:
type
is empty - rule:
never
echo ": some message"
echo "fix: some message"
scope-case
- condition:
scope
is in case value
- rule:
always
'lowerCase'
echo "fix(SCOPE): some message"
echo "fix(scope): some message"
subject-case
- condition:
subject
is in one of the cases ['sentence-case', 'start-case', 'pascal-case', 'upper-case']
- rule:
never
echo "fix(SCOPE): Some message"
echo "fix(SCOPE): Some Message"
echo "fix(SCOPE): SomeMessage"
echo "fix(SCOPE): SOMEMESSAGE"
echo "fix(scope): some message"
echo "fix(scope): some Message"
subject-empty
- condition:
subject
is empty - rule:
never
echo "fix:"
echo "fix: some message"
subject-full-stop
- condition:
subject
ends with value
- rule:
never
- value
'.'
echo "fix: some message."
echo "fix: some message"
subject-exclamation-mark
- condition:
subject
must not have a !
before the :
marker - rule:
never
The angular commit
convention
does not use a !
to define a breaking change in the commit subject. If you
want to use this feature please consider using the conventional commit
config.
- condition:
header
has value
or less characters - rule:
always
- value
72
echo "fix: some message that is way too long and breaks the line max-length by several characters"
echo "fix: some message"
Warnings
The following rules are considered warnings for @commitlint/config-angular
and will print warning messages when not met.
body-leading-blank
- condition: Body begins with blank line
- rule:
always