From 34f2f579aca20305f20d9787d32c9c642470f928 Mon Sep 17 00:00:00 2001 From: Toru Nagashima Date: Tue, 24 Sep 2019 07:25:11 +0900 Subject: [PATCH] Update: Deprecating Personal Config (#32) --- .../README.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 designs/2019-deprecating-personal-config/README.md diff --git a/designs/2019-deprecating-personal-config/README.md b/designs/2019-deprecating-personal-config/README.md new file mode 100644 index 00000000..51b95d25 --- /dev/null +++ b/designs/2019-deprecating-personal-config/README.md @@ -0,0 +1,52 @@ +- Start Date: 2019-07-16 +- RFC PR: https://github.com/eslint/rfcs/pull/32 +- Authors: Toru Nagashima ([@mysticatea](https://github.com/mysticatea)) + +# Deprecating Personal Config + +## Summary + +This RFC deprecates the personal config that is `.eslintrc` files on home directory. + +## Motivation + +Since 6.0.0, ESLint doesn't load plugins/configs/parsers from the global installation even if it's not a part of a project such as the personal config. This is inconvenient for the personal config. But, in #28 discussion, we confirm that we don't want to use the global installation. + +We don't recommend to use global-installed ESLint. But the personal config has encouraged to use it. + +## Detailed Design + +Three steps: + +1. **Soft deprecation**: Update our documentation to announce to deprecate the personal config on the next minor release. +2. **Hard deprecation**: Add the deprecation warning of the personal config on ESLint 7.0.0. + - ESLint shows a warning when it loaded the personal config. + - ESLint shows a warning when it ignored the personal config (Currently, it ignores `.eslintrc` files on home directory if a project directory is in home directory and the project has `.eslintrc` files.) +3. **Removal**: Remove the personal config functionality on ESLint 8.0.0. + - ESLint no longer loads the personal config even if the project config was not found. + - ESLint no longer ignores the config files on home directory even if the project config was found. + +## Documentation + +- Remove the personal config from [Configuring ESLint](https://eslint.org/docs/user-guide/configuring) page. +- Announce on the release notes. + +## Drawbacks + +It will make people inconvenient to lint standalone files. + +## Backwards Compatibility Analysis + +Yes, this is a breaking change. + +To lint standalone files, people have to have a dummy project directory such as `sandbox`. + +## Alternatives + +- https://github.com/eslint/rfcs/pull/28 + +## Related Discussions + +- https://github.com/eslint/rfcs/pull/7 +- https://github.com/eslint/rfcs/pull/28 +- https://github.com/eslint/eslint/issues/11914