1.0.0 • Published 4 years ago
@nrsk/config-conventional v1.0.0
@nrsk/config-conventional
Customised and relaxed @commitlint/config-conventional.
Getting started
npm i -D @commitlint/cli @nrsk/config-conventionalRules
Note: The following rules are considered problems and will yield a non-zero exit code when not met.
type-enum
- 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" # passestype-case
- condition:
typeis in casevalue - rule:
always - level:
error - value:
'lowerCase'
echo "FIX: some message" # fails
echo "fix: some message" # passestype-empty
- condition:
typeis empty - rule:
never - level:
error
echo ": some message". # fails
echo "fix: some message" # passesscope-case
- condition:
scopeis in casevalue - rule:
always - level:
error - value:
'lowerCase'
echo "fix(SCOPE): some message" # fails
echo "fix(scope): some message" # passessubject-case
- 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" # passessubject-empty
- condition:
subjectis empty - rule:
never - level:
error
echo "fix:" # fails
echo "fix: some message" # passessubject-full-stop
- condition:
subjectends withvalue - rule:
never - level:
error - value:
'.'
echo "fix: some message." # fails
echo "fix: some message" # passesheader-max-length
- condition:
headerhasvalueor less characters - rule:
always - level:
error - value:
100
echo "fix: some message that is way too long..." # fails
echo "fix: some message" # passesfooter-leading-blank
- 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"footer-max-line-length
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"body-leading-blank
- condition:
bodyshould have a leading blank line - rule:
always - level:
warning
# warning
echo "fix: some message
body"
# passes
echo "fix: some message
body"body-max-line-length
- 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"License
Unlicense. Do whatever you want!
1.0.0
4 years ago