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