Commit Graph

292 Commits

Author SHA1 Message Date
Michael Ratcliffe
4fab0b64e1 Bug 1270926 - Shrinkwrap eslint support on XHTML files r=mratcliffe
MozReview-Commit-ID: 8i7Rayhzob5
2016-08-23 14:20:08 -07:00
Matthew Noorenberghe
a59bf6717f Bug 1270926 - Support ESLint on XHTML files. r=ahal
MozReview-Commit-ID: 4iYODbZQiB9
2016-08-23 14:42:21 -07:00
Andrew Halberstadt
ed73940aa9 Bug 1288425 - Make sure we skip invalid extensions when linting with --rev or --workdir, r=smacleod
Some linters, such as flake8, will lint invalid file extensions if you explicitly pass them in. E.g,
|flake8 foobar.js| will result in flake8 attempting to lint a JS file. This is a problem because passing
in files explicitly is exactly what the --rev/--workdir options do. If a developer modifies a JS file
then runs |mach lint -l flake8 -w|, that JS file will get linted.

To prevent this, mozlint needs to handle file extensions instead of relying on the underlying linter to
do it. This patch adds an "extensions" config option to the LINTER dict, and will filter these files out
as part of the 'filterpaths' steps.

MozReview-Commit-ID: KYhC6SEySC3

--HG--
extra : rebase_source : 6fea2942b2db1bea7deca1d6738546362b6ebd65
2016-08-09 16:24:04 -04:00
Andrew Halberstadt
5353a06823 Bug 1289805 - Don't pass in --exclude to flake8 paths that contain custom configuration, r=smacleod
This fixes a bug in flake8, where if you pass in --exclude to a path with a custom .flake8 file, that
configuration will be ignored. I'm not sure why this happens.

Prior to this commit series, the 'exclude' paths weren't being passed on to the flake8 linter properly.
This is why the problems hasn't surfaced until now. This is a band-aid fix until a proper (likely
upstream) fix can be landed.

MozReview-Commit-ID: KYhC6SEySC3

--HG--
extra : rebase_source : 0dbf30dcb17c37787c2ddebbb3c7de5f3b63860b
2016-08-09 16:28:13 -04:00
Gregory Szorc
1fdad6619c NO BUG - Reconcile eslint Sphinx docs index with reality
Drop/add missing pages as appropriate.

MozReview-Commit-ID: KckObsl2RdU

--HG--
extra : rebase_source : f906beba5a7aa9731967e349ef685b935a2f8015
2016-08-16 16:37:51 -07:00
Piyush Sinha
7e1a93b672 Bug 1274167 - Add Linter(flake8) support for Firefox-ui and Puppeteer.r=whimboo
MozReview-Commit-ID: Ga3iaEH54yH

--HG--
extra : rebase_source : 264c275f6e4bf8feaa2a65479aba43ca1e2cd27e
2016-08-15 02:16:18 +05:30
Jared Wein
df53d45313 Bug 1291910 - Add ability for mach eslint to accept --fix. r=Felipe
MozReview-Commit-ID: 5PB2oI2jPri

--HG--
extra : rebase_source : 42d03b9ab93c4ef390d0dfa59d25dd330309071d
2016-08-03 19:18:55 -04:00
J. Ryan Stinnett
c9822d13cd Bug 1288225 - Exclude eslint-plugin-mozilla from tooltool. r=ahal
This removes the in-tree plugin from the tooltool archive and uses that code
directly from the Gecko checkout instead.

For automation, we now get ESLint and external plugins from tooltool and then
symbolic link to the in-tree plugin.

For local development, we install ESLint and external plugins following the
shrinkwrap file created from the last change to the tooltool archive.  The local
plugin is then installed.

This change also removes the list of module versions from mach_commands.py, so
there is only one place to update module versions for the future.

