Customised and relaxed @commitlint/config-conventional.
npm i -D @commitlint/cli @nrsk/config-conventionalNote: The following rules are considered problems and will yield a non-zero exit code when not met.
- condition:
typeis invalue - rule:
always - level:
error - value:
[build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test]
echo "foo: some message" # fails
echo "fix: some message" # passes- condition:
typeis in casevalue - rule:
always - level:
error - value:
'lowerCase'
echo "FIX: some message" # fails
echo "fix: some message" # passes- condition:
typeis empty - rule:
never - level:
error
echo ": some message". # fails
echo "fix: some message" # passes- condition:
scopeis in casevalue - rule:
always - level:
error - value:
'lowerCase'
echo "fix(SCOPE): some message" # fails
echo "fix(scope): some message" # passes- condition:
subjectis one of[sentence-case, start-case, pascal-case, upper-case] - rule:
never - level:
error
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" # passes- condition:
subjectis empty - rule:
never - level:
error
echo "fix:" # fails
echo "fix: some message" # passes- condition:
subjectends withvalue - rule:
never - level:
error - value:
'.'
echo "fix: some message." # fails
echo "fix: some message" # passes- condition:
headerhasvalueor less characters - rule:
always - level:
error - value:
100
echo "fix: some message that is way too long..." # fails
echo "fix: some message" # passes- condition:
footershould have a leading blank line - rule:
always - level:
warning
# fails
echo "fix: some message
BREAKING CHANGE: It will be significant"
# passes
echo "fix: some message
BREAKING CHANGE: It will be significant"
512characters is actually way more than you would usually need, but in my case smaller value was breaking my semantic-release workflow, because release notes generated by semantic-release were way too long, so my workflow kept failing.
- condition: each line in
footerhasvalueor less characters - rule:
always - level:
error - value:
512
# fails
echo "fix: some message
BREAKING CHANGE: footer with multiple lines
has a message that is way too long and will break the line rule 'line-max-length' by several characters"
# passes
echo "fix: some message
BREAKING CHANGE: footer with multiple lines
but still no line is too long"- condition:
bodyshould have a leading blank line - rule:
always - level:
warning
# warning
echo "fix: some message
body"
# passes
echo "fix: some message
body"- condition:
bodyeach line hasvalueor less characters - rule:
always - level:
error - value:
512
# fails
echo "fix: some message
body with multiple lines
has a message that is way too long and will break the line rule 'line-max-length' by several characters"
# passes
echo "fix: some message
body with multiple lines
but still no line is too long"Unlicense. Do whatever you want!