From 2614d7544f5ca052b311a58ec5736aaf832434d8 Mon Sep 17 00:00:00 2001 From: Mario Nebl Date: Wed, 7 Nov 2018 21:02:29 +0100 Subject: [PATCH 1/3] fix: use correct label for failing empty subjects, see #476 --- @commitlint/rules/src/body-tense.js | 6 ------ @commitlint/rules/src/body-tense.test.js | 13 ------------- @commitlint/rules/src/footer-tense.js | 8 -------- @commitlint/rules/src/footer-tense.test.js | 13 ------------- @commitlint/rules/src/index.js | 4 ---- @commitlint/rules/src/lang.js | 3 --- @commitlint/rules/src/lang.test.js | 15 --------------- @commitlint/rules/src/subject-empty.js | 2 +- @commitlint/rules/src/subject-full-stop.js | 2 +- @commitlint/rules/src/subject-max-length.js | 2 +- @commitlint/rules/src/subject-tense.js | 8 -------- @commitlint/rules/src/subject-tense.test.js | 13 ------------- 12 files changed, 3 insertions(+), 86 deletions(-) delete mode 100644 @commitlint/rules/src/body-tense.js delete mode 100644 @commitlint/rules/src/body-tense.test.js delete mode 100644 @commitlint/rules/src/footer-tense.js delete mode 100644 @commitlint/rules/src/footer-tense.test.js delete mode 100644 @commitlint/rules/src/lang.js delete mode 100644 @commitlint/rules/src/lang.test.js delete mode 100644 @commitlint/rules/src/subject-tense.js delete mode 100644 @commitlint/rules/src/subject-tense.test.js diff --git a/@commitlint/rules/src/body-tense.js b/@commitlint/rules/src/body-tense.js deleted file mode 100644 index a5a5681420..0000000000 --- a/@commitlint/rules/src/body-tense.js +++ /dev/null @@ -1,6 +0,0 @@ -export default (parsed, when, value) => { - return [ - false, - `rules.body-tense is deprecated. Received [${when}, [${value.join(', ')}]]` - ]; -}; diff --git a/@commitlint/rules/src/body-tense.test.js b/@commitlint/rules/src/body-tense.test.js deleted file mode 100644 index 358f3484a9..0000000000 --- a/@commitlint/rules/src/body-tense.test.js +++ /dev/null @@ -1,13 +0,0 @@ -import test from 'ava'; -import parse from '@commitlint/parse'; -import bodyTense from './body-tense'; - -test('returns deprecation warning', async t => { - const actual = bodyTense(await parse('test: \n'), 'always', [ - 'present-imperative' - ]); - t.deepEqual(actual, [ - false, - 'rules.body-tense is deprecated. Received [always, [present-imperative]]' - ]); -}); diff --git a/@commitlint/rules/src/footer-tense.js b/@commitlint/rules/src/footer-tense.js deleted file mode 100644 index 3b74a40afa..0000000000 --- a/@commitlint/rules/src/footer-tense.js +++ /dev/null @@ -1,8 +0,0 @@ -export default (parsed, when, value) => { - return [ - false, - `rules.footer-tense is deprecated. Received [${when}, [${value.join( - ', ' - )}]]` - ]; -}; diff --git a/@commitlint/rules/src/footer-tense.test.js b/@commitlint/rules/src/footer-tense.test.js deleted file mode 100644 index b97ffd24af..0000000000 --- a/@commitlint/rules/src/footer-tense.test.js +++ /dev/null @@ -1,13 +0,0 @@ -import test from 'ava'; -import parse from '@commitlint/parse'; -import footerTense from './footer-tense'; - -test('returns deprecation warning', async t => { - const actual = footerTense(await parse('test: subject\nbody'), 'always', [ - 'present-imperative' - ]); - t.deepEqual(actual, [ - false, - 'rules.footer-tense is deprecated. Received [always, [present-imperative]]' - ]); -}); diff --git a/@commitlint/rules/src/index.js b/@commitlint/rules/src/index.js index b21ed391f0..4cf3561442 100644 --- a/@commitlint/rules/src/index.js +++ b/@commitlint/rules/src/index.js @@ -5,16 +5,13 @@ export default { 'body-max-length': require('./body-max-length'), 'body-max-line-length': require('./body-max-line-length'), 'body-min-length': require('./body-min-length'), - 'body-tense': require('./body-tense'), 'footer-empty': require('./footer-empty'), 'footer-leading-blank': require('./footer-leading-blank'), 'footer-max-length': require('./footer-max-length'), 'footer-max-line-length': require('./footer-max-line-length'), 'footer-min-length': require('./footer-min-length'), - 'footer-tense': require('./footer-tense'), 'header-max-length': require('./header-max-length'), 'header-min-length': require('./header-min-length'), - lang: require('./lang'), 'references-empty': require('./references-empty'), 'scope-case': require('./scope-case'), 'scope-empty': require('./scope-empty'), @@ -27,7 +24,6 @@ export default { 'subject-full-stop': require('./subject-full-stop'), 'subject-max-length': require('./subject-max-length'), 'subject-min-length': require('./subject-min-length'), - 'subject-tense': require('./subject-tense'), 'type-case': require('./type-case'), 'type-empty': require('./type-empty'), 'type-enum': require('./type-enum'), diff --git a/@commitlint/rules/src/lang.js b/@commitlint/rules/src/lang.js deleted file mode 100644 index 02ee5a76d5..0000000000 --- a/@commitlint/rules/src/lang.js +++ /dev/null @@ -1,3 +0,0 @@ -export default (parsed, when, value) => { - return [false, `rules.lang is deprecated. Received [${when}, ${value}]`]; -}; diff --git a/@commitlint/rules/src/lang.test.js b/@commitlint/rules/src/lang.test.js deleted file mode 100644 index bb6970b205..0000000000 --- a/@commitlint/rules/src/lang.test.js +++ /dev/null @@ -1,15 +0,0 @@ -import test from 'ava'; -import parse from '@commitlint/parse'; -import check from './lang'; - -test('returns a deprecation warning', async t => { - const actual = check( - await parse('(): this is a serious subject'), - 'always', - 'eng' - ); - t.deepEqual(actual, [ - false, - 'rules.lang is deprecated. Received [always, eng]' - ]); -}); diff --git a/@commitlint/rules/src/subject-empty.js b/@commitlint/rules/src/subject-empty.js index 26fe375668..707947f2a3 100644 --- a/@commitlint/rules/src/subject-empty.js +++ b/@commitlint/rules/src/subject-empty.js @@ -7,6 +7,6 @@ export default (parsed, when) => { return [ negated ? notEmpty : !notEmpty, - message(['message', negated ? 'may not' : 'must', 'be empty']) + message(['subject', negated ? 'may not' : 'must', 'be empty']) ]; }; diff --git a/@commitlint/rules/src/subject-full-stop.js b/@commitlint/rules/src/subject-full-stop.js index b410f509f0..010a8f4c54 100644 --- a/@commitlint/rules/src/subject-full-stop.js +++ b/@commitlint/rules/src/subject-full-stop.js @@ -12,6 +12,6 @@ export default (parsed, when, value) => { return [ negated ? !hasStop : hasStop, - message(['message', negated ? 'may not' : 'must', 'end with full stop']) + message(['subject', negated ? 'may not' : 'must', 'end with full stop']) ]; }; diff --git a/@commitlint/rules/src/subject-max-length.js b/@commitlint/rules/src/subject-max-length.js index 2a810bed73..ba0f03e49c 100644 --- a/@commitlint/rules/src/subject-max-length.js +++ b/@commitlint/rules/src/subject-max-length.js @@ -9,6 +9,6 @@ export default (parsed, when, value) => { return [ maxLength(input, value), - `footer must not be longer than ${value} characters` + `subject must not be longer than ${value} characters` ]; }; diff --git a/@commitlint/rules/src/subject-tense.js b/@commitlint/rules/src/subject-tense.js deleted file mode 100644 index 68ea82cba6..0000000000 --- a/@commitlint/rules/src/subject-tense.js +++ /dev/null @@ -1,8 +0,0 @@ -export default (parsed, when, value) => { - return [ - false, - `rules.subject-tense is deprecated. Received [${when}, [${value.join( - ', ' - )}]]` - ]; -}; diff --git a/@commitlint/rules/src/subject-tense.test.js b/@commitlint/rules/src/subject-tense.test.js deleted file mode 100644 index 9e537a9e21..0000000000 --- a/@commitlint/rules/src/subject-tense.test.js +++ /dev/null @@ -1,13 +0,0 @@ -import test from 'ava'; -import parse from '@commitlint/parse'; -import subjectTense from './subject-tense'; - -test('returns deprecation warning', async t => { - const actual = subjectTense(await parse('test: '), 'always', [ - 'present-imperative' - ]); - t.deepEqual(actual, [ - false, - 'rules.subject-tense is deprecated. Received [always, [present-imperative]]' - ]); -}); From e7a3d504d1cb474c60b0d25223019a507dc87aa5 Mon Sep 17 00:00:00 2001 From: Mario Nebl Date: Wed, 7 Nov 2018 21:03:36 +0100 Subject: [PATCH 2/3] chore: budge to husky api change --- package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 73e4687600..5e8fbcdf09 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,10 @@ "build": "lerna run build --stream --parallel --include-filtered-dependencies", "clean": "npx lerna clean --yes && npx lerna run clean --stream --parallel --include-filtered-dependencies", "commit": "node @commitlint/prompt-cli/cli.js", - "commitmsg": "node @commitlint/cli/lib/cli.js -E GIT_PARAMS", "deps": "lerna run deps", "pkg": "lerna run pkg", "docs": "docsify serve docs", "lint": "lerna run lint", - "precommit": "lint-staged", "publish": "lerna publish --conventional-commits", "reinstall": "yarn clean && yarn install", "start": "lerna run start --stream --parallel --include-filtered-dependencies", @@ -101,5 +99,11 @@ "npx": "9.7.1", "prettier": "1.10.2", "xo": "0.20.3" + }, + "husky": { + "hooks": { + "commit-msg": "node @commitlint/cli/lib/cli.js -E HUSKY_GIT_PARAMS", + "pre-commit": "lint-staged" + } } } From dcc268963874090392710c79754bfbded1907d40 Mon Sep 17 00:00:00 2001 From: Mario Nebl Date: Wed, 7 Nov 2018 21:26:40 +0100 Subject: [PATCH 3/3] test: adapt to corrected subject message --- @commitlint/cli/src/cli.test.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/@commitlint/cli/src/cli.test.js b/@commitlint/cli/src/cli.test.js index 94de3faf65..4a5bd64ec2 100644 --- a/@commitlint/cli/src/cli.test.js +++ b/@commitlint/cli/src/cli.test.js @@ -157,7 +157,7 @@ test('should pick up parser preset and fail accordingly', async t => { 'type(scope): subject' ); t.is(actual.code, 1); - t.true(actual.stdout.includes('message may not be empty [subject-empty]')); + t.true(actual.stdout.includes('may not be empty')); }); test('should pick up parser preset and succeed accordingly', async t => { @@ -264,17 +264,27 @@ test('should fail for invalid formatters from flags', async t => { }); test('should work with absolute formatter path', async t => { - const formatterPath = path.resolve(__dirname, '../fixtures/custom-formatter/formatters/custom.js'); + const formatterPath = path.resolve( + __dirname, + '../fixtures/custom-formatter/formatters/custom.js' + ); const cwd = await git.bootstrap('fixtures/custom-formatter'); - const actual = await cli(['--format', formatterPath], {cwd})('test: this should work'); + const actual = await cli(['--format', formatterPath], {cwd})( + 'test: this should work' + ); t.true(actual.stdout.includes('custom-formatter-ok')); t.is(actual.code, 0); }); test('should work with relative formatter path', async t => { - const cwd = path.resolve(await git.bootstrap('fixtures/custom-formatter'), './formatters'); - const actual = await cli(['--format', './custom.js'], {cwd})('test: this should work'); + const cwd = path.resolve( + await git.bootstrap('fixtures/custom-formatter'), + './formatters' + ); + const actual = await cli(['--format', './custom.js'], {cwd})( + 'test: this should work' + ); t.true(actual.stdout.includes('custom-formatter-ok')); t.is(actual.code, 0);