Closed
Bug 1228628
Opened 9 years ago
Closed 9 years ago
Make eslint apply to the entire tree
Categories
(Firefox Build System :: General, defect)
Firefox Build System
General
Tracking
(firefox45 fixed)
RESOLVED
FIXED
mozilla45
Tracking | Status | |
---|---|---|
firefox45 | --- | fixed |
People
(Reporter: mossop, Unassigned)
References
Details
Attachments
(2 files)
(deleted),
patch
|
mconley
:
review+
Gijs
:
feedback+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
standard8
:
review+
|
Details | Diff | Splinter Review |
Currently mach eslint only check in devtools, loop and android. We want to extend that to be available to the whole tree.
Reporter | ||
Comment 1•9 years ago
|
||
Comment 2•9 years ago
|
||
Comment on attachment 8693063 [details] [diff] [review]
Create a top-level eslintignore file
Review of attachment 8693063 [details] [diff] [review]:
-----------------------------------------------------------------
Forwarding to mconley because I need to run out, but looks mostly OK to me.
One thing to note is that this will auto-enable new directories. Because negations don't work I don't think there's a way around this, but it would be good to announce this publicly because it will catch people out if/when we start enforcing this.
::: .eslintignore
@@ +1,5 @@
> +# Always ignore node_modules.
> +**/node_modules/**/*.*
> +
> +# Exclude expected objdirs.
> +obj/**
This should probably be more generic, like obj*/** or something? By default the objdir will be obj-@CONFIG_GUESS@ which won't match this.
Attachment #8693063 -
Flags: review?(mconley)
Updated•9 years ago
|
Attachment #8693063 -
Flags: feedback+
Reporter | ||
Comment 3•9 years ago
|
||
(In reply to :Gijs Kruitbosch from comment #2)
> Comment on attachment 8693063 [details] [diff] [review]
> Create a top-level eslintignore file
>
> Review of attachment 8693063 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Forwarding to mconley because I need to run out, but looks mostly OK to me.
>
> One thing to note is that this will auto-enable new directories. Because
> negations don't work I don't think there's a way around this, but it would
> be good to announce this publicly because it will catch people out if/when
> we start enforcing this.
I don't think we can avoid this as you day but it could be a good thing if once we're enforcing any new code people write has to pass the linting rules or be rejected from the tree ;)
> ::: .eslintignore
> @@ +1,5 @@
> > +# Always ignore node_modules.
> > +**/node_modules/**/*.*
> > +
> > +# Exclude expected objdirs.
> > +obj/**
>
> This should probably be more generic, like obj*/** or something? By default
> the objdir will be obj-@CONFIG_GUESS@ which won't match this.
Good catch
Comment 4•9 years ago
|
||
Comment on attachment 8693063 [details] [diff] [review]
Create a top-level eslintignore file
Review of attachment 8693063 [details] [diff] [review]:
-----------------------------------------------------------------
Stoked for robot overlords.
::: .eslintignore
@@ +58,5 @@
> +# browser/ exclusions
> +browser/app/**
> +browser/base/**
> +browser/branding/**
> +browser/components/about/**
As mentioned in IRC, I don't think this will ignore things directly under browser/components, like nsBrowserGlue.js.
Same probably goes for any JS files in other subfolders where we're doing sub-subfolder ignores.
@@ +103,5 @@
> +# Libs we don't need to check
> +browser/components/loop/content/libs
> +browser/components/loop/content/shared/libs
> +browser/components/loop/standalone/content/libs
> +browser/components/loop/standalone/node_modules
Is this not redundant with the **/node_modules/**/*.* rule up top?
@@ +108,5 @@
> +# Libs we don't need to check
> +browser/components/loop/test/shared/vendor
> +# Coverage files
> +browser/components/loop/test/coverage
> +browser/components/loop/test/node_modules
Also redundant?
Attachment #8693063 -
Flags: review?(mconley) → review+
Reporter | ||
Updated•9 years ago
|
Whiteboard: keep-open
Comment 6•9 years ago
|
||
This adds a minimal .eslintrc globally, and then enables one rule for browser: eol-last.
As a side effect of turning on es6, it also requires that "yield"s are in functions marked as generators (which our parser has allows not to happen atm).
We can turn on more rules/directories as we go.
Mossop gave me r+ over irc.
Attachment #8693116 -
Flags: review+
Reporter | ||
Updated•9 years ago
|
Whiteboard: keep-open
Comment 8•9 years ago
|
||
Comment on attachment 8693116 [details] [diff] [review]
Add a minimal .eslintrc configuration for browser and start linting a few browser files with basic rules.
Review of attachment 8693116 [details] [diff] [review]:
-----------------------------------------------------------------
::: browser/experiments/Experiments.jsm
@@ +143,5 @@
> // OS.File.read.
> // Returns a Promise resolved with the json payload or rejected with
> // OS.File.Error or JSON.parse() errors.
> function loadJSONAsync(file, options) {
> + return Task.spawn(function*() {
This change is breaking xpcshell tests on fx-team. |Task.Result| isn't supported with star functions. You need to change that throw to a return.
Updated•9 years ago
|
Flags: needinfo?(standard8)
Comment 9•9 years ago
|
||
Backed out in https://hg.mozilla.org/integration/fx-team/rev/40981d27ace0 since I needed to see xpcshell without this failing.
Comment 11•9 years ago
|
||
(In reply to Kris Maglione [:kmag] from comment #8)
> This change is breaking xpcshell tests on fx-team. |Task.Result| isn't
> supported with star functions. You need to change that throw to a return.
Oops, sorry about that, I've fixed it and re-pushed.
Flags: needinfo?(standard8)
Comment 12•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox45:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Comment 13•9 years ago
|
||
bugherder |
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•