MozReview-Commit-ID: AhbZ8lVPmN4
2016-07-28 11:53:54 -05:00
J. Ryan Stinnett
f8c4ba2279 Bug 1288225 - Use PEP 8 style for method names. r=ahal
MozReview-Commit-ID: 7ci9vAdUw0J
2016-07-28 11:53:54 -05:00
J. Ryan Stinnett
6f429bf7de Bug 1288225 - Tweak ESLint update text. r=ahal
MozReview-Commit-ID: 8zSAit7xXeU
2016-07-28 11:53:54 -05:00
Tom Tromey
8cd914069c Bug 1264649 - add reject-some-requires eslint rule; r=pbro
MozReview-Commit-ID: FVxy2c5Wsgg

--HG--
extra : rebase_source : 901f8aee971f9ab48cef7eceffb4cfc8ad567822
2016-07-21 08:39:29 -06:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Julian Descottes
095a6309b9 Bug 1285936 - eslint mozilla plugin: fix filename in import globals & bump to 0.1.1
The file base/content/browser-fullScreen.js was renamed. This patch updates the reference
to this filename in the esling rule import-browserjs-globals.js and bumps the version to
0.1.1.

MozReview-Commit-ID: 9hibfDnbtp
2016-07-19 12:51:47 -05:00
J. Ryan Stinnett
574e0a972a Backed out changeset b82022d2347a (bug 1280883) for ESLint issues 2016-07-19 11:53:16 -05:00
Andrew Halberstadt
3c8be23f37 Bug 1281899 - [mozlint] Add ability to lint files touched by revisions and/or the working directory, r=smacleod
This adds two parameters, --rev and --workdir. Each works both with mercurial and git (though the syntax for
specifying revisions is different between them). The value is simply forwarded to either |hg log| or |git diff|
so syntax like |mach lint -r .~4::.| or |mach lint -r "HEAD~4 HEAD"| will work as expected.

MozReview-Commit-ID: aOGp2Yrncs

--HG--
extra : rebase_source : d2cb834d4cc1a083171a3551af4e72c8a7d14021
2016-06-24 14:09:58 -04:00
Andrew Halberstadt
482f8a956c Bug 1281899 - [mozlint] Create cli module and move logic from tools/lint/mach_commands.py there, r=smacleod
There is currently no built-in user interface to mozlint. The only existing interface is the
external cli provided by |mach lint|. However, in the future mozlint may need to be used in a
context where mach isn't readily available (i.e version-control-tools). This patch basically
just moves the cli logic out of mach_commands.py, and into mozlint core. That way it can be
re-used in other places without needing to be re-implemented.

The |mach lint setup| subcommand was removed because apparently subcommands don't work with
the parser attribute. Nothing was using it yet anyway, so I removed it for now. It may get
re-added in some form in the future.

MozReview-Commit-ID: aOGp2Yrncs

--HG--
extra : rebase_source : 8f7530de96e5c131d2ed5bfcdd7a159329401e5b
2016-06-24 14:06:22 -04:00
malayaleecoder
a39c5a1a22 Bug 1283044 - Fix all flake8 error in testing/talos for python3. r=jmaher 2016-07-01 21:18:07 +05:30
Carsten "Tomcat" Book
261fe13dcd merge mozilla-inbound to mozilla-central a=merge 2016-06-28 16:09:05 +02:00
Philipp Kewisch
d03635aa1e Bug 1282392 - xbl bindings fail with unused "bindings" when no-unused-vars is enabled. r=miker 2016-06-27 12:23:58 +02:00
Philipp Kewisch
3ca9eb9112 Bug 1280883 - ESLint shows unreachable statement for xbl fields. r=miker 2016-06-27 12:24:57 +02:00
malayaleecoder
3317aafa12 Bug 1277490 - add flake8 linter support to talos r=jmaher
MozReview-Commit-ID: Erijz8ywllA
2016-06-28 13:32:11 +05:30
James Graham
39eed5e913 Bug 1279801 - Add wpt lint to mozlint, r=ahal
MozReview-Commit-ID: CcRBC5XzUQJ
2016-06-23 10:36:47 +01:00
Justin Wood
15b23fced1 Bug 1280956 - Use in-tree linter job to flake8 test taskcluster directory. r=dustin
MozReview-Commit-ID: FsWmAnnycZ2

