-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade linters to ESLint with stricter code style #1111
Conversation
* Remove jshint and jscs * Install gulp-eslint * Replace 'quality' task with 'lint' * Format lint errors with stylish * Use JavaScript Standard Style with semicolons
Hey @snapwich , @protonate thoughts on this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great, thanks @matthewlane
Changes look great. ESLint is a really nice tool. My only real concern is not having it in the CI process anywhere. If I check out your branch and run If there's nothing automation preventing these errors, then I don't think people will respect them. It's unrealistic to say "please don't add any more errors," because someone won't notice the difference between 2254 and 2256. Do you think it's worth fixing these now? Or do you want to run |
I agree with @dbemiller on this. Can we commit the |
… stray tab character, because it was easy.
… were added during the merge.
…ntionally has eslint errors, so that we can test the CI on Travis.
@dbemiller looks like Travis CI failed on ES lint errors. Would you update the PR to pass CI and then we can merge. Thanks! |
@protonate Yeah, that failure is on purpose. The weird behavior seems to stem from the parallelized gulp tasks stepping on each other's toes. I think I straightened them out... but want to re-run the Travis build 4-5 times to make sure it fails reliably. Then I'll fix them and run it 4-5 times to make sure it passes reliably. |
…s expected to pass now.
Looks to be good now ^^. Someone might want to sanity check the gulpfile before merging, though, since I declared some task dependencies that don't necessarily make a ton of sense. I don't think they'll hurt anything (besides performance)... but it'd be good to have another set of eyes on them. |
hey @snapwich, do you think you'll be able to get around to this sometime soon? Nearly every PR which gets merged has style issues in it, and keeping this branch up to date is getting tedious (if I don't fix them, Travis will fail all the PRs until they are fixed) Once this gets into master, CI will take care of it for us. All the changes to actual JS code were generated by |
gulpfile.js
Outdated
}); | ||
|
||
gulp.task('jscs', function () { | ||
gulp.task('lint', () => { | ||
return gulp.src('src/**/*.js') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want this to lint the test folder as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed & done.
"faker": "^3.1.0", | ||
"fs.extra": "^1.3.2", | ||
"gulp": "^3.8.7", | ||
"gulp-babel": "^6.1.2", | ||
"gulp-clean": "^0.3.1", | ||
"gulp-clean": "^0.3.2", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we're updating dependencies, the yarn.lock
file should probably be updated as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch ^^. Done.
…keep the newly required exceptions to as small of a scope as possible.
* Upgraded to ESLint with stricter code style, for both sources and tests * Updated some dependencies and the yarn.lock file
* Added ad unit size to bid request * Fixed lint errors * Added ad unit size to bid request * Prebid 0.23.1 Release * Add trafficSourceCode + test (#1184) * pre release version bump * inclusion of popular Nordic ad sizes to default size list (#1168) inclusion of popularNordic ad sizes to default size list Removed redundant 104 size and added size 32 instead Fixed trailing comma * Add PubWise Analytics (#1151) * PubWise Analytics * Updates based on Feedback * add new rp_secure param to rubicon adapter (#1190) * Add type conversion into PrebidServer to handle inconsistent types. (#1195) * Add type conversion into prebxdserver to handle inconsistent types. * Only check for params that exist. * adding test * fix string conversion and add unit tests * fix for code review * add debug output * remove accidental commit * newline * Add dynamic bidfloor parameter to Smart Adserver Adapter (#1194) * Smart AdServer adapter Add Smart AdServer adapter with tests * fix not supported method Replace startsWith which is not supported in all browser version by lastIndexOf. * Issue with optional parameter Fix issue when no targeting is specified and remove "undefined" value passed in url * Add dynamic bidfloor option in the SmartAdServer prebid call. * Bug fix: bids served by secure creatives does not get pushed into _winningBids (#1192) * Upgrade linters to ESLint with stricter code style (#1111) * Upgraded to ESLint with stricter code style, for both sources and tests * Updated some dependencies and the yarn.lock file * Add Support for DigiTrust in Rubicon Adapter (#1201) * Add support for DigiTrust * Add rubicon tests covering digitrust failures * Remove whitespace in Rubicon adapter * HIRO Media: Remove batching mechanism and use AJAX instead of JSONP (#1133) * Remove batching mechanism and use AJAX instead of JSONP * Fix `undefined` value checks * Rename secureCreatives file and lint (#1203) * Rename secureCreatives file and lint * Updated package script for linting * Use 'gulp run-tests' in package script for testing * updated tag (#1212) * Common user-sync (#1144) * Changed “bidRequest” to “bid” for clarity
…built * 'master' of https://github.com/prebid/Prebid.js: (23 commits) Increment pre version Probed 0.24.0 Release Beachfront adapter - add ad unit size (prebid#1183) Thoughtleadr adapter - fix postMessage (prebid#1207) When prebid server issues a no-bid response, call addBidResponse for every adUnit requested (prebid#1204) Improvement/timeout xhr (prebid#1172) Add native support (prebid#1072) Improvement/alias queue (prebid#1156) Updated documentaion (prebid#1160) Improvement/prebid iframes amp pages (prebid#1119) Fixes prebid#1114 possible xss issue (prebid#1186) Allowed setTargetingForGPTAsync() to target specific ad unit codes. (prebid#1158) updated tag (prebid#1212) Common user-sync (prebid#1144) Rename secureCreatives file and lint (prebid#1203) HIRO Media: Remove batching mechanism and use AJAX instead of JSONP (prebid#1133) Add Support for DigiTrust in Rubicon Adapter (prebid#1201) Upgrade linters to ESLint with stricter code style (prebid#1111) Add dynamic bidfloor parameter to Smart Adserver Adapter (prebid#1194) Bug fix: bids served by secure creatives does not get pushed into _winningBids (prebid#1192) ...
* Added ad unit size to bid request * Fixed lint errors * Added ad unit size to bid request * Prebid 0.23.1 Release * Add trafficSourceCode + test (prebid#1184) * pre release version bump * inclusion of popular Nordic ad sizes to default size list (prebid#1168) inclusion of popularNordic ad sizes to default size list Removed redundant 104 size and added size 32 instead Fixed trailing comma * Add PubWise Analytics (prebid#1151) * PubWise Analytics * Updates based on Feedback * add new rp_secure param to rubicon adapter (prebid#1190) * Add type conversion into PrebidServer to handle inconsistent types. (prebid#1195) * Add type conversion into prebxdserver to handle inconsistent types. * Only check for params that exist. * adding test * fix string conversion and add unit tests * fix for code review * add debug output * remove accidental commit * newline * Add dynamic bidfloor parameter to Smart Adserver Adapter (prebid#1194) * Smart AdServer adapter Add Smart AdServer adapter with tests * fix not supported method Replace startsWith which is not supported in all browser version by lastIndexOf. * Issue with optional parameter Fix issue when no targeting is specified and remove "undefined" value passed in url * Add dynamic bidfloor option in the SmartAdServer prebid call. * Bug fix: bids served by secure creatives does not get pushed into _winningBids (prebid#1192) * Upgrade linters to ESLint with stricter code style (prebid#1111) * Upgraded to ESLint with stricter code style, for both sources and tests * Updated some dependencies and the yarn.lock file * Add Support for DigiTrust in Rubicon Adapter (prebid#1201) * Add support for DigiTrust * Add rubicon tests covering digitrust failures * Remove whitespace in Rubicon adapter * HIRO Media: Remove batching mechanism and use AJAX instead of JSONP (prebid#1133) * Remove batching mechanism and use AJAX instead of JSONP * Fix `undefined` value checks * Rename secureCreatives file and lint (prebid#1203) * Rename secureCreatives file and lint * Updated package script for linting * Use 'gulp run-tests' in package script for testing * updated tag (prebid#1212) * Common user-sync (prebid#1144) * Changed “bidRequest” to “bid” for clarity
* Upgraded to ESLint with stricter code style, for both sources and tests * Updated some dependencies and the yarn.lock file
* Added ad unit size to bid request * Fixed lint errors * Added ad unit size to bid request * Prebid 0.23.1 Release * Add trafficSourceCode + test (prebid#1184) * pre release version bump * inclusion of popular Nordic ad sizes to default size list (prebid#1168) inclusion of popularNordic ad sizes to default size list Removed redundant 104 size and added size 32 instead Fixed trailing comma * Add PubWise Analytics (prebid#1151) * PubWise Analytics * Updates based on Feedback * add new rp_secure param to rubicon adapter (prebid#1190) * Add type conversion into PrebidServer to handle inconsistent types. (prebid#1195) * Add type conversion into prebxdserver to handle inconsistent types. * Only check for params that exist. * adding test * fix string conversion and add unit tests * fix for code review * add debug output * remove accidental commit * newline * Add dynamic bidfloor parameter to Smart Adserver Adapter (prebid#1194) * Smart AdServer adapter Add Smart AdServer adapter with tests * fix not supported method Replace startsWith which is not supported in all browser version by lastIndexOf. * Issue with optional parameter Fix issue when no targeting is specified and remove "undefined" value passed in url * Add dynamic bidfloor option in the SmartAdServer prebid call. * Bug fix: bids served by secure creatives does not get pushed into _winningBids (prebid#1192) * Upgrade linters to ESLint with stricter code style (prebid#1111) * Upgraded to ESLint with stricter code style, for both sources and tests * Updated some dependencies and the yarn.lock file * Add Support for DigiTrust in Rubicon Adapter (prebid#1201) * Add support for DigiTrust * Add rubicon tests covering digitrust failures * Remove whitespace in Rubicon adapter * HIRO Media: Remove batching mechanism and use AJAX instead of JSONP (prebid#1133) * Remove batching mechanism and use AJAX instead of JSONP * Fix `undefined` value checks * Rename secureCreatives file and lint (prebid#1203) * Rename secureCreatives file and lint * Updated package script for linting * Use 'gulp run-tests' in package script for testing * updated tag (prebid#1212) * Common user-sync (prebid#1144) * Changed “bidRequest” to “bid” for clarity
Type of change
Description of change
Other information
This PR is currently configured to use JavaScript Standard Style with semicolons. Compare this to other common linting configurations with number of linting problems found against the
0.21.0
release, and the number after runningeslint --fix src
:--fix
Other configs, such as Canonical mentioned in #776, or a custom rule set are possible.
Compare rule sets with https://sqren.github.io/eslint-compare/
Requesting feedback from the community and @prebid/core on which code style Prebid.js should use.