From 523c87138afc23acd7d0817504d254bd25ae04a0 Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Fri, 23 May 2014 12:45:51 -0400 Subject: [PATCH] Release: ensure Sizzle is the latest tag Fixes #14915 --- build/ensure-sizzle.js | 40 ++++++++++++++++++++++++++++++++++++++++ build/release.js | 8 ++++++++ package.json | 1 + 3 files changed, 49 insertions(+) create mode 100644 build/ensure-sizzle.js diff --git a/build/ensure-sizzle.js b/build/ensure-sizzle.js new file mode 100644 index 000000000..01a128efb --- /dev/null +++ b/build/ensure-sizzle.js @@ -0,0 +1,40 @@ +var fs = require( "fs" ), + bower = require( "grunt-bowercopy/node_modules/bower" ), + sizzleLoc = __dirname + "/../src/sizzle/dist/sizzle.js", + rversion = /Engine v(\d+\.\d+\.\d+(?:-\w+)?)/; + +/** + * Retrieve the latest tag of Sizzle from bower + * @param {Function(string)} callback + */ +function getLatestSizzle( callback ) { + bower.commands.info( "sizzle", "version" ) + .on( "end", callback ); +} + +/** + * Ensure the /src folder has the latest tag of Sizzle + * @param {Object} Release + * @param {Function} callback + */ +function ensureSizzle( Release, callback ) { + console.log(); + console.log( "Checking Sizzle version..." ); + getLatestSizzle(function( latest ) { + var match = rversion.exec( fs.readFileSync( sizzleLoc, "utf8" ) ), + version = match ? match[ 1 ] : "Not Found"; + + if ( version !== latest ) { + console.log( + "The Sizzle version in the src folder (" + version.red + + ") is not the latest tag (" + latest.green + ")." + ); + Release.confirm( callback ); + } else { + console.log( "Sizzle is latest (" + latest.green + ")" ); + callback(); + } + }); +} + +module.exports = ensureSizzle; diff --git a/build/release.js b/build/release.js index 1818d4d9e..8a2b98e58 100644 --- a/build/release.js +++ b/build/release.js @@ -3,6 +3,7 @@ module.exports = function( Release ) { var fs = require( "fs" ), shell = require( "shelljs" ), + ensureSizzle = require( "./ensure-sizzle" ), devFile = "dist/jquery.js", minFile = "dist/jquery.min.js", @@ -118,6 +119,13 @@ module.exports = function( Release ) { }, issueTracker: "trac", contributorReportId: 508, + /** + * Ensure the repo is in a proper state before release + * @param {Function} callback + */ + checkRepoState: function( callback ) { + ensureSizzle( Release, callback ); + }, /** * Generates any release artifacts that should be included in the release. * The callback must be invoked with an array of files that should be diff --git a/package.json b/package.json index 86def159e..c1ff29da1 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ ], "dependencies": {}, "devDependencies": { + "colors": "^0.6.2", "commitplease": "1.7.0", "grunt": "0.4.2", "grunt-bowercopy": "0.7.1",