Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build: Don't install jsdom 3 on Node.js 0.10 & 0.12 by default
jsdom 3 requires Python & Visual Studio on Windows which is a significant barrier to contributors. Newer jsdom versions don't require pre-compiling but work only on io.js. This commit installs the new jsdom everywhere (it does install in old Node.js, it just won't work) and executes Node-related tests only on newer Nodes or if a working jsdom version is installed. The latter can be achieved by running the `old_jsdom` task. Node.js is merging with io.js soon so this will become a smaller problem over time. One drawback is our Jenkins setup runs on Node 0.10 so it won't be running Node tests anymore. We have Travis set up on io.js, though so all PRs have those tests run. When the new LTS Node.js arrives (as it soon merges with io.js) we should update our Jenkins infrastructure so that it runs on this new version. Fixes gh-2519 Closes gh-2526
- Loading branch information
Showing
5 changed files
with
41 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,20 @@ | |||
module.exports = function( grunt ) { | |||
|
|||
"use strict"; | |||
|
|||
// Run this task to run jsdom-related tests on Node.js < 1.0.0. | |||
grunt.registerTask( "old_jsdom", function() { | |||
if ( !/^v0/.test( process.version ) ) { | |||
console.warn( "The old_jsdom task doesn\'t need to be run in io.js or new Node.js" ); | |||
return; | |||
} | |||
|
|||
// Use npm on the command-line | |||
// There is no local npm | |||
grunt.util.spawn( { | |||
cmd: "npm", | |||
args: [ "install", "jsdom@3" ], | |||
opts: { stdio: "inherit" } | |||
}, this.async() ); | |||
} ); | |||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dbb2daa
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.
@timmywil I'd like to backport it to 2.2, otherwise it's not possible to build it using Node.js 4.2.1, the latest version and an LTS at the same time. Any objections?
It's not necessary to backport to 1.11 as we don't support non-browser environments there.