--HG--
extra : rebase_source : 04a32cea2de133cb75472092cffb8a215f7dc603
2016-06-20 21:06:55 -04:00
Carsten "Tomcat" Book
c6816bf0df merge mozilla-inbound to mozilla-central a=merge 2016-06-12 11:26:13 +02:00
J. Ryan Stinnett
51611069ed Bug 1279515 - Update ESLint plugin version after rule change. r=jdescottes
MozReview-Commit-ID: ECSIVMfsGHL
2016-06-10 11:28:03 -05:00
Andrew Halberstadt
13a551f7f9 Bug 1277641 - [mozlint] Add --no-filter option to make experimenting locally easier, r=smacleod
This makes it easier to lint a path that otherwise wouldn't have been linted due to the include/exclude
directives. Now, you can pass in -n/--no-filter instead of needing to modify the linter configuration file.

MozReview-Commit-ID: GMJuE2C1NyY

--HG--
extra : rebase_source : 03627e930f76903ad629cb01b58c4ae7372e4bb1
2016-06-02 15:14:07 -04:00
Carsten "Tomcat" Book
4ee1ed2b8f merge mozilla-inbound to central a=merge
--HG--
extra : amend_source : 10247ace8885c608987dcf31d47368e0dec09b19
2016-06-10 15:39:23 +02:00
J. Ryan Stinnett
66ea2b9a74 Bug 1193390 - Add ESLint rule to check for single argument Cu.import. r=tromey
MozReview-Commit-ID: 1IRTa7kgdiF
2016-06-09 14:10:07 -05:00
Andrew Halberstadt
fc24b11e43 Bug 1271734 - Move all eslint related infrastructure to tools/lint, r=miker
This commit simply moves 'testing/eslint' to 'tools/lint/eslint' and the eslint related
mach command from 'python/mach_commands.py' to 'tools/lint/mach_commands.py'. It shouldn't
have any functional change on running eslint, either through mach or taskcluster.

This is in preparation for bug 1258341, to make the diffs there a little easier to read.

MozReview-Commit-ID: K03sn9lv9Lv

--HG--
rename : testing/eslint/eslint-plugin-mozilla/LICENSE => tools/lint/eslint/eslint-plugin-mozilla/LICENSE
rename : testing/eslint/eslint-plugin-mozilla/docs/balanced-listeners.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/balanced-listeners.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/import-browserjs-globals.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/import-browserjs-globals.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/import-globals.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/import-globals.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/import-headjs-globals.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/import-headjs-globals.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/index.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/index.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/mark-test-function-used.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/mark-test-function-used.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/no-aArgs.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/no-aArgs.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/no-cpows-in-tests.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/no-cpows-in-tests.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/reject-importGlobalProperties.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/reject-importGlobalProperties.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/var-only-at-top-level.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/var-only-at-top-level.rst
rename : testing/eslint/eslint-plugin-mozilla/lib/globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/helpers.js => tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js
rename : testing/eslint/eslint-plugin-mozilla/lib/index.js => tools/lint/eslint/eslint-plugin-mozilla/lib/index.js
rename : testing/eslint/eslint-plugin-mozilla/lib/processors/xbl-bindings.js => tools/lint/eslint/eslint-plugin-mozilla/lib/processors/xbl-bindings.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/.eslintrc => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/.eslintrc
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/balanced-listeners.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/balanced-listeners.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/import-globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/mark-test-function-used.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-test-function-used.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/no-aArgs.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-aArgs.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/no-cpows-in-tests.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-cpows-in-tests.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/reject-importGlobalProperties.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-importGlobalProperties.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/var-only-at-top-level.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/var-only-at-top-level.js
rename : testing/eslint/eslint-plugin-mozilla/moz.build => tools/lint/eslint/eslint-plugin-mozilla/moz.build
rename : testing/eslint/eslint-plugin-mozilla/package.json => tools/lint/eslint/eslint-plugin-mozilla/package.json
rename : testing/eslint/manifest.tt => tools/lint/eslint/manifest.tt
rename : testing/eslint/npm-shrinkwrap.json => tools/lint/eslint/npm-shrinkwrap.json
rename : testing/eslint/package.json => tools/lint/eslint/package.json
rename : testing/eslint/update => tools/lint/eslint/update
extra : rebase_source : bb44b6285acf4625079cb6a3aaca7d9ada778c3a
2016-06-02 15:38:36 -04:00
Julian Descottes
eace7c89ed Bug 1279210 - eslint setup: fix eslint module path;r=ahal
MozReview-Commit-ID: HL4tIwgkSau

