From face67cea4842d169ed60df9afcf6f8488dd8b60 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Thu, 9 Jul 2015 20:33:09 -0700 Subject: [PATCH] build: Use blacklist instead of whitelist for jshint/jscs/jsonlint * jsonlint now includes docs/, includes/ (api and installer i18n), maintenance/, and tests/. 539 files -> 864 files. - Continue to exclude JSDuck artefacts in docs/js/. - Continue to exclude vendor/. * jshint now includes mw-config/ and maintenance/. 177 files -> 179 files. * jscs now includes everything jshint includes. 172 files -> 179 files. - The -skip.js files no longer need excluding. Use the native exclude syntax for jshint and jscs so that other software and services with JSHint support use these as well. Change-Id: Idebf30275f9c93483069367f923ed290c38e0b26 --- .jscsrc | 14 ++++++++- .jshintignore | 3 +- Gruntfile.js | 33 +++++--------------- maintenance/jsduck/external.js | 1 - tests/qunit/data/generateJqueryMsgData.php | 3 +- tests/qunit/data/mediawiki.jqueryMsg.data.js | 3 +- 6 files changed, 25 insertions(+), 32 deletions(-) diff --git a/.jscsrc b/.jscsrc index 98b81db9dc..6a3c56408b 100644 --- a/.jscsrc +++ b/.jscsrc @@ -3,5 +3,17 @@ "disallowQuotedKeysInObjects": null, "requireSpacesInsideParentheses": null, - "requireSpacesInsideArrayBrackets": null + "requireSpacesInsideArrayBrackets": null, + + "excludeFiles": [ + "docs/**", + "extensions/**", + "node_modules/**", + "resources/lib/**", + "resources/src/jquery.tipsy/**", + "resources/src/jquery/jquery.farbtastic.js", + "resources/src/mediawiki.libs/**", + "skins/**", + "vendor/**" + ] } diff --git a/.jshintignore b/.jshintignore index 1882151c45..fdde7d054d 100644 --- a/.jshintignore +++ b/.jshintignore @@ -8,4 +8,5 @@ resources/lib/** resources/src/jquery.tipsy/** resources/src/jquery/jquery.farbtastic.js resources/src/mediawiki.libs/** -tests/frontend/node_modules/** +skins/** +vendor/** diff --git a/Gruntfile.js b/Gruntfile.js index 868fa4a205..e1e5e4ab01 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -19,34 +19,16 @@ module.exports = function ( grunt ) { options: { jshintrc: true }, - all: [ - '*.js', - '{includes,languages,resources,tests}/**/*.js' - ] + all: '.' }, jscs: { - all: [ - '<%= jshint.all %>', - // Auto-generated file with JSON (double quotes) - '!tests/qunit/data/mediawiki.jqueryMsg.data.js', - // Skip functions are stored as script files but wrapped in a function when - // executed. node-jscs trips on the would-be "Illegal return statement". - '!resources/src/*-skip.js' - - // Exclude all files ignored by jshint - ].concat( grunt.file.read( '.jshintignore' ).split( '\n' ).reduce( function ( patterns, pattern ) { - // Filter out empty lines - if ( pattern.length && pattern[0] !== '#' ) { - patterns.push( '!' + pattern ); - } - return patterns; - }, [] ) ) + all: '.' }, jsonlint: { all: [ '.jscsrc', - '{languages,maintenance,resources}/**/*.json', - 'package.json' + '**/*.json', + '!{docs/js,extensions,node_modules,skins,vendor}/**' ] }, banana: { @@ -56,10 +38,9 @@ module.exports = function ( grunt ) { }, watch: { files: [ - '<%= jscs.all %>', - '<%= jsonlint.all %>', - '.jshintignore', - '.jshintrc' + '.js*', + '**/*', + '!{docs,extensions,node_modules,skins,vendor}/**' ], tasks: 'test' }, diff --git a/maintenance/jsduck/external.js b/maintenance/jsduck/external.js index 4bb8369487..c901240785 100644 --- a/maintenance/jsduck/external.js +++ b/maintenance/jsduck/external.js @@ -37,7 +37,6 @@ * @alternateClassName jqXHR */ - /** * @class QUnit * @source diff --git a/tests/qunit/data/generateJqueryMsgData.php b/tests/qunit/data/generateJqueryMsgData.php index 61ebbf8fc6..0fcaa5fe8f 100644 --- a/tests/qunit/data/generateJqueryMsgData.php +++ b/tests/qunit/data/generateJqueryMsgData.php @@ -133,8 +133,7 @@ class GenerateJqueryMsgData extends Maintenance { . "// languages, and parser modes. Intended for use by a unit test framework by looping\n" . "// through the object and comparing its parser return value with the 'result' property.\n" . '// Last generated with ' . basename( __FILE__ ) . ' at ' . gmdate( 'r' ) . "\n" - // This file will contain unquoted JSON strings as javascript native object literals, - // flip the quotemark convention for this file. + . "//jscs:disable\n" . "\n" . 'mediaWiki.libs.phpParserData = ' . FormatJson::encode( $phpParserData, true ) . ";\n"; diff --git a/tests/qunit/data/mediawiki.jqueryMsg.data.js b/tests/qunit/data/mediawiki.jqueryMsg.data.js index 4ab5f1468b..498acc1956 100644 --- a/tests/qunit/data/mediawiki.jqueryMsg.data.js +++ b/tests/qunit/data/mediawiki.jqueryMsg.data.js @@ -1,7 +1,8 @@ // This file stores the output from the PHP parser for various messages, arguments, // languages, and parser modes. Intended for use by a unit test framework by looping // through the object and comparing its parser return value with the 'result' property. -// Last generated with generateJqueryMsgData.php at Thu, 30 Jan 2014 04:04:41 +0000 +// Last generated with generateJqueryMsgData.php at Fri, 10 Jul 2015 11:44:08 +0000 +//jscs:disable mediaWiki.libs.phpParserData = { "messages": { -- 2.20.1