From 24ecb98d068ba336989c4eb02d5fba96a69077a8 Mon Sep 17 00:00:00 2001 From: Sang Mercado Date: Mon, 13 Aug 2018 17:32:11 -0700 Subject: [PATCH] [RFC] Remove `broccoli-lint-eslint` and `ember-cli-eslint` --- active/0000-remove-ember-cli-eslint.md | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 active/0000-remove-ember-cli-eslint.md diff --git a/active/0000-remove-ember-cli-eslint.md b/active/0000-remove-ember-cli-eslint.md new file mode 100644 index 0000000..2877b1d --- /dev/null +++ b/active/0000-remove-ember-cli-eslint.md @@ -0,0 +1,51 @@ +- Start Date: 2018-08-13 +- RFC PR: (leave this empty) + +# Summary + +Remove https://github.com/ember-cli/broccoli-lint-eslint + +https://github.com/ember-cli/ember-cli-eslint as a dependency within +`ember-cli`. + +# Motivation + +1. Improve our build speed +2. Hacks required to support features such as [PR #122 + broccoli-lint-eslint](https://github.com/ember-cli/broccoli-lint-eslint/pull/122#discussion-diff-153937455R28) +3. Simplicity. `eslint` is common among JS stack, and integrations with editors + / precommit-hooks are ubiquitous. Removing this layer of abstraction will + simplify how `eslint` is used throughout `ember-cli`. + + +# Detailed design + +1. Remove dependency on + [ember-cli-eslint](https://github.com/ember-cli/ember-cli-eslint/blob/b4f2c3145921b219460a18d88c8649fc18fb6291/index.js#L35). +2. Provide documentation on `eslint` and editor integration as well as precommit + hooks +3. Change blueprint to pull in `eslint` as opposed to `ember-cli-eslint` under + `devDependencies`. + +We delete the following functions (thankfully they are marked private): + ++ [addonLintTree](https://github.com/ember-cli/ember-cli/blob/4f48ff6eba20ea3be70cd985d375c68e8ecb5894/lib/broccoli/ember-app.js#L892) ++ [lint-addons-by-type](https://github.com/ember-cli/ember-cli/blob/4f48ff6eba20ea3be70cd985d375c68e8ecb5894/lib/utilities/lint-addons-by-type.js) + + +# How We Teach This + +Providing documentation should suffice. Also, going towards a much more explicit +path, this should become _easier_ to teach because of less abstractions. + +# Drawbacks + +1. No console warnings during builds +2. lint failures are no longer included in browser tests + +# Alternatives + +N/A + +# Unresolved questions + +N/A