From c83531c1a6026675f36aa9e33fef14458043974a Mon Sep 17 00:00:00 2001 From: Pelle Wessman Date: Wed, 5 Apr 2023 22:22:22 +0200 Subject: [PATCH] docs: Update/remove external links, eg. point to `eslint-community` (#17061) * Refer to community `eslint-plugin-n` in docs Instead of `eslint-plugin-node` * Have 7.0 migration docs mention `eslint-plugin-n` * Point to new repo for react plugin * Refer to new repo url for `eslint-plugin-eslint-plugin` * Update references to fregante modules * Update some integrations URL:s * Remove broken Atom URL:s They all point to https://github.blog/2022-06-08-sunsetting-atom/ * Remove outdated / deprecated build tools plugins * Fix broken AMD link * Fix linting error * Use correct main branch in updated links Co-authored-by: Milos Djermanovic --------- Co-authored-by: Milos Djermanovic --- docs/src/extend/plugins.md | 2 +- docs/src/rules/callback-return.md | 2 +- docs/src/rules/global-require.md | 2 +- docs/src/rules/handle-callback-err.md | 2 +- docs/src/rules/no-buffer-constructor.md | 2 +- docs/src/rules/no-mixed-requires.md | 2 +- docs/src/rules/no-new-require.md | 2 +- docs/src/rules/no-path-concat.md | 2 +- docs/src/rules/no-process-env.md | 2 +- docs/src/rules/no-process-exit.md | 2 +- docs/src/rules/no-restricted-modules.md | 2 +- docs/src/rules/no-sync.md | 2 +- docs/src/use/configure/language-options.md | 4 ++-- docs/src/use/integrations.md | 21 +++------------------ docs/src/use/migrate-to-8.0.0.md | 8 ++++---- docs/src/use/migrating-to-7.0.0.md | 2 +- 16 files changed, 22 insertions(+), 37 deletions(-) diff --git a/docs/src/extend/plugins.md b/docs/src/extend/plugins.md index 9d7983e67f2..70bc3ee7c74 100644 --- a/docs/src/extend/plugins.md +++ b/docs/src/extend/plugins.md @@ -183,7 +183,7 @@ ESLint plugins should be linted too! It's suggested to lint your plugin with the * [eslint](https://www.npmjs.com/package/eslint) * [eslint-plugin-eslint-plugin](https://www.npmjs.com/package/eslint-plugin-eslint-plugin) -* [eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node) +* [eslint-plugin-n](https://www.npmjs.com/package/eslint-plugin-n) ## Share Plugins diff --git a/docs/src/rules/callback-return.md b/docs/src/rules/callback-return.md index d3d621814a3..92ec02628f3 100644 --- a/docs/src/rules/callback-return.md +++ b/docs/src/rules/callback-return.md @@ -9,7 +9,7 @@ further_reading: --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). The callback pattern is at the heart of most I/O and event-driven programming in JavaScript. diff --git a/docs/src/rules/global-require.md b/docs/src/rules/global-require.md index 4a2d20a75d7..e960468b380 100644 --- a/docs/src/rules/global-require.md +++ b/docs/src/rules/global-require.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). In Node.js, module dependencies are included using the `require()` function, such as: diff --git a/docs/src/rules/handle-callback-err.md b/docs/src/rules/handle-callback-err.md index fddce708b46..3f66ad2031e 100644 --- a/docs/src/rules/handle-callback-err.md +++ b/docs/src/rules/handle-callback-err.md @@ -7,7 +7,7 @@ further_reading: --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). In Node.js, a common pattern for dealing with asynchronous behavior is called the callback pattern. This pattern expects an `Error` object or `null` as the first argument of the callback. diff --git a/docs/src/rules/no-buffer-constructor.md b/docs/src/rules/no-buffer-constructor.md index 59b9dd8772d..97ea1918d0b 100644 --- a/docs/src/rules/no-buffer-constructor.md +++ b/docs/src/rules/no-buffer-constructor.md @@ -8,7 +8,7 @@ further_reading: --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). In Node.js, the behavior of the `Buffer` constructor is different depending on the type of its argument. Passing an argument from user input to `Buffer()` without validating its type can lead to security vulnerabilities such as remote memory disclosure and denial of service. As a result, the `Buffer` constructor has been deprecated and should not be used. Use the producer methods `Buffer.from`, `Buffer.alloc`, and `Buffer.allocUnsafe` instead. diff --git a/docs/src/rules/no-mixed-requires.md b/docs/src/rules/no-mixed-requires.md index 3dcf6384fd4..f747ebd6362 100644 --- a/docs/src/rules/no-mixed-requires.md +++ b/docs/src/rules/no-mixed-requires.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). In the Node.js community it is often customary to separate initializations with calls to `require` modules from other variable declarations, sometimes also grouping them by the type of module. This rule helps you enforce this convention. diff --git a/docs/src/rules/no-new-require.md b/docs/src/rules/no-new-require.md index 1aa663e6669..494d4881da2 100644 --- a/docs/src/rules/no-new-require.md +++ b/docs/src/rules/no-new-require.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). The `require` function is used to include modules that exist in separate files, such as: diff --git a/docs/src/rules/no-path-concat.md b/docs/src/rules/no-path-concat.md index 840b80c3520..1042f317920 100644 --- a/docs/src/rules/no-path-concat.md +++ b/docs/src/rules/no-path-concat.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). In Node.js, the `__dirname` and `__filename` global variables contain the directory path and the file path of the currently executing script file, respectively. Sometimes, developers try to use these variables to create paths to other files, such as: diff --git a/docs/src/rules/no-process-env.md b/docs/src/rules/no-process-env.md index 2130a89443f..99cd1f41a0e 100644 --- a/docs/src/rules/no-process-env.md +++ b/docs/src/rules/no-process-env.md @@ -7,7 +7,7 @@ further_reading: --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). The `process.env` object in Node.js is used to store deployment/configuration parameters. Littering it through out a project could lead to maintenance issues as it's another kind of global dependency. As such, it could lead to merge conflicts in a multi-user setup and deployment issues in a multi-server setup. Instead, one of the best practices is to define all those parameters in a single configuration/settings file which could be accessed throughout the project. diff --git a/docs/src/rules/no-process-exit.md b/docs/src/rules/no-process-exit.md index 6928a0d4843..90e312b2d45 100644 --- a/docs/src/rules/no-process-exit.md +++ b/docs/src/rules/no-process-exit.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). The `process.exit()` method in Node.js is used to immediately stop the Node.js process and exit. This is a dangerous operation because it can occur in any method at any point in time, potentially stopping a Node.js application completely when an error occurs. For example: diff --git a/docs/src/rules/no-restricted-modules.md b/docs/src/rules/no-restricted-modules.md index 3ed5bd86117..eb2ca03ffc8 100644 --- a/docs/src/rules/no-restricted-modules.md +++ b/docs/src/rules/no-restricted-modules.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). A module in Node.js is a simple or complex functionality organized in a JavaScript file which can be reused throughout the Node.js application. The keyword `require` is used in Node.js/CommonJS to import modules into an application. This way you can have dynamic loading where the loaded module name isn't predefined /static, or where you conditionally load a module only if it's "truly required". diff --git a/docs/src/rules/no-sync.md b/docs/src/rules/no-sync.md index 33fbec47fc0..254974411e4 100644 --- a/docs/src/rules/no-sync.md +++ b/docs/src/rules/no-sync.md @@ -4,7 +4,7 @@ rule_type: suggestion --- -This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-node`](https://github.com/mysticatea/eslint-plugin-node). +This rule was **deprecated** in ESLint v7.0.0. Please use the corresponding rule in [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n). In Node.js, most I/O is done through asynchronous methods. However, there are often synchronous versions of the asynchronous methods. For example, `fs.exists()` and `fs.existsSync()`. In some contexts, using synchronous operations is okay (if, as with ESLint, you are writing a command line utility). However, in other contexts the use of synchronous operations is considered a bad practice that should be avoided. For example, if you are running a high-travel web server on Node.js, you should consider carefully if you want to allow any synchronous operations that could lock up the server. diff --git a/docs/src/use/configure/language-options.md b/docs/src/use/configure/language-options.md index ef21c35d57e..4f8fa148bce 100644 --- a/docs/src/use/configure/language-options.md +++ b/docs/src/use/configure/language-options.md @@ -27,7 +27,7 @@ An environment provides predefined global variables. The available environments * `es2021` - adds all ECMAScript 2021 globals and automatically sets the `ecmaVersion` parser option to 12. * `es2022` - adds all ECMAScript 2022 globals and automatically sets the `ecmaVersion` parser option to 13. * `worker` - web workers global variables. -* `amd` - defines `require()` and `define()` as global variables as per the [amd](https://github.com/amdjs/amdjs-api/wiki/AMD) spec. +* `amd` - defines `require()` and `define()` as global variables as per the [amd](https://github.com/amdjs/amdjs-api/blob/master/AMD.md) spec. * `mocha` - adds all of the Mocha testing global variables. * `jasmine` - adds all of the Jasmine testing global variables for version 1.3 and 2.0. * `jest` - Jest global variables. @@ -187,7 +187,7 @@ For historical reasons, the boolean value `false` and the string value `"readabl ESLint allows you to specify the JavaScript language options you want to support. By default, ESLint expects ECMAScript 5 syntax. You can override that setting to enable support for other ECMAScript versions and JSX using parser options. -Please note that supporting JSX syntax is not the same as supporting React. React applies specific semantics to JSX syntax that ESLint doesn't recognize. We recommend using [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) if you are using React. +Please note that supporting JSX syntax is not the same as supporting React. React applies specific semantics to JSX syntax that ESLint doesn't recognize. We recommend using [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) if you are using React. By the same token, supporting ES6 syntax is not the same as supporting new ES6 globals (e.g., new types such as `Set`). For ES6 syntax, use `{ "parserOptions": { "ecmaVersion": 6 } }`; for new ES6 global variables, use `{ "env": { "es6": true } }`. Setting `{ "env": { "es6": true } }` enables ES6 syntax automatically, but `{ "parserOptions": { "ecmaVersion": 6 } }` does not enable ES6 globals automatically. diff --git a/docs/src/use/integrations.md b/docs/src/use/integrations.md index 892a5080e35..427377ed7a0 100644 --- a/docs/src/use/integrations.md +++ b/docs/src/use/integrations.md @@ -15,10 +15,10 @@ If you would like to recommend an integration to be added to this page, [submit ## Editors * Sublime Text 3: - * [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) + * [SublimeLinter-eslint](https://github.com/SublimeLinter/SublimeLinter-eslint) * [Build Next](https://github.com/albertosantini/sublimetext-buildnext) * Vim: - * [ALE](https://github.com/w0rp/ale) + * [ALE](https://github.com/dense-analysis/ale) * [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) * Emacs: [Flycheck](http://www.flycheck.org/) supports ESLint with the [javascript-eslint](http://www.flycheck.org/en/latest/languages.html#javascript) checker. * Eclipse Orion: ESLint is the [default linter](https://dev.eclipse.org/mhonarc/lists/orion-dev/msg02718.html) @@ -26,9 +26,6 @@ If you would like to recommend an integration to be added to this page, [submit * TextMate 2: * [eslint.tmbundle](https://github.com/ryanfitzer/eslint.tmbundle) * [javascript-eslint.tmbundle](https://github.com/natesilva/javascript-eslint.tmbundle) -* Atom: - * [linter-eslint](https://atom.io/packages/linter-eslint) - * [fast-eslint-8](https://atom.io/packages/fast-eslint-8) * IntelliJ IDEA, WebStorm, PhpStorm, PyCharm, RubyMine, and other JetBrains IDEs: [How to use ESLint](https://www.jetbrains.com/help/webstorm/eslint.html) * Visual Studio: [Linting JavaScript in VS](https://learn.microsoft.com/en-us/visualstudio/javascript/linting-javascript?view=vs-2022) * Visual Studio Code: [ESLint Extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) @@ -37,16 +34,8 @@ If you would like to recommend an integration to be added to this page, [submit ## Build tools * Grunt: [grunt-eslint](https://www.npmjs.com/package/grunt-eslint) -* Gulp: [gulp-eslint](https://www.npmjs.com/package/gulp-eslint) -* Mimosa: [mimosa-eslint](https://www.npmjs.com/package/mimosa-eslint) -* Broccoli: [broccoli-eslint](https://www.npmjs.com/package/broccoli-eslint) -* Browserify: [eslintify](https://www.npmjs.com/package/eslintify) * Webpack: [eslint-webpack-plugin](https://www.npmjs.com/package/eslint-webpack-plugin) * Rollup: [@rollup/plugin-eslint](https://www.npmjs.com/package/@rollup/plugin-eslint) -* Ember-cli: [ember-cli-eslint](https://www.npmjs.com/package/ember-cli-eslint) -* Sails.js: [sails-hook-lint](https://www.npmjs.com/package/sails-hook-lint), [sails-eslint](https://www.npmjs.com/package/sails-eslint) -* Start: [@start/plugin-lib-eslint](https://www.npmjs.com/package/@start/plugin-lib-eslint) -* Brunch: [eslint-brunch](https://www.npmjs.com/package/eslint-brunch) ## Command Line Tools @@ -59,11 +48,7 @@ If you would like to recommend an integration to be added to this page, [submit * [Git Precommit Hook](https://coderwall.com/p/zq8jlq/eslint-pre-commit-hook) * [Git pre-commit hook that only lints staged changes](https://gist.github.com/dahjelle/8ddedf0aebd488208a9a7c829f19b9e8) * [overcommit Git hook manager](https://github.com/brigade/overcommit) -* [Mega-Linter](https://nvuillam.github.io/mega-linter): Linters aggregator for CI, [embedding eslint](https://nvuillam.github.io/mega-linter/descriptors/javascript_eslint/) - -## Testing - -* Mocha.js: [mocha-eslint](https://www.npmjs.com/package/mocha-eslint) +* [Mega-Linter](https://megalinter.io/latest/): Linters aggregator for CI, [embedding eslint](https://megalinter.io/latest/descriptors/javascript_eslint/) ## Other Integration Lists diff --git a/docs/src/use/migrate-to-8.0.0.md b/docs/src/use/migrate-to-8.0.0.md index 71d92c52087..a49019f984d 100644 --- a/docs/src/use/migrate-to-8.0.0.md +++ b/docs/src/use/migrate-to-8.0.0.md @@ -55,7 +55,7 @@ Node.js 10, 13, 15 all reached end of life either in 2020 or early 2021. ESLint ESLint v8.0.0 has removed the `codeframe` and `table` formatters from the core. These formatters required dependencies that weren't used anywhere else in ESLint, and removing them allows us to reduce the size of ESLint, allowing for faster installation. -**To address:** If you are using the `codeframe` or `table` formatters, you'll need to install the standalone [`eslint-formatter-codeframe`](https://github.com/fregante/eslint-formatter-codeframe) or [`eslint-formatter-table`](https://github.com/fregante/eslint-formatter-table) packages, respectively, to be able to use them in ESLint v8.0.0. +**To address:** If you are using the `codeframe` or `table` formatters, you'll need to install the standalone [`eslint-formatter-codeframe`](https://github.com/eslint-community/eslint-formatter-codeframe) or [`eslint-formatter-table`](https://github.com/eslint-community/eslint-formatter-table) packages, respectively, to be able to use them in ESLint v8.0.0. **Related issue(s):** [#14277](https://github.com/eslint/eslint/issues/14277), [#14316](https://github.com/eslint/eslint/pull/14316) @@ -135,7 +135,7 @@ module.exports = { }; ``` -The [eslint-plugin/require-meta-has-suggestions](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/require-meta-has-suggestions.md) rule can automatically fix and enforce that your rules are properly specifying `meta.hasSuggestions`. +The [eslint-plugin/require-meta-has-suggestions](https://github.com/eslint-community/eslint-plugin-eslint-plugin/blob/main/docs/rules/require-meta-has-suggestions.md) rule can automatically fix and enforce that your rules are properly specifying `meta.hasSuggestions`. **Related issue(s):** [#14312](https://github.com/eslint/eslint/issues/14312) @@ -164,9 +164,9 @@ module.exports = { }; ``` -The [eslint-plugin/require-meta-fixable](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/require-meta-fixable.md) rule can automatically fix and enforce that your rules are properly specifying `meta.fixable`. +The [eslint-plugin/require-meta-fixable](https://github.com/eslint-community/eslint-plugin-eslint-plugin/blob/main/docs/rules/require-meta-fixable.md) rule can automatically fix and enforce that your rules are properly specifying `meta.fixable`. -The [eslint-plugin/prefer-object-rule](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-object-rule.md) rule can automatically fix and enforce that your rules are written with the object format instead of the deprecated function format. +The [eslint-plugin/prefer-object-rule](https://github.com/eslint-community/eslint-plugin-eslint-plugin/blob/main/docs/rules/prefer-object-rule.md) rule can automatically fix and enforce that your rules are written with the object format instead of the deprecated function format. See the [rule documentation](../extend/custom-rules) for more information on writing rules. diff --git a/docs/src/use/migrating-to-7.0.0.md b/docs/src/use/migrating-to-7.0.0.md index 898bcad11a3..86b81cf832a 100644 --- a/docs/src/use/migrating-to-7.0.0.md +++ b/docs/src/use/migrating-to-7.0.0.md @@ -145,7 +145,7 @@ To allow for the colocation of comments that provide context with the directive, ## Node.js/CommonJS rules have been deprecated -The ten Node.js/CommonJS rules in core have been deprecated and moved to the [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) plugin. +The ten Node.js/CommonJS rules in core have been deprecated and moved to the [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) plugin (for ESLint v8.0.0 and later, use the maintained [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) fork instead) . **To address:** As per [our deprecation policy](../use/rule-deprecation), the deprecated rules will remain in core for the foreseeable future and are still available for use. However, we will no longer be updating or fixing any bugs in those rules. To use a supported version of the rules, we recommend using the corresponding rules in the plugin instead.