From 2224733a72820dc0b286b494e495d5a5dafe45e4 Mon Sep 17 00:00:00 2001 From: Teddy Katz Date: Sat, 28 Oct 2017 04:41:35 -0400 Subject: [PATCH] Chore: use eslint-plugin-rulesdir instead of --rulesdir for self-linting (#9164) --- .eslintignore | 1 + .eslintrc.js | 29 +++++++++++++++++++ .eslintrc.yml | 17 ----------- Makefile.js | 8 ++++- lib/rules/.eslintrc.yml | 4 +-- package.json | 1 + tests/lib/cli-engine.js | 4 +-- ...tion.js => consistent-docs-description.js} | 4 +-- ...-no-invalid-meta.js => no-invalid-meta.js} | 4 +-- tools/internal-rules/.eslintrc.yml | 4 +-- ...tion.js => consistent-docs-description.js} | 0 ...-no-invalid-meta.js => no-invalid-meta.js} | 0 12 files changed, 48 insertions(+), 28 deletions(-) create mode 100644 .eslintrc.js delete mode 100644 .eslintrc.yml rename tests/tools/internal-rules/{internal-consistent-docs-description.js => consistent-docs-description.js} (98%) rename tests/tools/internal-rules/{internal-no-invalid-meta.js => no-invalid-meta.js} (98%) rename tools/internal-rules/{internal-consistent-docs-description.js => consistent-docs-description.js} (100%) rename tools/internal-rules/{internal-no-invalid-meta.js => no-invalid-meta.js} (100%) diff --git a/.eslintignore b/.eslintignore index 93bcf0b4061..59229ab0f14 100644 --- a/.eslintignore +++ b/.eslintignore @@ -8,3 +8,4 @@ /tests/performance/** /tmp/** test.js +!.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000000..11c9ebe23ba --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,29 @@ +"use strict"; + +const path = require("path"); +const rulesDirPlugin = require("eslint-plugin-rulesdir"); + +rulesDirPlugin.RULES_DIR = path.join(__dirname, "tools/internal-rules"); + +module.exports = { + root: true, + plugins: [ + "eslint-plugin", + "node", + "rulesdir" + ], + extends: [ + "./packages/eslint-config-eslint/default.yml", + "plugin:node/recommended", + "plugin:eslint-plugin/recommended" + ], + rules: { + "eslint-plugin/consistent-output": "error", + "eslint-plugin/no-deprecated-context-methods": "error", + "eslint-plugin/prefer-output-null": "error", + "eslint-plugin/prefer-placeholders": "error", + "eslint-plugin/report-message-format": ["error", "[^a-z].*\\.$"], + "eslint-plugin/test-case-property-ordering": "error", + "eslint-plugin/test-case-shorthand-strings": "error" + } +}; diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index 8a03a0ed087..00000000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,17 +0,0 @@ -root: true - -plugins: - - eslint-plugin - - node -extends: - - "./packages/eslint-config-eslint/default.yml" - - "plugin:node/recommended" - - "plugin:eslint-plugin/recommended" -rules: - eslint-plugin/consistent-output: "error" - eslint-plugin/no-deprecated-context-methods: "error" - eslint-plugin/prefer-output-null: "error" - eslint-plugin/prefer-placeholders: "error" - eslint-plugin/report-message-format: ["error", '[^a-z].*\.$'] - eslint-plugin/test-case-property-ordering: "error" - eslint-plugin/test-case-shorthand-strings: "error" diff --git a/Makefile.js b/Makefile.js index 30220062d0b..505fc143dec 100644 --- a/Makefile.js +++ b/Makefile.js @@ -73,7 +73,7 @@ const NODE = "node ", // intentional extra space // Utilities - intentional extra space at the end of each string MOCHA = `${NODE_MODULES}mocha/bin/_mocha `, - ESLINT = `${NODE} bin/eslint.js --rulesdir tools/internal-rules/ --report-unused-disable-directives `, + ESLINT = `${NODE} bin/eslint.js --report-unused-disable-directives `, // Files MAKEFILE = "./Makefile.js", @@ -486,6 +486,12 @@ target.lint = function() { errors++; } + echo("Validating .eslintrc.js"); + lastReturn = exec(`${ESLINT} .eslintrc.js`); + if (lastReturn.code !== 0) { + errors++; + } + echo("Validating JSON Files"); lodash.forEach(JSON_FILES, validateJsonFile); diff --git a/lib/rules/.eslintrc.yml b/lib/rules/.eslintrc.yml index 22d3a30ce32..2a8d907935b 100644 --- a/lib/rules/.eslintrc.yml +++ b/lib/rules/.eslintrc.yml @@ -1,3 +1,3 @@ rules: - internal-no-invalid-meta: "error" - internal-consistent-docs-description: "error" + rulesdir/no-invalid-meta: "error" + rulesdir/consistent-docs-description: "error" diff --git a/package.json b/package.json index 22d082250ba..509b9510730 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "ejs": "^2.5.6", "eslint-plugin-eslint-plugin": "^1.2.0", "eslint-plugin-node": "^5.1.0", + "eslint-plugin-rulesdir": "^0.1.0", "eslint-release": "^0.10.1", "eslump": "1.6.0", "esprima": "^4.0.0", diff --git a/tests/lib/cli-engine.js b/tests/lib/cli-engine.js index 5026d4b197e..7cc1c12dc10 100644 --- a/tests/lib/cli-engine.js +++ b/tests/lib/cli-engine.js @@ -588,7 +588,7 @@ describe("CLIEngine", () => { engine = new CLIEngine({ cwd: originalDir, - configFile: ".eslintrc.yml" + configFile: ".eslintrc.js" }); const report = engine.executeOnFiles(["lib/cli*.js"]); @@ -602,7 +602,7 @@ describe("CLIEngine", () => { engine = new CLIEngine({ cwd: originalDir, - configFile: ".eslintrc.yml" + configFile: ".eslintrc.js" }); const report = engine.executeOnFiles(["lib/cli*.js", "lib/cli.?s", "lib/{cli,cli-engine}.js"]); diff --git a/tests/tools/internal-rules/internal-consistent-docs-description.js b/tests/tools/internal-rules/consistent-docs-description.js similarity index 98% rename from tests/tools/internal-rules/internal-consistent-docs-description.js rename to tests/tools/internal-rules/consistent-docs-description.js index 7e28659040a..164431640e6 100644 --- a/tests/tools/internal-rules/internal-consistent-docs-description.js +++ b/tests/tools/internal-rules/consistent-docs-description.js @@ -9,7 +9,7 @@ // Requirements //------------------------------------------------------------------------------ -const rule = require("../../../tools/internal-rules/internal-consistent-docs-description"), +const rule = require("../../../tools/internal-rules/consistent-docs-description"), RuleTester = require("../../../lib/testers/rule-tester"); //------------------------------------------------------------------------------ @@ -18,7 +18,7 @@ const rule = require("../../../tools/internal-rules/internal-consistent-docs-des const ruleTester = new RuleTester(); -ruleTester.run("internal-consistent-docs-description", rule, { +ruleTester.run("consistent-docs-description", rule, { valid: [ // wrong exports format: "internal-no-invalid-meta" reports this already diff --git a/tests/tools/internal-rules/internal-no-invalid-meta.js b/tests/tools/internal-rules/no-invalid-meta.js similarity index 98% rename from tests/tools/internal-rules/internal-no-invalid-meta.js rename to tests/tools/internal-rules/no-invalid-meta.js index 71dc0735c87..54b2c96283c 100644 --- a/tests/tools/internal-rules/internal-no-invalid-meta.js +++ b/tests/tools/internal-rules/no-invalid-meta.js @@ -9,7 +9,7 @@ // Requirements //------------------------------------------------------------------------------ -const rule = require("../../../tools/internal-rules/internal-no-invalid-meta"), +const rule = require("../../../tools/internal-rules/no-invalid-meta"), RuleTester = require("../../../lib/testers/rule-tester"); //------------------------------------------------------------------------------ @@ -18,7 +18,7 @@ const rule = require("../../../tools/internal-rules/internal-no-invalid-meta"), const ruleTester = new RuleTester(); -ruleTester.run("internal-no-invalid-meta", rule, { +ruleTester.run("no-invalid-meta", rule, { valid: [ // context.report() call with no fix diff --git a/tools/internal-rules/.eslintrc.yml b/tools/internal-rules/.eslintrc.yml index 22d3a30ce32..2a8d907935b 100644 --- a/tools/internal-rules/.eslintrc.yml +++ b/tools/internal-rules/.eslintrc.yml @@ -1,3 +1,3 @@ rules: - internal-no-invalid-meta: "error" - internal-consistent-docs-description: "error" + rulesdir/no-invalid-meta: "error" + rulesdir/consistent-docs-description: "error" diff --git a/tools/internal-rules/internal-consistent-docs-description.js b/tools/internal-rules/consistent-docs-description.js similarity index 100% rename from tools/internal-rules/internal-consistent-docs-description.js rename to tools/internal-rules/consistent-docs-description.js diff --git a/tools/internal-rules/internal-no-invalid-meta.js b/tools/internal-rules/no-invalid-meta.js similarity index 100% rename from tools/internal-rules/internal-no-invalid-meta.js rename to tools/internal-rules/no-invalid-meta.js