commitlint-config-iamnewton v1.0.1
Commitlint Config
A shareable Commitlint configuration for writing Git commits.
Installation
npm install --save-dev commitlint-config-iamnewtonUsage
In your project package.json add the following:
{
"commitlint": {
"extends": "iamnewton"
}
}Rules
Problems
The following rules are considered problems for commitlint-config-iamnewton and will yield a non-zero exit code when not met.
Consult docs/rules for a list of available rules.
type-enum
- condition:
typeis found in value - rule:
always value
[ 'build', 'ci', 'chore', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test' ]
echo "foo: some message" # fails
echo "fix: some message" # passestype-case
- description:
typeis in casevalue - rule:
always - value
'lowerCase'
echo "FIX: some message" # fails
echo "fix: some message" # passestype-empty
- condition:
typeis empty - rule:
never
echo ": some message" # fails
echo "fix: some message" # passesscope-case
- condition:
scopeis in casevalue - rule:
always
'lowerCase'echo "fix(SCOPE): some message" # fails
echo "fix(scope): some message" # passessubject-case
- condition:
subjectis in one of the cases['sentence-case', 'start-case', 'pascal-case', 'upper-case'] - rule:
never
echo "fix(SCOPE): Some message" # fails
echo "fix(SCOPE): Some Message" # fails
echo "fix(SCOPE): SomeMessage" # fails
echo "fix(SCOPE): SOMEMESSAGE" # fails
echo "fix(scope): some message" # passes
echo "fix(scope): some Message" # passessubject-empty
- condition:
subjectis empty - rule:
never
echo "fix:" # fails
echo "fix: some message" # passessubject-full-stop
- condition:
subjectends withvalue - rule:
never - value
'.'echo "fix: some message." # fails
echo "fix: some message" # passesheader-max-length
- condition:
headerhasvalueor less characters - rule:
always - value
72echo "fix: some message that is way too long and breaks the line max-length by several characters" # fails
echo "fix: some message" # passesVersioning
All modules, libraries, or frameworks use SemVer for its versioning providing us an opt-in approach to releases. This means we add a version number according to the spec, as you see below. So rather than force developers to consume the latest and greatest, they can choose which version to consume and test any newer ones before upgrading. Please the read the spec as it goes into further detail.
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes.
- MINOR version when you add functionality in a backward-compatible manner.
- PATCH version when you make backward-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.