--HG--
extra : rebase_source : 8169cbc543528a6b2a6e2bffbf4a202dfcea1a93
2016-06-09 14:40:48 +02:00
Andrew Halberstadt
7c3487a2d7 Bug 1277851 - [mozlint] Run flake8 directories that contain a .flake8 file separately, r=maja_zf
This is a crude workaround to get subdirectory .flake8 files working. Hopefully
this is temporary until flake8 3.0 is released with support for multiple config
files.

Note that .flake8 files that live outside of a directory that is explicitly
listed in the 'include' directive, will not be considered.

MozReview-Commit-ID: GtpUZHJKq52

--HG--
extra : rebase_source : 0294e135673a3b580316a46ec13e37749422edba
2016-06-03 10:39:32 -04:00
David Burns
c99cc3f3c1 Bug 1277672: Add Marionette Client to included directories for linting. r=ahal
MozReview-Commit-ID: 58sHBjqHpxV

--HG--
extra : rebase_source : c60b6b545551f5b567b7abc9a17e85e993b792ea
2016-06-02 21:25:24 +01:00
Andrew Halberstadt
557cd94acb Bug 1273634 - [mozlint] Create a flake8 task, r=dustin
Enables flake8 linting! To start, only these directories are actually linted:
- python/mozlint
- tools/lint

To enable new directories, add them to the 'include' directive at the bottom of:
tools/lint/flake8.lint

Edit topsrcdir/.flake8 to modify global configuration. Add a new .flake8 to a
subdirectory to override the global. The current configuration is more or less
just the default and we should tweak it to our needs.

MozReview-Commit-ID: iXbToRhm3b

--HG--
extra : transplant_source : %E7i%04%07%1C%B3%E4%FD%FF%BB%A6w%CF%27t%FFz%CD%5EE
2016-05-17 16:24:24 -04:00
Andrew Halberstadt
031698ae90 Bug 1273634 - [mozlint] Add a treeherder formatter, r=jgraham
This is a really simple and ugly formatter that is compatible with
treeherder's error highlighting mechanism. It is designed to be identical
to the current eslint output on treeherder:
https://dxr.mozilla.org/mozilla-central/rev/4d63dde701b47b8661ab7990f197b6b60e543839/tools/lint/eslint-formatter.js

Eventually eslint will also use this and we can remove that file. Once
bug 1276486 is fixed, we can make this look a little nicer. But for now
it gets the job done.

MozReview-Commit-ID: CwfWPcwWFxF

--HG--
extra : transplant_source : %F3PJ%CB%27%A5%82U%D2%CF%B3%9E%A7%9F%0F%A4%F4%E9%5D%BB
2016-05-28 23:38:30 -04:00
Carsten "Tomcat" Book
c30c6ba10e Backed out changeset c48f3b04c9de (bug 1273634) 2016-06-02 15:05:01 +02:00
Carsten "Tomcat" Book
3891fd3556 Backed out changeset 3f521a9d4d1f (bug 1273634) 2016-06-02 15:05:00 +02:00
Andrew Halberstadt
f6bad5ec2a Bug 1273634 - [mozlint] Create a flake8 task, r=garndt
Enables flake8 linting! To start, only these directories are actually linted:
- python/mozlint
- tools/lint

