From a0f534329e87cf7b5851e772d1d8bb05faa44b9f Mon Sep 17 00:00:00 2001 From: Jordi Kloosterboer Date: Mon, 6 Oct 2025 10:42:08 -0600 Subject: [PATCH] Add @eslint-community/eslint-comments dependency Add the recommended rules of disable-enable-pair, no-aggregating-enable, no-duplicate-disable, no-unlimited-disable, no-unused-disable, no-unused-enable as errors and the one we most care about, require-description, (as a warning) which is a direct replacement of bestpractices/no-eslint-disable. --- demo/.eslintrc.js | 1 - demo/example.js | 6 +- demo/test/snapshots/linting-config.test.js.md | 163 +++++++++++------- .../snapshots/linting-config.test.js.snap | Bin 27168 -> 27299 bytes es6.js | 5 +- package.json | 6 +- 6 files changed, 108 insertions(+), 73 deletions(-) diff --git a/demo/.eslintrc.js b/demo/.eslintrc.js index c51f737..0063229 100644 --- a/demo/.eslintrc.js +++ b/demo/.eslintrc.js @@ -1,6 +1,5 @@ module.exports = { rules: { - 'bestpractices/no-eslint-disable': 'error', 'sonarjs/no-duplicated-branches': 'error', 'deprecate/function': ['error', { name: 'deprecatedFunction', use: 'function x from package y' }], 'deprecate/import': ['error', { name: 'path/to/legacyModule', use: 'module x' }], diff --git a/demo/example.js b/demo/example.js index b273698..f1a3365 100644 --- a/demo/example.js +++ b/demo/example.js @@ -5,7 +5,11 @@ /* * Since developers have the ability to disable linting in-line, we keep track of the times where this is done, because if done irresponsibly, this is a significant code smell. */ -// eslint-disable-next +// eslint-disable-next-line +let unusedVariableThatTriggersLintingRule + +// eslint-disable-next-line no-unused-vars -- A comment to remove the warning of "require-description" +let unusedVariableThatTriggersLintingRule2 // fixMe: Actually make this work // todo: Add documentation diff --git a/demo/test/snapshots/linting-config.test.js.md b/demo/test/snapshots/linting-config.test.js.md index 7239868..84605a4 100644 --- a/demo/test/snapshots/linting-config.test.js.md +++ b/demo/test/snapshots/linting-config.test.js.md @@ -46,12 +46,12 @@ Generated by [AVA](https://ava.li). "you-dont-need-lodash-underscore",␊ "cypress",␊ "prettier",␊ + "@eslint-community/eslint-comments",␊ "test-selectors",␊ "sonarjs",␊ "promise",␊ "html",␊ - "deprecate",␊ - "bestpractices"␊ + "deprecate"␊ ],␊ "rules": {␊ "@babel/no-unused-expressions": [␊ @@ -69,6 +69,24 @@ Generated by [AVA](https://ava.li). "@babel/semi": [␊ "off"␊ ],␊ + "@eslint-community/eslint-comments/disable-enable-pair": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-aggregating-enable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-duplicate-disable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-unlimited-disable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-unused-enable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/require-description": [␊ + "warn"␊ + ],␊ "@fs/zion/logical-over-directional": [␊ "warn"␊ ],␊ @@ -725,9 +743,6 @@ Generated by [AVA](https://ava.li). "babel/semi": [␊ "off"␊ ],␊ - "bestpractices/no-eslint-disable": [␊ - "warn"␊ - ],␊ "block-scoped-var": [␊ "error"␊ ],␊ @@ -4142,12 +4157,12 @@ Generated by [AVA](https://ava.li). "@typescript-eslint",␊ "cypress",␊ "prettier",␊ + "@eslint-community/eslint-comments",␊ "test-selectors",␊ "sonarjs",␊ "promise",␊ "html",␊ - "deprecate",␊ - "bestpractices"␊ + "deprecate"␊ ],␊ "rules": {␊ "@babel/no-unused-expressions": [␊ @@ -4165,6 +4180,24 @@ Generated by [AVA](https://ava.li). "@babel/semi": [␊ "off"␊ ],␊ + "@eslint-community/eslint-comments/disable-enable-pair": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-aggregating-enable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-duplicate-disable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-unlimited-disable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/no-unused-enable": [␊ + "error"␊ + ],␊ + "@eslint-community/eslint-comments/require-description": [␊ + "warn"␊ + ],␊ "@fs/zion/logical-over-directional": [␊ "warn"␊ ],␊ @@ -4941,9 +4974,6 @@ Generated by [AVA](https://ava.li). "babel/semi": [␊ "off"␊ ],␊ - "bestpractices/no-eslint-disable": [␊ - "warn"␊ - ],␊ "block-scoped-var": [␊ "error"␊ ],␊ @@ -8269,61 +8299,62 @@ Generated by [AVA](https://ava.li). `␊ example.js␊ - 8:0 error Found eslint-disable without " -- comment" bestpractices/no-eslint-disable␊ - 10:1 warning Unexpected 'FIXME' comment: 'fixMe: Actually make this work' no-warning-comments␊ - 11:1 warning Unexpected 'TODO' comment: 'todo: Add documentation' no-warning-comments␊ - 12:1 warning Unexpected 'HACK' comment: 'Hack: Note that these work, regardless...' no-warning-comments␊ - 19:10 error 'functionWithoutJSDocWarningsBecauseTheSectionWasCompletelyExcluded' is defined but never used no-unused-vars␊ - 24:1 warning Remove the @description tag to leave a plain block description or add additional description text above the @description line jsdoc/require-description␊ - 24:1 warning JSDoc @returns declaration present but return expression not available in function jsdoc/require-returns-check␊ - 24:1 warning JSDoc type missing brace valid-jsdoc␊ - 25:1 warning JSDoc description does not satisfy the regex pattern jsdoc/match-description␊ - 26:1 warning Expected @param names to be "params". Got "a, params, b" jsdoc/check-param-names␊ - 26:1 warning Missing JSDoc @param "a" description jsdoc/require-param-description␊ - 27:1 warning Missing JSDoc @param "params" description jsdoc/require-param-description␊ - 27:1 warning Missing JSDoc @param "params" type jsdoc/require-param-type␊ - 28:1 warning Missing JSDoc @param "b" description jsdoc/require-param-description␊ - 28:1 warning Missing JSDoc @param "b" type jsdoc/require-param-type␊ - 29:1 warning Missing JSDoc @returns description jsdoc/require-returns-description␊ - 29:1 warning Missing JSDoc @returns type jsdoc/require-returns-type␊ - 31:71 error 'params' is defined but never used no-unused-vars␊ - 36:1 warning Invalid JSDoc tag name "note" jsdoc/check-tag-names␊ - 38:1 warning Expected catch() or return promise/catch-or-return␊ - 38:17 error 'a' is defined but never used no-unused-vars␊ - 38:20 error Expected to return a value at the end of arrow function consistent-return␊ - 39:3 warning Each then() should return a value or throw promise/always-return␊ - 39:7 warning Unexpected constant condition no-constant-condition␊ - 40:5 warning Avoid wrapping return values in Promise.resolve promise/no-return-wrap␊ - 41:10 error Unnecessary 'else' after 'return' no-else-return␊ - 42:5 error 'forgotToDefine' is not defined no-undef␊ - 46:7 error 'variable' is assigned a value but never used no-unused-vars␊ - 46:18 warning This conditional operation returns the same value whether the condition is "true" or "false" sonarjs/no-all-duplicated-branches␊ - 46:18 error Unnecessary use of boolean literals in conditional expression no-unneeded-ternary␊ - 46:18 warning Unexpected constant condition no-constant-condition␊ - 49:7 warning Correct one of the identical sub-expressions on both sides of operator "&&" sonarjs/no-identical-expressions␊ - 49:55 error 'params' is not defined no-undef␊ - 50:5 warning This function expects 1 argument, but 2 were provided sonarjs/no-extra-arguments␊ - 51:30 error Module path/to/legacyModule is deprecated. Use module x instead deprecate/import␊ - 51:30 error Unexpected require() global-require␊ - 51:38 error Unable to resolve path to module 'path/to/legacyModule' import/no-unresolved␊ - 53:5 error Function deprecatedFunction is deprecated. Use function x from package y instead deprecate/function␊ - 53:5 error 'deprecatedFunction' is not defined no-undef␊ - 55:5 error Member expression $.each is deprecated. Use native forEach instead deprecate/member-expression␊ - 55:5 error '$' is not defined no-undef␊ - 57:5 error Unexpected 'debugger' statement no-debugger␊ - 57:5 error Unreachable code no-unreachable␊ - 71:10 warning Update this function so that its implementation is not identical to the one on line 63 sonarjs/no-identical-functions␊ - 79:1 warning Remove this conditional structure or edit its code blocks so that they're not all the same sonarjs/no-all-duplicated-branches␊ - 79:5 warning This always evaluates to truthy. Consider refactoring this code sonarjs/no-gratuitous-expressions␊ - 79:5 warning Unexpected constant condition no-constant-condition␊ - 86:1 warning Reduce the number of non-empty switch cases from 16 to at most 15 sonarjs/max-switch-cases␊ - 91:5 error Expected a default case default-case␊ - 91:5 warning Refactor the code to eliminate this nested "switch" sonarjs/no-nested-switch␊ - 96:7 error This case's code block is the same as the block for the case on line 92 sonarjs/no-duplicated-branches␊ - 96:7 error Duplicate case label no-duplicate-case␊ - 96:12 warning This case duplicates the one on line 92 sonarjs/no-identical-conditions␊ - 102:3 error Duplicate case label no-duplicate-case␊ - 102:8 warning This case duplicates the one on line 90 sonarjs/no-identical-conditions␊ + 8:0 warning Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary @eslint-community/eslint-comments/require-description␊ + 8:0 error Unexpected unlimited 'eslint-disable-next-line' comment. Specify some rule names to disable @eslint-community/eslint-comments/no-unlimited-disable␊ + 14:1 warning Unexpected 'FIXME' comment: 'fixMe: Actually make this work' no-warning-comments␊ + 15:1 warning Unexpected 'TODO' comment: 'todo: Add documentation' no-warning-comments␊ + 16:1 warning Unexpected 'HACK' comment: 'Hack: Note that these work, regardless...' no-warning-comments␊ + 23:10 error 'functionWithoutJSDocWarningsBecauseTheSectionWasCompletelyExcluded' is defined but never used no-unused-vars␊ + 28:1 warning Remove the @description tag to leave a plain block description or add additional description text above the @description line jsdoc/require-description␊ + 28:1 warning JSDoc @returns declaration present but return expression not available in function jsdoc/require-returns-check␊ + 28:1 warning JSDoc type missing brace valid-jsdoc␊ + 29:1 warning JSDoc description does not satisfy the regex pattern jsdoc/match-description␊ + 30:1 warning Expected @param names to be "params". Got "a, params, b" jsdoc/check-param-names␊ + 30:1 warning Missing JSDoc @param "a" description jsdoc/require-param-description␊ + 31:1 warning Missing JSDoc @param "params" description jsdoc/require-param-description␊ + 31:1 warning Missing JSDoc @param "params" type jsdoc/require-param-type␊ + 32:1 warning Missing JSDoc @param "b" description jsdoc/require-param-description␊ + 32:1 warning Missing JSDoc @param "b" type jsdoc/require-param-type␊ + 33:1 warning Missing JSDoc @returns description jsdoc/require-returns-description␊ + 33:1 warning Missing JSDoc @returns type jsdoc/require-returns-type␊ + 35:71 error 'params' is defined but never used no-unused-vars␊ + 40:1 warning Invalid JSDoc tag name "note" jsdoc/check-tag-names␊ + 42:1 warning Expected catch() or return promise/catch-or-return␊ + 42:17 error 'a' is defined but never used no-unused-vars␊ + 42:20 error Expected to return a value at the end of arrow function consistent-return␊ + 43:3 warning Each then() should return a value or throw promise/always-return␊ + 43:7 warning Unexpected constant condition no-constant-condition␊ + 44:5 warning Avoid wrapping return values in Promise.resolve promise/no-return-wrap␊ + 45:10 error Unnecessary 'else' after 'return' no-else-return␊ + 46:5 error 'forgotToDefine' is not defined no-undef␊ + 50:7 error 'variable' is assigned a value but never used no-unused-vars␊ + 50:18 warning This conditional operation returns the same value whether the condition is "true" or "false" sonarjs/no-all-duplicated-branches␊ + 50:18 error Unnecessary use of boolean literals in conditional expression no-unneeded-ternary␊ + 50:18 warning Unexpected constant condition no-constant-condition␊ + 53:7 warning Correct one of the identical sub-expressions on both sides of operator "&&" sonarjs/no-identical-expressions␊ + 53:55 error 'params' is not defined no-undef␊ + 54:5 warning This function expects 1 argument, but 2 were provided sonarjs/no-extra-arguments␊ + 55:30 error Module path/to/legacyModule is deprecated. Use module x instead deprecate/import␊ + 55:30 error Unexpected require() global-require␊ + 55:38 error Unable to resolve path to module 'path/to/legacyModule' import/no-unresolved␊ + 57:5 error Function deprecatedFunction is deprecated. Use function x from package y instead deprecate/function␊ + 57:5 error 'deprecatedFunction' is not defined no-undef␊ + 59:5 error Member expression $.each is deprecated. Use native forEach instead deprecate/member-expression␊ + 59:5 error '$' is not defined no-undef␊ + 61:5 error Unexpected 'debugger' statement no-debugger␊ + 61:5 error Unreachable code no-unreachable␊ + 75:10 warning Update this function so that its implementation is not identical to the one on line 67 sonarjs/no-identical-functions␊ + 83:1 warning Remove this conditional structure or edit its code blocks so that they're not all the same sonarjs/no-all-duplicated-branches␊ + 83:5 warning This always evaluates to truthy. Consider refactoring this code sonarjs/no-gratuitous-expressions␊ + 83:5 warning Unexpected constant condition no-constant-condition␊ + 90:1 warning Reduce the number of non-empty switch cases from 16 to at most 15 sonarjs/max-switch-cases␊ + 95:5 error Expected a default case default-case␊ + 95:5 warning Refactor the code to eliminate this nested "switch" sonarjs/no-nested-switch␊ + 100:7 error This case's code block is the same as the block for the case on line 96 sonarjs/no-duplicated-branches␊ + 100:7 error Duplicate case label no-duplicate-case␊ + 100:12 warning This case duplicates the one on line 96 sonarjs/no-identical-conditions␊ + 106:3 error Duplicate case label no-duplicate-case␊ + 106:8 warning This case duplicates the one on line 94 sonarjs/no-identical-conditions␊ ␊ example.json␊ 4:6 error Property keys must be doublequoted json/*␊ @@ -8357,6 +8388,6 @@ Generated by [AVA](https://ava.li). 7:7 error 'unusedVar' is assigned a value but never used @typescript-eslint/no-unused-vars␊ 9:6 error 'UnusedType' is defined but never used @typescript-eslint/no-unused-vars␊ ␊ - ✖ 81 problems (43 errors, 38 warnings)␊ + ✖ 82 problems (43 errors, 39 warnings)␊ 4 errors and 0 warnings potentially fixable with the `--fix` option.␊ ` diff --git a/demo/test/snapshots/linting-config.test.js.snap b/demo/test/snapshots/linting-config.test.js.snap index 8fcbfaf0538db6d051985a7e49bcbade25eab7c1..bca931be83b08b8d201bc6d4efc204347980cf09 100644 GIT binary patch delta 27055 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 delta 26863 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 BLz(~p diff --git a/es6.js b/es6.js index 24756ec..4081604 100644 --- a/es6.js +++ b/es6.js @@ -15,20 +15,21 @@ module.exports = { '@fs/eslint-config-frontier-react/dont-need-lodash', '@fs/eslint-config-frontier-react/typescript', '@fs/eslint-config-frontier-react/cypress', + "plugin:@eslint-community/eslint-comments/recommended", '@fs/eslint-config-frontier-react/prettierSetup', // Always have prettier last so it can override format rules in the extends before it ], plugins: [ - 'eslint-plugin-bestpractices', 'eslint-plugin-deprecate', 'eslint-plugin-html', 'eslint-plugin-promise', 'eslint-plugin-sonarjs', 'eslint-plugin-test-selectors', + '@eslint-community/eslint-comments' ], rules: { 'no-console': ['warn', { allow: ['warn', 'error', 'trace', 'time'] }], // Allow warn on top of what eslint-config-frontier-react allows - 'bestpractices/no-eslint-disable': 'warn', + '@eslint-community/eslint-comments/require-description': 'warn', 'promise/always-return': 'warn', 'promise/no-return-wrap': 'warn', diff --git a/package.json b/package.json index b4054a1..558d308 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fs/eslint-config-tree", - "version": "6.3.1", + "version": "6.4.0", "description": "Shared Tree configuration that contains overrides and enhancements on top of the base frontier configuration.", "main": "index.js", "repository": { @@ -29,9 +29,9 @@ ], "dependencies": { "@babel/eslint-parser": "^7.28.4", - "@fs/eslint-config-frontier-react": "^11.4.0", + "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0", + "@fs/eslint-config-frontier-react": "^11.4.1", "eslint": "^8.57.1", - "eslint-plugin-bestpractices": "github:skye2k2/eslint-plugin-bestpractices", "eslint-plugin-deprecate": "^0.7.0", "eslint-plugin-promise": "^6.6.0", "eslint-plugin-sonarjs": "^0.22.0",