diff options
Diffstat (limited to 'build/release/release.js')
-rw-r--r-- | build/release/release.js | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/build/release/release.js b/build/release/release.js index 401f2366e..6939c8611 100644 --- a/build/release/release.js +++ b/build/release/release.js @@ -1,6 +1,7 @@ #!/usr/bin/env node -var baseDir, repoDir, prevVersion, newVersion, nextVersion, tagTime, +var baseDir, repoDir, majorMinorVersion, patchVersion, prevVersion, newVersion, + nextVersion, tagTime, fs = require( "fs" ), path = require( "path" ), // support: node <0.8 @@ -103,10 +104,14 @@ function getVersions() { major = parseInt( parts[ 0 ], 10 ); minor = parseInt( parts[ 1 ], 10 ); patch = parseInt( parts[ 2 ], 10 ); + // TODO: handle 2.0.0 if ( minor === 0 ) { abort( "This script is not smart enough to handle the 2.0.0 release." ); } + + majorMinorVersion = [ major, minor ].join( "." ); + patchVersion = patch; prevVersion = patch === 0 ? [ major, minor - 1, 0 ].join( "." ) : [ major, minor, patch - 1 ].join( "." ); @@ -190,7 +195,14 @@ function generateChangelog() { var commits, changelogPath = baseDir + "/changelog", changelog = cat( "build/release/changelog-shell" ) + "\n", - fullFormat = "* %s (TICKETREF, [http://github.com/jquery/jquery-ui/commit/%H %h])"; + fullFormat = "* %s (TICKETREF, [%h](http://github.com/jquery/jquery-ui/commit/%H))"; + + changelog = changelog + .replace( "{title}", "jQuery UI " + newVersion + " Changelog" ) + .replace( "{summary}", patchVersion === 0 ? + "This is the final release of jQuery UI " + majorMinorVersion + "." : + "This is the " + ordinal( patchVersion ) + " maintenance release for " + + "[jQuery UI " + majorMinorVersion + "](/changelog/" + majorMinorVersion + ")." ); echo ( "Adding commits..." ); commits = gitLog( fullFormat ); @@ -205,7 +217,7 @@ function generateChangelog() { }); return tickets.length ? commit.replace( "TICKETREF", tickets.map(function( ticket ) { - return "[http://bugs.jqueryui.com/ticket/" + ticket + " #" + ticket + "]"; + return "[#" + ticket + "](http://bugs.jqueryui.com/ticket/" + ticket + ")"; }).join( ", " ) ) : // Leave TICKETREF token in place so it's easy to find commits without tickets commit; @@ -318,6 +330,30 @@ function writePackage( pkg ) { JSON.stringify( pkg, null, "\t" ) + "\n" ); } +function ordinal( number ) { + return number === 1 ? "first" : + number === 2 ? "second" : + number === 3 ? "third" : + number === 4 ? "fourth" : + number === 5 ? "fifth" : + number === 6 ? "sixth" : + number === 7 ? "seventh" : + number === 8 ? "eighth" : + number === 9 ? "ninth" : + number === 10 ? "tenth" : + number === 11 ? "eleventh" : + number === 12 ? "twelfth" : + number === 13 ? "thirteenth" : + number === 14 ? "fourteenth" : + number === 15 ? "fifteenth" : + number === 16 ? "sixteenth" : + number === 17 ? "seventeenth" : + number === 18 ? "eighteenth" : + number === 19 ? "nineteenth" : + number === 20 ? "twentieth" : + "twenty " + ordinal( number - 20 ); +} + function bootstrap( fn ) { console.log( "Determining directories..." ); baseDir = process.cwd() + "/__release"; |