To enable new directories, add them to the 'include' directive at the bottom of:
tools/lint/flake8.lint

Edit topsrcdir/.flake8 to modify global configuration. Add a new .flake8 to a
subdirectory to override the global. The current configuration is more or less
just the default and we should tweak it to our needs.

MozReview-Commit-ID: iXbToRhm3b

--HG--
extra : rebase_source : 78c4491261ba36421110b0d9fca73c1f6d1f85c3
2016-05-17 16:24:24 -04:00
Andrew Halberstadt
df97806e5f Bug 1273634 - [mozlint] Add a treeherder formatter, r=jgraham
This is a really simple and ugly formatter that is compatible with
treeherder's error highlighting mechanism. It is designed to be identical
to the current eslint output on treeherder:
https://dxr.mozilla.org/mozilla-central/rev/4d63dde701b47b8661ab7990f197b6b60e543839/tools/lint/eslint-formatter.js

Eventually eslint will also use this and we can remove that file. Once
bug 1276486 is fixed, we can make this look a little nicer. But for now
it gets the job done.

MozReview-Commit-ID: CwfWPcwWFxF

--HG--
extra : rebase_source : 8dd39aefec1064e0836c847c6d223db43df4755b
2016-05-28 23:38:30 -04:00
Andrew Halberstadt
464b3a9f2e Bug 1273556 - [mozlint] Better SIGINT handling, return partial results on Ctrl-C, r=jgraham
Currently a bug in python (https://bugs.python.org/issue8296) is preventing a KeyboardInterrupt from
reaching the parent process, meaning we can't kill the process with SIGINT. There is a workaround to
this bug, but instead I decided to ignore SIGINT in the parent process completely. Now, each child
process is responsible for handling SIGINT on its own. Since child processes should all shutdown
relatively quickly anyway, this effectively also ends the parent process.

The benefit of doing it this way is that each child process can return the results they have collected
to date. So when a developer hits Ctrl-C, they'll still see some (but not all) formatted lint output.
The downside is that a poorly implemented external linter could block the parent process from exiting
quickly, but if this happens we should just fix the linter.

MozReview-Commit-ID: 2tRJgtmoPYP

--HG--
extra : rebase_source : e72282bcc29c9b22690168dc973a817236cdf8ca
2016-05-17 12:24:42 -04:00
Andrew Halberstadt
b1445349ea Bug 1270506 - [mozlint] Add python flake8 linter, r=smacleod
For now, only the following two directories will be linted:
python/mozlint
tools/lint

New directories can be added by adding them to the 'include'
directive in tools/lint/flake8.lint. They all default to the
configuration specified in topsrcdir/.flake8. Subdirectories
can override this configuration by creating their own .flake8
file.

MozReview-Commit-ID: Eag48Lnkp3l

--HG--
extra : rebase_source : 6d98c9fef80055a48cc2622848aa04c3045b747e
2016-05-05 17:21:12 -04:00
Andrew Halberstadt
0484cb2aa7 Bug 1230962 - Create mach/build system integration for mozlint, r=smacleod
MozReview-Commit-ID: 74ma5uMOphe

--HG--
extra : rebase_source : 3b0594650a364ad598fc12cc38f3e4fd916ca26b
2016-03-18 13:54:07 -04:00
Dave Townsend
a1a44cb784 Bug 1229588: Add a taskcluster test for eslint. r=dustin
Adds a new lint docker image for linting tools and adds an eslint-gecko task
that uses it to run eslint over the tree.

--HG--
extra : rebase_source : 6e3584ae9ec05ca1c45270f312d96cd026550e17
2016-01-06 13:33:30 -08:00