You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by er...@apache.org on 2022/07/12 12:18:47 UTC

[cordova-coho] branch master updated: dep: bump @cordova/eslint-config@4.0.0 w/ fixes (#290)

This is an automated email from the ASF dual-hosted git repository.

erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-coho.git


The following commit(s) were added to refs/heads/master by this push:
     new 514cfa1  dep: bump @cordova/eslint-config@4.0.0 w/ fixes (#290)
514cfa1 is described below

commit 514cfa1edbc8835c13730b4e722143c77ff6ddd1
Author: エリス <er...@users.noreply.github.com>
AuthorDate: Tue Jul 12 21:18:42 2022 +0900

    dep: bump @cordova/eslint-config@4.0.0 w/ fixes (#290)
    
    * dep: bump @cordova/eslint-config@4.0.0 w/ auto fix
    * style: fix lint warning in check-license
    * style: fix lint warning in verify-tags
    * style: diable warning in nightly
    * style: diable warning in plugin-release
    * style: diable warning in superspawn
    * style: fix lint warning in repo-push
---
 package.json                 |   2 +-
 spec/apputil.spec.js         |   4 +-
 spec/executil.spec.js        |  14 +--
 spec/flagutil.spec.js        |  12 +--
 spec/gitutil.spec.js         |   6 +-
 spec/repoutil.spec.js        |  14 +--
 spec/versionutil.spec.js     |  20 ++--
 src/apputil.js               |  24 ++---
 src/check-license.js         |  84 ++++++++-------
 src/create-pr.js             |  52 ++++-----
 src/create-verify-archive.js |  76 ++++++-------
 src/executil.js              |  14 +--
 src/flagutil.js              |  26 ++---
 src/for-each.js              |  20 ++--
 src/gitutil.js               |  32 +++---
 src/last-week.js             |  40 +++----
 src/list-pulls.js            |  64 +++++------
 src/list-release-urls.js     |  22 ++--
 src/list-repos.js            |   4 +-
 src/merge-pr.js              |  28 ++---
 src/nightly.js               |  57 +++++-----
 src/npm-link.js              |  18 ++--
 src/npm-publish.js           |  22 ++--
 src/platform-release.js      |  94 ++++++++--------
 src/plugin-release.js        | 248 +++++++++++++++++++++----------------------
 src/print-tags.js            |  18 ++--
 src/remote-update.js         |  16 +--
 src/repo-clone.js            |  34 +++---
 src/repo-push.js             |  33 +++---
 src/repo-reset.js            |  32 +++---
 src/repo-status.js           |  48 ++++-----
 src/repo-update.js           |  48 ++++-----
 src/repoutil.js              |  52 ++++-----
 src/retrieve-sha.js          |   6 +-
 src/shortlog.js              |  36 +++----
 src/superspawn.js            |  35 +++---
 src/svnutil.js               |   2 +-
 src/update-release-notes.js  |  62 +++++------
 src/verify-tags.js           |  40 +++----
 src/versionutil.js           |  52 ++++-----
 40 files changed, 758 insertions(+), 753 deletions(-)

diff --git a/package.json b/package.json
index eda49b3..1e3340c 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
     "xml2js": "0.4.17"
   },
   "devDependencies": {
-    "@cordova/eslint-config": "^3.0.0",
+    "@cordova/eslint-config": "^4.0.0",
     "cordova-android": "^8.1.0",
     "cordova-browser": "^6.0.0",
     "cordova-ios": "^5.0.1",
diff --git a/spec/apputil.spec.js b/spec/apputil.spec.js
index 3b21251..49dd3ba 100644
--- a/spec/apputil.spec.js
+++ b/spec/apputil.spec.js
@@ -17,8 +17,8 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var path = require('path');
-var apputil = require('../src/apputil');
+const path = require('path');
+const apputil = require('../src/apputil');
 
 describe('apputil unit tests', function () {
     it('Test#001 : print', function () {
diff --git a/spec/executil.spec.js b/spec/executil.spec.js
index e74ee69..2a8aecc 100644
--- a/spec/executil.spec.js
+++ b/spec/executil.spec.js
@@ -18,13 +18,13 @@ under the License.
 */
 
 require('jasmine-co').install();
-var executil = require('../src/executil');
-var superspawn = require('../src/superspawn');
-var apputil = require('../src/apputil');
-var Q = require('q');
-var deferred = Q.defer();
-var TIMEOUT = 60000;
-var androidRepo = {
+const executil = require('../src/executil');
+const superspawn = require('../src/superspawn');
+const apputil = require('../src/apputil');
+const Q = require('q');
+const deferred = Q.defer();
+const TIMEOUT = 60000;
+const androidRepo = {
     title: 'Android',
     id: 'android',
     repoName: 'cordova-android',
diff --git a/spec/flagutil.spec.js b/spec/flagutil.spec.js
index f6fa347..e6d4a7c 100644
--- a/spec/flagutil.spec.js
+++ b/spec/flagutil.spec.js
@@ -17,10 +17,10 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var apputil = require('../src/apputil');
-var flagutil = require('../src/flagutil');
+const apputil = require('../src/apputil');
+const flagutil = require('../src/flagutil');
 
-var TIMEOUT = 60000;
+const TIMEOUT = 60000;
 
 describe('flagutil unit tests', function () {
     it('Test#001 : validate the version that is passed in', function () {
@@ -32,7 +32,7 @@ describe('flagutil unit tests', function () {
     }, TIMEOUT);
 
     it('Test#002 : computeReposFromFlag returns correct repo (platform) info', function () {
-        var repo = flagutil.computeReposFromFlag('android');
+        const repo = flagutil.computeReposFromFlag('android');
         expect(repo).toEqual(
             [Object({
                 title: 'Android',
@@ -46,7 +46,7 @@ describe('flagutil unit tests', function () {
     }, TIMEOUT);
 
     it('Test#003 : computeReposFromFlag returns correct repo (plugin) info', function () {
-        var repo = flagutil.computeReposFromFlag('plugin-camera');
+        const repo = flagutil.computeReposFromFlag('plugin-camera');
         expect(repo).toEqual(
             [{
                 title: 'Plugin - Camera',
@@ -58,7 +58,7 @@ describe('flagutil unit tests', function () {
     }, TIMEOUT);
 
     it('Test#004 : computeReposFromFlag returns correct repo (docs) info', function () {
-        var repo = flagutil.computeReposFromFlag('docs');
+        const repo = flagutil.computeReposFromFlag('docs');
         expect(repo).toEqual(
             [{
                 title: 'Docs',
diff --git a/spec/gitutil.spec.js b/spec/gitutil.spec.js
index e1f6ac6..04d7014 100644
--- a/spec/gitutil.spec.js
+++ b/spec/gitutil.spec.js
@@ -18,9 +18,9 @@ under the License.
 */
 
 require('jasmine-co').install();
-var executil = require('../src/executil');
-var gitutilJS = require('../src/gitutil');
-var TIMEOUT = 60000;
+const executil = require('../src/executil');
+const gitutilJS = require('../src/gitutil');
+const TIMEOUT = 60000;
 
 describe('gitutil unit tests', function () {
     beforeEach(function * () {
diff --git a/spec/repoutil.spec.js b/spec/repoutil.spec.js
index cd5a864..e43ce66 100644
--- a/spec/repoutil.spec.js
+++ b/spec/repoutil.spec.js
@@ -19,16 +19,16 @@ under the License.
 
 require('jasmine-co').install();
 
-var path = require('path');
+const path = require('path');
 
-var shelljs = require('shelljs');
+const shelljs = require('shelljs');
 
-var apputil = require('../src/apputil');
-var repoutil = require('../src/repoutil');
+const apputil = require('../src/apputil');
+const repoutil = require('../src/repoutil');
 
-var TIMEOUT = 60000;
+const TIMEOUT = 60000;
 
-var androidRepo = {
+const androidRepo = {
     title: 'Android',
     id: 'android',
     repoName: 'cordova-android',
@@ -37,7 +37,7 @@ var androidRepo = {
     remoteName: 'origin'
 };
 
-var commonRepo = {
+const commonRepo = {
     title: 'Cordova Common',
     id: 'common',
     packageName: 'cordova-common',
diff --git a/spec/versionutil.spec.js b/spec/versionutil.spec.js
index ef63f78..c6ccebc 100644
--- a/spec/versionutil.spec.js
+++ b/spec/versionutil.spec.js
@@ -17,14 +17,14 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var versionutil = require('../src/versionutil');
+const versionutil = require('../src/versionutil');
 require('jasmine-co').install();
-var fs = require('fs');
-var os = require('os');
-var path = require('path');
-var shell = require('shelljs');
-var gitutil = require('../src/gitutil');
-var androidRepo = {
+const fs = require('fs');
+const os = require('os');
+const path = require('path');
+const shell = require('shelljs');
+const gitutil = require('../src/gitutil');
+const androidRepo = {
     title: 'Android',
     id: 'android',
     repoName: 'cordova-android',
@@ -32,7 +32,7 @@ var androidRepo = {
     cordovaJsPaths: ['bin/templates/project/assets/www/cordova.js'],
     remoteName: 'origin'
 };
-var iosRepo = {
+const iosRepo = {
     title: 'iOS',
     id: 'ios',
     repoName: 'cordova-ios',
@@ -40,7 +40,7 @@ var iosRepo = {
     cordovaJsPaths: ['CordovaLib/cordova.js'],
     versionFilePaths: [path.join('CordovaLib', 'VERSION')]
 };
-var windowsRepo = {
+const windowsRepo = {
     title: 'Windows',
     id: 'windows',
     repoName: 'cordova-windows',
@@ -50,7 +50,7 @@ var windowsRepo = {
     versionFilePaths: ['VERSION'],
     packageFilePaths: ['package.json']
 };
-var browserRepo = {
+const browserRepo = {
     title: 'Browser',
     id: 'browser',
     repoName: 'cordova-browser',
diff --git a/src/apputil.js b/src/apputil.js
index 39af9de..c2aebf8 100644
--- a/src/apputil.js
+++ b/src/apputil.js
@@ -17,12 +17,12 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var path = require('path');
-var chalk = require('chalk');
-var shell = require('shelljs');
+const path = require('path');
+const chalk = require('chalk');
+const shell = require('shelljs');
 
-var origWorkingDir = path.resolve(process.cwd());
-var baseWorkingDir = origWorkingDir;
+const origWorkingDir = path.resolve(process.cwd());
+let baseWorkingDir = origWorkingDir;
 
 exports.resolveUserSpecifiedPath = function (p) {
     return path.resolve(origWorkingDir, p);
@@ -30,7 +30,7 @@ exports.resolveUserSpecifiedPath = function (p) {
 
 exports.initWorkingDir = function (chdir) {
     if (chdir) {
-        var newDir = path.resolve(__dirname, '..', '..');
+        const newDir = path.resolve(__dirname, '..', '..');
         process.chdir(newDir);
         baseWorkingDir = newDir;
     }
@@ -49,17 +49,17 @@ exports.fatal = function () {
 exports.prefixLength = 30;
 
 exports.print = function () {
-    var newArgs = Array.prototype.slice.call(arguments);
+    let newArgs = Array.prototype.slice.call(arguments);
     // Prefix any prints() to distinguish them from command output.
     if (newArgs.length > 1 || newArgs[0]) {
-        var curDir = path.relative(baseWorkingDir, process.cwd());
+        let curDir = path.relative(baseWorkingDir, process.cwd());
         curDir = curDir ? curDir + '/' : './';
-        var banner = ' =';
-        var PREFIX_LEN = exports.prefixLength;
+        let banner = ' =';
+        const PREFIX_LEN = exports.prefixLength;
         if (curDir.length < PREFIX_LEN) {
             banner += new Array(PREFIX_LEN - curDir.length + 1).join('=');
         }
-        var prefix = chalk.magenta.bold(curDir) + chalk.yellow(banner);
+        const prefix = chalk.magenta.bold(curDir) + chalk.yellow(banner);
         newArgs.unshift(prefix);
         newArgs = newArgs.map(function (val) { return val.replace(/\n/g, '\n' + prefix + ' '); });
     }
@@ -68,7 +68,7 @@ exports.print = function () {
 };
 
 exports.setShellSilent = function (func) {
-    var origShellSilent = shell.config.silent;
+    const origShellSilent = shell.config.silent;
     shell.config.silent = true;
     func();
     shell.config.silent = origShellSilent;
diff --git a/src/check-license.js b/src/check-license.js
index 18b5a7e..66db1cd 100644
--- a/src/check-license.js
+++ b/src/check-license.js
@@ -17,26 +17,26 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var nlf = require('nlf');
-var treeify = require('treeify');
-var optimist = require('optimist');
-var fs = require('fs');
-var path = require('path');
-var Q = require('q');
-var flagutil = require('./flagutil');
-
-var jsonObject = {};
-var validLicenses = [];
-var knownIssues = {};
-var licensesFile = path.join('cordova-coho', 'src', 'validLicenses.json');
-var knownIssuesFile = path.join('cordova-coho', 'src', 'knownIssues.json');
-var reposWithDependencies = [];
-var flagged = [];
+const nlf = require('nlf');
+const treeify = require('treeify');
+const optimist = require('optimist');
+const fs = require('fs');
+const path = require('path');
+const Q = require('q');
+const flagutil = require('./flagutil');
+
+const jsonObject = {};
+let validLicenses = [];
+let knownIssues = {};
+const licensesFile = path.join('cordova-coho', 'src', 'validLicenses.json');
+const knownIssuesFile = path.join('cordova-coho', 'src', 'knownIssues.json');
+const reposWithDependencies = [];
+const flagged = [];
 
 module.exports = function * () {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Go through each specified repo and check the licenses of node modules that are 3rd-party dependencies.\n\n' +
                'Usage: $0 check-license --repo=name [-r repos]')
         .argv;
@@ -45,7 +45,7 @@ module.exports = function * () {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
     checkLicense(repos);
 };
 
@@ -60,11 +60,11 @@ function getRepoLicense (repoName) {
 
 function checkLicense (repos) {
     // get the license info for each repo's dependencies and sub-dependencies
-    var results = [];
-    var previous = Q.resolve();
+    const results = [];
+    let previous = Q.resolve();
     repos.forEach(function (repo) {
         previous = previous.then(function () {
-            var packageDir = findPackageDir(repo);
+            const packageDir = findPackageDir(repo);
             if (packageDir) {
                 reposWithDependencies.push(repo.id);
                 return getRepoLicense(packageDir);
@@ -85,7 +85,7 @@ function checkLicense (repos) {
 }
 
 function findPackageDir (repo) {
-    var packageDir = repo.repoName;
+    let packageDir = repo.repoName;
     if (repo.path) {
         packageDir = path.join(packageDir, repo.path);
     }
@@ -111,12 +111,12 @@ function processResults (results, repos) {
     knownIssues = JSON.parse(knownIssues);
 
     // go through each repo, get its dependencies and add to json object
-    for (var i = 0; i < results.length; ++i) {
-        var repo = repos[i];
+    for (let i = 0; i < results.length; ++i) {
+        const repo = repos[i];
         if (reposWithDependencies.indexOf(repo.id) > -1) {
-            var repoJsonObj = {};
+            const repoJsonObj = {};
             repoJsonObj.dependencies = getDependencies(results[i]);
-            var repoIdentifier = repo.repoName;
+            let repoIdentifier = repo.repoName;
             if (repo.path) {
                 repoIdentifier += '/' + repo.path;
             }
@@ -131,7 +131,7 @@ function processResults (results, repos) {
     console.log('***********************************************************************************************************************');
     console.log('***********************************************************************************************************************\n');
     if (flagged.length) {
-        for (var j = 0; j < flagged.length; ++j) {
+        for (let j = 0; j < flagged.length; ++j) {
             if (knownIssues[flagged[j].name]) {
                 flagged[j]['known-issues'] = knownIssues[flagged[j].name];
             }
@@ -146,10 +146,10 @@ function processResults (results, repos) {
 
 // get dependencies for a repo
 function getDependencies (packages) {
-    var dependencies = [];
-    for (var j = 0; j < packages.length; ++j) {
+    const dependencies = [];
+    for (let j = 0; j < packages.length; ++j) {
         // pull out only relevant info and add to dependencies array
-        var obj = {};
+        const obj = {};
         obj.name = packages[j].name;
         obj.id = packages[j].id;
         obj.directory = [packages[j].directory];
@@ -158,18 +158,22 @@ function getDependencies (packages) {
 
         // flag any packages whose licenses may not be compatible
         if (!hasValidLicense(obj)) {
-            var duplicate = false;
+            let hadDuplicate = false;
+
             // avoid duplicating already flagged packages
-            for (var z = 0; z < flagged.length; ++z) {
+            for (let z = 0; z < flagged.length; ++z) {
                 if (flagged[z].id === obj.id) {
-                    duplicate = true;
+                    hadDuplicate = true;
+
+                    // if it is already flagged then just add the directory to the directories array
+                    flagged[z].directory = flagged[z].directory.concat(obj.directory);
                     break;
                 }
             }
 
-            if (duplicate) {
-                flagged[z].directory = flagged[z].directory.concat(obj.directory); // if it is already flagged then just add the directory to the directories array
-            } else { flagged.push(JSON.parse(JSON.stringify(obj))); }
+            if (!hadDuplicate) {
+                flagged.push(JSON.parse(JSON.stringify(obj)));
+            }
         }
     }
 
@@ -178,16 +182,16 @@ function getDependencies (packages) {
 
 // check if package has valid licenses
 function hasValidLicense (pkg) {
-    var isValid = false;
+    let isValid = false;
 
     if (pkg.licenses.length === 0) { return isValid; } else {
         // go through each license of the package
-        for (var x = 0; x < pkg.licenses.length; ++x) {
+        for (let x = 0; x < pkg.licenses.length; ++x) {
             isValid = false;
 
             // go through valid licenses and try to match with package license
-            for (var y = 0; y < validLicenses.length; ++y) {
-                var pattern = new RegExp(validLicenses[y], 'gi'); // construct regular expression from valid license
+            for (let y = 0; y < validLicenses.length; ++y) {
+                const pattern = new RegExp(validLicenses[y], 'gi'); // construct regular expression from valid license
                 if ((pkg.licenses[x].license).match(pattern)) { // match it against the package license
                     isValid = true;
                 }
diff --git a/src/create-pr.js b/src/create-pr.js
index 17a14b6..f6da118 100644
--- a/src/create-pr.js
+++ b/src/create-pr.js
@@ -17,18 +17,18 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var flagutil = require('./flagutil');
-var optimist = require('optimist');
-var executil = require('./executil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var REMOTE = 'https://github.com/apache/';
-var apputil = require('./apputil');
-var url = require('url');
-var opener = require('opener');
+const flagutil = require('./flagutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const REMOTE = 'https://github.com/apache/';
+const apputil = require('./apputil');
+const url = require('url');
+const opener = require('opener');
 
 module.exports = function * (argv) {
-    var opt = flagutil.registerHelpFlag(optimist);
+    const opt = flagutil.registerHelpFlag(optimist);
     opt.options('branch', {
         desc: 'Topic branch for which to create pull request (Default: current branch) ',
         demand: false
@@ -42,27 +42,27 @@ module.exports = function * (argv) {
         optimist.showHelp();
         process.exit(1);
     }
-    var currentRepo = repoutil.getRepoById(repoutil.resolveCwdRepo());
-    var currentBranch = opt.branch;
+    const currentRepo = repoutil.getRepoById(repoutil.resolveCwdRepo());
+    let currentBranch = opt.branch;
     if (!currentBranch) {
         currentBranch = yield gitutil.retrieveCurrentBranchName();
     }
     if (currentBranch === 'master') {
         console.log('You can crate a PR only for a topic branch that is not master. Use --branch to specify the topic branch or checkout to the topic branch.');
     }
-    var remoteInfo = yield getRemoteName(currentBranch);
-    var remoteFork = yield getRemoteForkName(remoteInfo.remoteName);
-    var url = REMOTE + currentRepo.repoName + '/compare/master...' + remoteFork + ':' + remoteInfo.remoteBranch + '?expand=1';
+    const remoteInfo = yield getRemoteName(currentBranch);
+    const remoteFork = yield getRemoteForkName(remoteInfo.remoteName);
+    const url = REMOTE + currentRepo.repoName + '/compare/master...' + remoteFork + ':' + remoteInfo.remoteBranch + '?expand=1';
     console.log('Navigating to: ' + url);
     opener(url);
 };
 
 function * getRemoteForkName (remoteName) {
-    var remotes = (yield executil.execHelper(executil.ARGS('git remote -v'), /* silent */ true)).split('\n');
-    var remoteUrl;
-    for (var i = 0; i < remotes.length; i++) {
+    const remotes = (yield executil.execHelper(executil.ARGS('git remote -v'), /* silent */ true)).split('\n');
+    let remoteUrl;
+    for (let i = 0; i < remotes.length; i++) {
         // fork    https://github.com/forkName/cordova-coho.git (push)
-        var tokens = remotes[i].split(/\s+/);
+        const tokens = remotes[i].split(/\s+/);
         if (tokens[2] === '(push)' && tokens[0] === remoteName) {
             remoteUrl = tokens[1];
             break;
@@ -77,24 +77,24 @@ function * getRemoteForkName (remoteName) {
     var parsed = url.parse(remoteUrl);
 
     // parsed => /forkName/cordova-coho.git
-    var forkName = (parsed.pathname.split('/'))[1];
+    const forkName = (parsed.pathname.split('/'))[1];
     return forkName;
 }
 
 function * getRemoteName (currentBranch) {
-    var branches = (yield executil.execHelper(executil.ARGS('git branch -vv'), /* silent */ true)).split('\n');
+    const branches = (yield executil.execHelper(executil.ARGS('git branch -vv'), /* silent */ true)).split('\n');
     //* create-pr           3bed9b5 [remotes/fork/create-pr] Add support for launching URL to create a PR
-    for (var i = 0; i < branches.length; i++) {
+    for (let i = 0; i < branches.length; i++) {
         //* create-pr           3bed9b5 [remotes/fork/create-pr] Add support for launching URL to create a PR
         // 0   1                    2       3
-        var tokens = branches[i].split(/\s+/);
+        let tokens = branches[i].split(/\s+/);
         if (tokens[0] === '*') {
             // found the current branch
             if (currentBranch !== tokens[1]) {
                 apputil.fatal('Unexpected format. Cannot find remote branch: ' + tokens[1] + '!== ' + currentBranch);
             }
             // if there is no upstream remote specified - we have no choice but to bail
-            var remote = tokens[3];
+            let remote = tokens[3];
             if (remote.indexOf('[') !== 0) {
                 apputil.fatal('Cannot determine upstream remote branch. Have you already pushed it? \n' +
                     'To push and set upstream: git push -u <remoteFork> ' + currentBranch + '\n' +
@@ -103,8 +103,8 @@ function * getRemoteName (currentBranch) {
             // Strip off the []
             remote = remote.substring(1, remote.length - 1);
             tokens = remote.split('/');
-            var remoteName = tokens[0];
-            var remoteBranch = tokens[1];
+            let remoteName = tokens[0];
+            let remoteBranch = tokens[1];
             if (remoteName === 'remotes') {
                 remoteName = tokens[1];
                 remoteBranch = tokens[2];
diff --git a/src/create-verify-archive.js b/src/create-verify-archive.js
index 5456cf9..282e487 100644
--- a/src/create-verify-archive.js
+++ b/src/create-verify-archive.js
@@ -17,25 +17,25 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var glob = require('glob');
-var optimist = require('optimist');
-var shelljs = require('shelljs');
-var chalk = require('chalk');
-var fs = require('fs');
-var path = require('path');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var print = apputil.print;
-var settingUpGpg = path.resolve(path.dirname(__dirname), 'docs', 'setting-up-gpg.md');
-var isWin = process.platform === 'win32';
+const glob = require('glob');
+const optimist = require('optimist');
+const shelljs = require('shelljs');
+const chalk = require('chalk');
+const fs = require('fs');
+const path = require('path');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const print = apputil.print;
+const settingUpGpg = path.resolve(path.dirname(__dirname), 'docs', 'setting-up-gpg.md');
+const isWin = process.platform === 'win32';
 
 exports.GPG_DOCS = settingUpGpg;
 
 exports.createCommand = function * (argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = opt
         .options('tag', {
             desc: 'The pre-existing tag or hash to archive (defaults to newest tag on branch)'
@@ -68,29 +68,29 @@ exports.createCommand = function * (argv) {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
 
     if (argv.sign && !shelljs.which('gpg')) {
         apputil.fatal('gpg command not found on your PATH. Refer to ' + settingUpGpg);
     }
 
-    var outDir = apputil.resolveUserSpecifiedPath(argv.dest);
+    const outDir = apputil.resolveUserSpecifiedPath(argv.dest);
     shelljs.mkdir('-p', outDir);
-    var absOutDir = path.resolve(outDir);
+    const absOutDir = path.resolve(outDir);
 
     yield repoutil.forEachRepo(repos, function * (repo) {
         if (isWin) {
             yield checkLineEndings(repo);
         }
 
-        var tag = argv.tag || (yield gitutil.findMostRecentTag(repo.versionPrefix))[0];
+        const tag = argv.tag || (yield gitutil.findMostRecentTag(repo.versionPrefix))[0];
         if (!tag) {
             apputil.fatal('Could not find most recent tag. Try running with --tag');
         }
         if (!argv['allow-pending'] && (yield gitutil.pendingChangesExist())) {
             apputil.fatal('Aborting because pending changes exist in ' + repo.repoName + ' (run "git status")');
         }
-        var origBranch = yield gitutil.retrieveCurrentBranchName(true);
+        const origBranch = yield gitutil.retrieveCurrentBranchName(true);
 
         yield gitutil.gitCheckout(tag);
 
@@ -108,10 +108,10 @@ exports.createCommand = function * (argv) {
 // WARNING: NEEDS to be executed in the current working directory of a cordova repo!!!
 function * createArchive (repo, tag, outDir, sign) {
     print('Creating archive of ' + repo.repoName + '@' + tag);
-    var outPath;
+    let outPath;
     if (repo.id !== 'mobile-spec') {
-        var pkgInfo = require(path.resolve('package'));
-        var tgzname = pkgInfo.name + '-' + tag + '.tgz';
+        const pkgInfo = require(path.resolve('package'));
+        const tgzname = pkgInfo.name + '-' + tag + '.tgz';
         yield executil.execHelper(executil.ARGS('npm pack'), 1, false);
         outPath = path.join(outDir, tgzname);
         if (path.resolve(tgzname) !== outPath) {
@@ -133,15 +133,15 @@ function * createArchive (repo, tag, outDir, sign) {
 exports.createArchive = createArchive;
 
 exports.verifyCommand = function * () {
-    var opt = flagutil.registerHelpFlag(optimist);
-    var argv = opt
+    const opt = flagutil.registerHelpFlag(optimist);
+    const argv = opt
         .usage('Ensures the given .zip files match their neighbouring .asc, .sha512 files.\n' +
                'Refer to ' + settingUpGpg + ' for how to set up gpg\n' +
                '\n' +
                'Usage: $0 verify-archive a.zip b.zip c.zip')
         .argv;
 
-    var zipPaths = argv._.slice(1);
+    const zipPaths = argv._.slice(1);
     if (argv.h || !zipPaths.length) {
         optimist.showHelp();
         process.exit(1);
@@ -150,30 +150,30 @@ exports.verifyCommand = function * () {
         apputil.fatal('gpg command not found on your PATH. Refer to ' + settingUpGpg);
     }
 
-    var resolvedZipPaths = zipPaths.reduce(function (current, zipPath) {
-        var matchingPaths = glob.sync(apputil.resolveUserSpecifiedPath(zipPath));
+    const resolvedZipPaths = zipPaths.reduce(function (current, zipPath) {
+        const matchingPaths = glob.sync(apputil.resolveUserSpecifiedPath(zipPath));
         if (!matchingPaths || !matchingPaths.length) {
             apputil.fatal(chalk.red('No files found that match \'' + zipPath + '\''));
         }
         return current.concat(matchingPaths);
     }, []);
 
-    for (var i = 0; i < resolvedZipPaths.length; ++i) {
-        var zipPath = resolvedZipPaths[i];
+    for (let i = 0; i < resolvedZipPaths.length; ++i) {
+        const zipPath = resolvedZipPaths[i];
         yield verifyArchive(zipPath);
     }
     print(chalk.green('Verified ' + resolvedZipPaths.length + ' signatures and hashes.'));
 };
 
 function * verifyArchive (archive) {
-    var result = yield executil.execHelper(executil.ARGS('gpg --verify', archive + '.asc', archive), false, true);
+    const result = yield executil.execHelper(executil.ARGS('gpg --verify', archive + '.asc', archive), false, true);
     if (result === null) {
         apputil.fatal('Verification failed. You may need to update your keys. Run: curl "https://dist.apache.org/repos/dist/release/cordova/KEYS" | gpg --import');
     }
 
-    var sha = yield computeHash(archive, 'SHA512');
-    var archiveFileName = archive + '.sha512';
-    var oldArchiveFileName = archive + '.sha';
+    const sha = yield computeHash(archive, 'SHA512');
+    let archiveFileName = archive + '.sha512';
+    const oldArchiveFileName = archive + '.sha';
 
     if (fs.existsSync(oldArchiveFileName) && !fs.existsSync(archiveFileName)) {
         print('Old .sha extension found, this might have been generated by an old cordova-coho version. Using .sha extension for the check.');
@@ -190,7 +190,7 @@ exports.verifyArchive = verifyArchive;
 
 function * computeHash (path, algo) {
     print('Computing ' + algo + ' for: ' + path);
-    var result = yield executil.execHelper(executil.ARGS('gpg --print-md', algo, path), true);
+    const result = yield executil.execHelper(executil.ARGS('gpg --print-md', algo, path), true);
     return extractHashFromOutput(result);
 }
 
@@ -199,9 +199,9 @@ function extractHashFromOutput (output) {
 }
 
 function * checkLineEndings (repo) {
-    var autoCRLF;
-    var eol;
-    var msg = '';
+    let autoCRLF;
+    let eol;
+    let msg = '';
 
     try {
         autoCRLF = yield executil.execHelper(executil.ARGS('git config --get core.autocrlf'), true);
diff --git a/src/executil.js b/src/executil.js
index 64a0033..085aa47 100644
--- a/src/executil.js
+++ b/src/executil.js
@@ -17,14 +17,14 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var apputil = require('./apputil');
-var superspawn = require('./superspawn');
+const apputil = require('./apputil');
+const superspawn = require('./superspawn');
 
-var gitCommitCount = 0;
+let gitCommitCount = 0;
 
 function ARGS (s, var_args) {
-    var ret = s.trim().split(/\s+/);
-    for (var i = 1; i < arguments.length; ++i) {
+    const ret = s.trim().split(/\s+/);
+    for (let i = 1; i < arguments.length; ++i) {
         ret.push(arguments[i]);
     }
     return ret;
@@ -52,7 +52,7 @@ function execHelper (cmdAndArgs, silent, allowError, win, fail) {
     if (!silent || silent === 3 || exports.verbose) {
         apputil.print('Executing:', cmdAndArgs.join(' '));
     }
-    var result = superspawn.spawn(cmdAndArgs[0], cmdAndArgs.slice(1), { stdio: (silent && (silent !== 2)) ? 'default' : 'inherit' });
+    const result = superspawn.spawn(cmdAndArgs[0], cmdAndArgs.slice(1), { stdio: (silent && (silent !== 2)) ? 'default' : 'inherit' });
     return result.then(win || null, fail || function (e) {
         if (allowError) {
             throw e;
@@ -67,7 +67,7 @@ exports.execHelper = execHelper;
 function reportGitPushResult (repos, branches) {
     apputil.print('');
     if (gitCommitCount) {
-        var flagsStr = repos.map(function (r) { return '-r ' + r.id; }).join(' ') + ' ' + branches.map(function (b) { return '-b ' + b; }).join(' ');
+        const flagsStr = repos.map(function (r) { return '-r ' + r.id; }).join(' ') + ' ' + branches.map(function (b) { return '-b ' + b; }).join(' ');
         apputil.print('All work complete. ' + gitCommitCount + ' commits were made locally.');
         apputil.print('To review changes:');
         apputil.print('  ' + process.argv[1] + ' repo-status ' + flagsStr + ' --diff | less');
diff --git a/src/flagutil.js b/src/flagutil.js
index 3e4b054..dfe2fe7 100644
--- a/src/flagutil.js
+++ b/src/flagutil.js
@@ -17,8 +17,8 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var apputil = require('./apputil');
-var repoutil = require('./repoutil');
+const apputil = require('./apputil');
+const repoutil = require('./repoutil');
 
 exports.registerHelpFlag = function (opt) {
     return opt.options('h', {
@@ -42,17 +42,17 @@ exports.registerDepthFlag = function (opt) {
 
 exports.computeReposFromFlag = function (flagValue, opts) {
     opts = opts || {};
-    var includeSvn = opts.includeSvn;
-    var includeModules = opts.includeModules;
+    const includeSvn = opts.includeSvn;
+    const includeModules = opts.includeModules;
 
     if (!flagValue) {
         console.log('No repos specified - using repo in CWD');
         flagValue = '.';
     }
-    var values = flagValue === true ? [] : Array.isArray(flagValue) ? flagValue : [flagValue];
-    var ret = [];
-    var addedIds = {};
-    var addedRepos = {};
+    const values = flagValue === true ? [] : Array.isArray(flagValue) ? flagValue : [flagValue];
+    let ret = [];
+    const addedIds = {};
+    const addedRepos = {};
     function addRepo (repo) {
         if (!addedIds[repo.id]) {
             addedIds[repo.id] = true;
@@ -63,7 +63,7 @@ exports.computeReposFromFlag = function (flagValue, opts) {
             if (includeModules) {
                 ret.push(repo);
             } else {
-                var existingRepo = addedRepos[repo.repoName];
+                const existingRepo = addedRepos[repo.repoName];
                 if (!existingRepo || !repo.isModule) {
                     if (existingRepo) {
                         ret[ret.indexOf(existingRepo)] = repo;
@@ -79,8 +79,8 @@ exports.computeReposFromFlag = function (flagValue, opts) {
         if (value === '.') {
             value = repoutil.resolveCwdRepo();
         }
-        var repo = repoutil.getRepoById(value);
-        var group = repoutil.repoGroups[value];
+        const repo = repoutil.getRepoById(value);
+        const group = repoutil.repoGroups[value];
         if (repo) {
             addRepo(repo);
         } else if (group) {
@@ -90,7 +90,7 @@ exports.computeReposFromFlag = function (flagValue, opts) {
         }
     });
     if (!includeSvn) {
-        var hadSvn = false;
+        let hadSvn = false;
         ret = ret.filter(function (r) {
             hadSvn = hadSvn || !!r.svn;
             return !r.svn;
@@ -104,7 +104,7 @@ exports.computeReposFromFlag = function (flagValue, opts) {
 };
 
 exports.validateVersionString = function (version, opt_allowNonSemver) {
-    var pattern = opt_allowNonSemver ? /^\d+\.\d+\.\d+(-?rc\d)?$/ : /^\d+\.\d+\.\d+(-rc\d)?$/;
+    const pattern = opt_allowNonSemver ? /^\d+\.\d+\.\d+(-?rc\d)?$/ : /^\d+\.\d+\.\d+(-rc\d)?$/;
     if (!pattern.test(version)) {
         apputil.fatal('Versions must be in the form #.#.#-[rc#]');
     }
diff --git a/src/for-each.js b/src/for-each.js
index 4653290..48670b4 100644
--- a/src/for-each.js
+++ b/src/for-each.js
@@ -17,16 +17,16 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var repoutil = require('./repoutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * () {
-    var opt = flagutil.registerRepoFlag(optimist);
-    var cmd;
+    let opt = flagutil.registerRepoFlag(optimist);
+    let cmd;
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Performs the supplied shell command in each repo directory.\n' +
                'Use "$r" as pseudo variable for repo name.\n' +
                '\n' +
@@ -37,7 +37,7 @@ module.exports = function * () {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r);
+    const repos = flagutil.computeReposFromFlag(argv.r);
     if (process.platform === 'win32') {
         cmd = ['cmd', '/s', '/c', argv._[1]];
     } else {
@@ -45,8 +45,8 @@ module.exports = function * () {
     }
 
     yield repoutil.forEachRepo(repos, function * (repo) {
-        var replacedCmd = [];
-        for (var i = 0; i < cmd.length; i++) {
+        const replacedCmd = [];
+        for (let i = 0; i < cmd.length; i++) {
             replacedCmd[i] = cmd[i].replace(/\$r/g, repo.repoName);
         }
         yield executil.execHelper(replacedCmd, false, true);
diff --git a/src/gitutil.js b/src/gitutil.js
index cbd8659..3c8ba49 100644
--- a/src/gitutil.js
+++ b/src/gitutil.js
@@ -17,9 +17,9 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var executil = require('./executil');
-var gitutil = exports;
-var semver = require('semver');
+const executil = require('./executil');
+const gitutil = exports;
+const semver = require('semver');
 
 /**
  * Returns the greatest semver-looking tag in the repo. If prefix is specified, only looks at tags that start with
@@ -30,12 +30,12 @@ var semver = require('semver');
  */
 exports.findMostRecentTag = function * (prefix) {
     prefix = prefix && prefix + '-';
-    var finalBest;
-    var lastBest;
+    let finalBest;
+    let lastBest;
 
-    var ret = (yield executil.execHelper(executil.ARGS('git tag --list'), true)).split(/\s+/)
+    const ret = (yield executil.execHelper(executil.ARGS('git tag --list'), true)).split(/\s+/)
         .reduce(function (curBest, value) {
-            var modifiedCurBest, modifiedValue;
+            let modifiedCurBest, modifiedValue;
             if (prefix) {
                 // Ignore values that don't start with prefix, and strip prefix from the value we're going to test
                 if (value.indexOf(prefix) !== 0) {
@@ -88,7 +88,7 @@ exports.tagExists = function * (tagName) {
 };
 
 exports.retrieveCurrentBranchName = function * (allowDetached) {
-    var ref;
+    let ref;
     try {
         ref = yield executil.execHelper(executil.ARGS('git symbolic-ref HEAD'), true, true);
     } catch (e) {
@@ -97,7 +97,7 @@ exports.retrieveCurrentBranchName = function * (allowDetached) {
         }
         throw new Error('Aborted due to repo ' + process.cwd() + ' not being on a named branch. ' + e.message);
     }
-    var match = /refs\/heads\/(.*)/.exec(ref);
+    const match = /refs\/heads\/(.*)/.exec(ref);
     if (!match) {
         throw new Error('Could not parse branch name from: ' + ref);
     }
@@ -105,8 +105,8 @@ exports.retrieveCurrentBranchName = function * (allowDetached) {
 };
 
 exports.remoteBranchExists = function * (repo, branch) {
-    var branch_token = (repo.remoteName || 'origin') + '/' + branch;
-    var stdout = yield executil.execHelper(executil.ARGS('git branch -r --list ' + branch_token), false, false);
+    const branch_token = (repo.remoteName || 'origin') + '/' + branch;
+    const stdout = yield executil.execHelper(executil.ARGS('git branch -r --list ' + branch_token), false, false);
     if (stdout.indexOf(branch_token) > -1) {
         return true;
     } else {
@@ -115,8 +115,8 @@ exports.remoteBranchExists = function * (repo, branch) {
 };
 
 exports.stashAndPop = function * (repo, func) {
-    var requiresStash = yield gitutil.pendingChangesExist();
-    var branchName = yield gitutil.retrieveCurrentBranchName();
+    const requiresStash = yield gitutil.pendingChangesExist();
+    const branchName = yield gitutil.retrieveCurrentBranchName();
 
     if (requiresStash) {
         yield executil.execHelper(executil.ARGS('git stash save --include-untracked --quiet', 'coho stash'));
@@ -135,7 +135,7 @@ exports.pendingChangesExist = function * () {
 };
 
 exports.gitCheckout = function * (branchName) {
-    var curBranch = yield gitutil.retrieveCurrentBranchName(true);
+    const curBranch = yield gitutil.retrieveCurrentBranchName(true);
     if (curBranch !== branchName) {
         return yield executil.execHelper(executil.ARGS('git checkout -q ', branchName));
     }
@@ -169,7 +169,7 @@ exports.gitClean = function () {
 };
 
 exports.summaryOfChanges = function * (base_sha) {
-    var cmd = executil.ARGS('git log --topo-order --no-merges');
+    const cmd = executil.ARGS('git log --topo-order --no-merges');
     cmd.push(['--pretty=format:* %s']);
     cmd.push(base_sha + '..master');
     return yield executil.execHelper(cmd, true, false);
@@ -188,7 +188,7 @@ exports.pushToOrigin = function * (ref) {
 };
 
 exports.diff = function * (first, second) {
-    var args = executil.ARGS('git diff', first + '..' + second);
+    const args = executil.ARGS('git diff', first + '..' + second);
     return yield executil.execHelper(args, true, false);
 };
 
diff --git a/src/last-week.js b/src/last-week.js
index 199bee3..49213c5 100644
--- a/src/last-week.js
+++ b/src/last-week.js
@@ -17,15 +17,15 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var repoutil = require('./repoutil');
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * () {
-    var meEmail = yield executil.execHelper(executil.ARGS('git config user.email'), true);
-    var opt = flagutil.registerRepoFlag(optimist);
+    const meEmail = yield executil.execHelper(executil.ARGS('git config user.email'), true);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerHelpFlag(opt)
         .options('me', {
             desc: 'Show only your commits. Short for --user=' + meEmail + ' --cherry-picks=false',
@@ -54,15 +54,15 @@ module.exports = function * () {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
-    var filterByEmail = !!argv.me || !!argv.user;
-    var days = argv.days || 7;
-    var userEmail = filterByEmail && (argv.user || meEmail);
-    var showCherryPicks = !argv.me && argv['cherry-picks'];
-    var commitCount = 0;
-    var pullRequestCount = 0;
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const filterByEmail = !!argv.me || !!argv.user;
+    const days = argv.days || 7;
+    const userEmail = filterByEmail && (argv.user || meEmail);
+    const showCherryPicks = !argv.me && argv['cherry-picks'];
+    let commitCount = 0;
+    let pullRequestCount = 0;
 
-    var cmd = executil.ARGS('git log --no-merges --date=short --all-match --fixed-strings');
+    let cmd = executil.ARGS('git log --no-merges --date=short --all-match --fixed-strings');
     if (filterByEmail) {
         cmd.push('--author=' + userEmail);
         if (!showCherryPicks) {
@@ -72,13 +72,13 @@ module.exports = function * () {
 
     apputil.print('Running command: ' + cmd.join(' ') + ' --format="$REPO_NAME %s" --since="' + days + ' days ago"');
     yield repoutil.forEachRepo(repos, function * (repo) {
-        var repoName = repo.id + new Array(Math.max(0, 20 - repo.id.length + 1)).join(' ');
-        var format = '--format=' + repoName;
+        const repoName = repo.id + new Array(Math.max(0, 20 - repo.id.length + 1)).join(' ');
+        let format = '--format=' + repoName;
         if (!filterByEmail) {
             format += ' %an - ';
         }
         format += '%cd %s';
-        var output = yield executil.execHelper(cmd.concat([format, '--since=' + days + ' days ago']).concat(repoutil.getRepoIncludePath(repo)), true);
+        const output = yield executil.execHelper(cmd.concat([format, '--since=' + days + ' days ago']).concat(repoutil.getRepoIncludePath(repo)), true);
         if (output) {
             console.log(output);
             commitCount += output.split('\n').length;
@@ -89,8 +89,8 @@ module.exports = function * () {
         console.log('\nPull requests:');
         cmd = executil.ARGS('git log --no-merges --date=short --fixed-strings', '--committer=' + userEmail);
         yield repoutil.forEachRepo(repos, function * (repo) {
-            var repoName = repo.id + new Array(Math.max(0, 20 - repo.id.length + 1)).join(' ');
-            var output = yield executil.execHelper(cmd.concat(['--format=%ae|' + repoName + ' %cd %s',
+            const repoName = repo.id + new Array(Math.max(0, 20 - repo.id.length + 1)).join(' ');
+            const output = yield executil.execHelper(cmd.concat(['--format=%ae|' + repoName + ' %cd %s',
                 '--since=' + days + ' days ago']).concat(repoutil.getRepoIncludePath(repo)), true);
             if (output) {
                 output.split('\n').forEach(function (line) {
diff --git a/src/list-pulls.js b/src/list-pulls.js
index c31ddd3..5ee6997 100644
--- a/src/list-pulls.js
+++ b/src/list-pulls.js
@@ -17,25 +17,25 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var request = require('request');
-var apputil = require('./apputil');
-var flagutil = require('./flagutil');
+const optimist = require('optimist');
+const request = require('request');
+const apputil = require('./apputil');
+const flagutil = require('./flagutil');
 
 // Set env variable CORDOVA_GIT_ACCOUNT to <username>:<password> or <api-token> to avoid hitting GitHub rate limits.
-var GITHUB_ACCOUNT = process.env.CORDOVA_GIT_ACCOUNT ? process.env.CORDOVA_GIT_ACCOUNT + '@' : '';
-var GITHUB_API_URL = 'https://' + GITHUB_ACCOUNT + 'api.github.com/';
-var GITHUB_ORGANIZATION = 'apache';
-var commentFailed = false;
+const GITHUB_ACCOUNT = process.env.CORDOVA_GIT_ACCOUNT ? process.env.CORDOVA_GIT_ACCOUNT + '@' : '';
+const GITHUB_API_URL = 'https://' + GITHUB_ACCOUNT + 'api.github.com/';
+const GITHUB_ORGANIZATION = 'apache';
+let commentFailed = false;
 
 function addLastCommentInfo (repo, pullRequests, callback) {
-    var remaining = pullRequests.length;
+    let remaining = pullRequests.length;
     if (remaining === 0) {
         callback();
     }
     pullRequests.forEach(function (pullRequest) {
-        var commentsUrl = pullRequest._links.comments && pullRequest._links.comments.href;
-        var reviewCommentsUrl = pullRequest._links.review_comments && pullRequest._links.review_comments.href;
+        const commentsUrl = pullRequest._links.comments && pullRequest._links.comments.href;
+        const reviewCommentsUrl = pullRequest._links.review_comments && pullRequest._links.review_comments.href;
 
         if (commentsUrl && reviewCommentsUrl) {
             // If comments and review_comments URLs are present, use them (more accurate than scraping)
@@ -64,7 +64,7 @@ function addLastCommentInfo (repo, pullRequests, callback) {
                         console.warn('Pull request scrape request failed: ' + err);
                     }
                 } else {
-                    var m = /[\s\S]*timeline-comment-header[\s\S]*?"author".*?>(.*?)</.exec(payload);
+                    const m = /[\s\S]*timeline-comment-header[\s\S]*?"author".*?>(.*?)</.exec(payload);
                     (pullRequest.lastUpdatedBy = m && m[1]) || (''); // eslint-disable-line no-unused-expressions
                 }
                 if (--remaining === 0) {
@@ -96,7 +96,7 @@ function getPullRequestComments (url, existingComments, callback) {
             }
             callback(existingComments);
         }
-        var comments = JSON.parse(payload);
+        const comments = JSON.parse(payload);
         if (!comments.forEach) {
             // We don't have an array, so something failed
             if (!commentFailed) {
@@ -110,7 +110,7 @@ function getPullRequestComments (url, existingComments, callback) {
 }
 
 function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callback) {
-    var url = GITHUB_API_URL + 'repos/' + GITHUB_ORGANIZATION + '/' + repo + '/pulls';
+    const url = GITHUB_API_URL + 'repos/' + GITHUB_ORGANIZATION + '/' + repo + '/pulls';
 
     request.get({ url: url, headers: { 'User-Agent': 'Cordova Coho' } }, function (err, res, pullRequests) {
         if (err) {
@@ -118,14 +118,14 @@ function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callb
         } else if (!pullRequests) {
             apputil.fatal('Error: GitHub returned no pull requests');
         } else if (res.headers['x-ratelimit-remaining'] && res.headers['x-ratelimit-remaining'] === 0) {
-            var resetEpoch = new Date(res.headers['x-ratelimit-reset'] * 1000);
-            var expiration = resetEpoch.getHours() + ':' + resetEpoch.getMinutes() + ':' + resetEpoch.getSeconds();
+            const resetEpoch = new Date(res.headers['x-ratelimit-reset'] * 1000);
+            const expiration = resetEpoch.getHours() + ':' + resetEpoch.getMinutes() + ':' + resetEpoch.getSeconds();
             apputil.fatal('Error: GitHub rate limit exceeded, wait till ' + expiration + ' before trying again.\n' +
                 'See http://developer.github.com/v3/#rate-limiting for details.');
         }
 
         pullRequests = JSON.parse(pullRequests);
-        var origCount = pullRequests.length;
+        const origCount = pullRequests.length;
 
         if (pullRequests.message === 'Bad credentials') {
             apputil.fatal('Error: GitHub Bad credentials. Check your CORDOVA_GIT_ACCOUNT environment variable which should be set with your Github API token: https://github.com/settings/tokens.',
@@ -133,11 +133,11 @@ function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callb
         }
 
         pullRequests = pullRequests.filter(function (p) {
-            var updatedDate = new Date(p.updated_at);
-            var daysAgo = Math.round((new Date() - updatedDate) / (60 * 60 * 24 * 1000));
+            const updatedDate = new Date(p.updated_at);
+            const daysAgo = Math.round((new Date() - updatedDate) / (60 * 60 * 24 * 1000));
             return daysAgo < maxAge;
         });
-        var countAfterDateFilter = pullRequests.length;
+        const countAfterDateFilter = pullRequests.length;
 
         if (hideUser) {
             addLastCommentInfo(repo, pullRequests, next);
@@ -146,7 +146,7 @@ function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callb
         }
 
         function next () {
-            var cbObj = {
+            const cbObj = {
                 repo: repo,
                 'fresh-count': 0,
                 'old-count': 0,
@@ -160,14 +160,14 @@ function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callb
                     return p.lastUpdatedBy !== hideUser;
                 });
             }
-            var count = pullRequests.length;
+            const count = pullRequests.length;
             cbObj['fresh-count'] = count;
 
             if (!statsOnly) {
                 pullRequests.sort(function (a, b) { return (a.updated_at > b.updated_at) ? -1 : ((b.updated_at > a.updated_at) ? 1 : 0); });
             }
 
-            var countMsg = count + ' Pull Requests';
+            let countMsg = count + ' Pull Requests';
             if (countAfterDateFilter !== origCount || count !== countAfterDateFilter) {
                 countMsg += ' (plus ';
             }
@@ -192,8 +192,8 @@ function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callb
 
             if (!statsOnly) {
                 pullRequests.forEach(function (pullRequest) {
-                    var updatedDate = new Date(pullRequest.updated_at);
-                    var daysAgo = Math.round((new Date() - updatedDate) / (60 * 60 * 24 * 1000));
+                    const updatedDate = new Date(pullRequest.updated_at);
+                    const daysAgo = Math.round((new Date() - updatedDate) / (60 * 60 * 24 * 1000));
                     console.log('\x1B[33m-----------------------------------------------------------------------------------------------\x1B[39m');
                     console.log('PR #' + pullRequest.number + ': ' + pullRequest.user.login + ': ' +
                         pullRequest.title + ' (\x1B[31m' + (pullRequest.lastUpdatedBy || '<no comments>') + ' ' + daysAgo + ' days ago\x1B[39m)');
@@ -222,7 +222,7 @@ function listGitHubPullRequests (repo, maxAge, hideUser, short, statsOnly, callb
 }
 
 function * listPullRequestsCommand () {
-    var opt = flagutil.registerHelpFlag(optimist);
+    let opt = flagutil.registerHelpFlag(optimist);
     opt = flagutil.registerRepoFlag(opt)
         .options('max-age', {
             desc: 'Don\'t show pulls older than this (in days)',
@@ -258,22 +258,22 @@ function * listPullRequestsCommand () {
                'Please note that GitHub rate limiting applies. See http://developer.github.com/v3/#rate-limiting for details.\n' +
                'You can also set the CORDOVA_GIT_ACCOUNT environment variable with your Github API key: https://github.com/settings/tokens\n'
     );
-    var argv = opt.argv;
+    const argv = opt.argv;
 
     if (argv.h) {
         optimist.showHelp();
         process.exit(1);
     }
 
-    var repos = flagutil.computeReposFromFlag(argv.r);
-    var report = {
+    const repos = flagutil.computeReposFromFlag(argv.r);
+    const report = {
         title: 'coho list-pulls report',
         // "command" : process.argv,
         timestamp: new Date().toJSON(),
         'max-age': argv['max-age'],
         repos: []
     };
-    var simple_report = [];
+    const simple_report = [];
 
     function next (reportObject) {
         if (reportObject && argv['stats-only']) {
@@ -285,7 +285,7 @@ function * listPullRequestsCommand () {
         }
 
         if (repos.length) {
-            var repo = repos.shift();
+            const repo = repos.shift();
             listGitHubPullRequests(repo.repoName, argv['max-age'], argv['hide-user'], argv.short, argv['stats-only'], next);
         } else if (argv['stats-only']) { // done
             function compareFunc (a, b) { // eslint-disable-line no-inner-declarations
@@ -310,7 +310,7 @@ function * listPullRequestsCommand () {
         }
     }
 
-    var url = 'https://github.com/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr';
+    let url = 'https://github.com/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr';
     repos.forEach(function (repo) {
         url += '+repo%3Aapache%2F' + repo.repoName;
     });
diff --git a/src/list-release-urls.js b/src/list-release-urls.js
index 6534982..d8e9759 100644
--- a/src/list-release-urls.js
+++ b/src/list-release-urls.js
@@ -17,21 +17,21 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * () {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = opt
         .options('version', {
             desc: 'The version of the release. E.g. 2.7.1-rc2',
             demand: true
         });
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('List the apache git repo urls for release artifacts.\n' +
                '\n' +
                'Usage: $0 list-release-urls [-r repos] --version=2.7.1-rc2')
@@ -41,16 +41,16 @@ module.exports = function * () {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r);
-    var version = argv.version;
+    const repos = flagutil.computeReposFromFlag(argv.r);
+    const version = argv.version;
 
-    var baseUrl = 'http://git-wip-us.apache.org/repos/asf?p=%s.git;a=shortlog;h=refs/tags/%s';
+    const baseUrl = 'http://git-wip-us.apache.org/repos/asf?p=%s.git;a=shortlog;h=refs/tags/%s';
     yield repoutil.forEachRepo(repos, function * (repo) {
         if (!(yield gitutil.tagExists(version))) {
             console.error('Tag "' + version + '" does not exist in repo ' + repo.repoName);
             return;
         }
-        var url = require('util').format(baseUrl, repo.repoName, version);
+        const url = require('util').format(baseUrl, repo.repoName, version);
         console.log(url);
         yield executil.execHelper(executil.ARGS('git show-ref ' + version), 2, true);
     });
diff --git a/src/list-repos.js b/src/list-repos.js
index 14a7ea9..f29314e 100644
--- a/src/list-repos.js
+++ b/src/list-repos.js
@@ -17,7 +17,7 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var repoutil = require('./repoutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * (argv) {
     console.log('Valid values for the --repo flag:');
@@ -28,7 +28,7 @@ module.exports = function * (argv) {
     });
     console.log('');
     console.log('Repository Groups:');
-    var groupNames = Object.keys(repoutil.repoGroups);
+    const groupNames = Object.keys(repoutil.repoGroups);
     groupNames.sort();
     groupNames.forEach(function (groupName) {
         console.log('    ' + groupName + ' (' + repoutil.repoGroups[groupName].map(function (repo) { return repo.id; }).join(', ') + ')');
diff --git a/src/merge-pr.js b/src/merge-pr.js
index b0d6bc7..dc42258 100644
--- a/src/merge-pr.js
+++ b/src/merge-pr.js
@@ -15,15 +15,15 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var flagutil = require('./flagutil');
-var optimist = require('optimist');
-var executil = require('./executil');
-var gitutil = require('./gitutil');
-var chalk = require('chalk');
-var repoutil = require('./repoutil');
+const flagutil = require('./flagutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const gitutil = require('./gitutil');
+const chalk = require('chalk');
+const repoutil = require('./repoutil');
 
 module.exports = function * (argv) {
-    var opt = flagutil.registerHelpFlag(optimist);
+    const opt = flagutil.registerHelpFlag(optimist);
     opt.options('pr', {
         desc: 'PR # that needs to be merged',
         demand: true
@@ -47,17 +47,17 @@ module.exports = function * (argv) {
         process.exit(1);
     }
 
-    var pull_only = argv['pull-only'];
-    var localBranch = 'pr/' + argv.pr;
-    var currentRepo = repoutil.getRepoById(repoutil.resolveCwdRepo());
-    var origin = 'https://github.com/apache/' + currentRepo.repoName;
+    const pull_only = argv['pull-only'];
+    const localBranch = 'pr/' + argv.pr;
+    const currentRepo = repoutil.getRepoById(repoutil.resolveCwdRepo());
+    const origin = 'https://github.com/apache/' + currentRepo.repoName;
 
     function * mergePr () {
-        var commitMessage;
+        let commitMessage;
         yield executil.execHelper(executil.ARGS('git checkout master'));
 
         yield executil.execHelper(['git', 'pull', origin, 'master']);
-        var commit = yield executil.execHelper(executil.ARGS('git rev-parse HEAD'), /* silent */ true);
+        const commit = yield executil.execHelper(executil.ARGS('git rev-parse HEAD'), /* silent */ true);
         yield executil.execHelper(['git', 'fetch', /* force update */ '-fu', origin,
             'refs/pull/' + argv.pr + '/head:' + localBranch]);
 
@@ -83,7 +83,7 @@ module.exports = function * (argv) {
                 }
             }
             console.log();
-            var commits = yield executil.execHelper(['git', 'log',
+            const commits = yield executil.execHelper(['git', 'log',
                 '--graph',
                 '--pretty=format:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset',
                 '--abbrev-commit',
diff --git a/src/nightly.js b/src/nightly.js
index b43cc81..46f1796 100644
--- a/src/nightly.js
+++ b/src/nightly.js
@@ -17,24 +17,24 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var apputil = require('./apputil');
-var optimist = require('optimist');
-var flagutil = require('./flagutil');
-var repoutil = require('./repoutil');
-var repoupdate = require('./repo-update');
-var retrieveSha = require('./retrieve-sha');
-var npmpublish = require('./npm-publish');
-var versionutil = require('./versionutil');
-var gitutil = require('./gitutil');
-var fs = require('fs');
-var path = require('path');
-var repoclone = require('./repo-clone');
+const apputil = require('./apputil');
+const optimist = require('optimist');
+const flagutil = require('./flagutil');
+const repoutil = require('./repoutil');
+const repoupdate = require('./repo-update');
+const retrieveSha = require('./retrieve-sha');
+const npmpublish = require('./npm-publish');
+const versionutil = require('./versionutil');
+const gitutil = require('./gitutil');
+const fs = require('fs');
+const path = require('path');
+const repoclone = require('./repo-clone');
 
 module.exports = function * (argv) {
     /** Specifies the default repos to build nightlies for */
-    var DEFAULT_NIGHTLY_REPOS = ['cli', 'lib', 'fetch', 'common', 'create', 'coho'];
+    const DEFAULT_NIGHTLY_REPOS = ['cli', 'lib', 'fetch', 'common', 'create', 'coho'];
 
-    var opt = flagutil.registerHelpFlag(optimist);
+    let opt = flagutil.registerHelpFlag(optimist);
     opt = flagutil.registerRepoFlag(opt);
 
     argv = opt
@@ -57,10 +57,10 @@ module.exports = function * (argv) {
     // Clone and update Repos
     yield prepareRepos(argv.r);
 
-    var reposToBuild = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const reposToBuild = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
     // Get updated nightly versions for all repos
     /** @type {Object} A map of repo.id and a short SHA for every repo to build */
-    var VERSIONS = yield retrieveVersions(reposToBuild);
+    const VERSIONS = yield retrieveVersions(reposToBuild);
 
     // Update version in package.json and other respective files for every repo
     // and update dependencies to use nightly versions of packages to be released
@@ -76,7 +76,7 @@ module.exports = function * (argv) {
         versionutil.updatePlatformsConfig(VERSIONS);
     }
 
-    var options = {};
+    const options = {};
     options.tag = 'nightly';
     options.pretend = argv.pretend;
     options.r = reposToBuild.map(function (repo) { return repo.id; });
@@ -88,13 +88,13 @@ module.exports = function * (argv) {
 function * prepareRepos (repoNames) {
     // Clone and update required repos
     apputil.print('Cloning and updating required repositories...');
-    var reposToClone = flagutil.computeReposFromFlag(['tools'].concat(repoNames));
+    const reposToClone = flagutil.computeReposFromFlag(['tools'].concat(repoNames));
     yield repoclone.cloneRepos(reposToClone, /* silent= */true);
     yield repoupdate.updateRepos(reposToClone, /* silent= */true);
 
     // Remove local changes and sync up with remote master
     apputil.print('Resetting repositories to "master" branches...');
-    var reposToUpdate = flagutil.computeReposFromFlag(repoNames);
+    const reposToUpdate = flagutil.computeReposFromFlag(repoNames);
     yield repoutil.forEachRepo(reposToUpdate, function * () {
         yield gitutil.gitClean();
         yield gitutil.resetFromOrigin();
@@ -107,13 +107,14 @@ function * prepareRepos (repoNames) {
  * @param {Object<String, String>} dependencies Map of package's id's and nightly versions
  */
 function updateRepoDependencies (repo, dependencies) {
-    var packageJSONPath = path.join(process.cwd(), 'package.json');
-    var packageJSON = JSON.parse(fs.readFileSync(packageJSONPath));
+    const packageJSONPath = path.join(process.cwd(), 'package.json');
+    const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath));
 
     // Let's iterate through repos we're going to release
+    // eslint-disable-next-line array-callback-return
     Object.keys(dependencies).map(function (dependencyId) {
-        var repo = repoutil.getRepoById(dependencyId);
-        var packageId = repo.packageName || repo.repoName;
+        const repo = repoutil.getRepoById(dependencyId);
+        const packageId = repo.packageName || repo.repoName;
 
         if (packageJSON.dependencies[packageId]) {
             // If current repo has dependency that points to one of packages, we're going
@@ -133,8 +134,8 @@ function updateRepoDependencies (repo, dependencies) {
  * @returns {String} A newly generated nightly suffix
  */
 function getNightlySuffix (SHA) {
-    var currentDate = new Date();
-    var nightlySuffix = '-nightly.' + currentDate.getUTCFullYear() + '.' +
+    const currentDate = new Date();
+    const nightlySuffix = '-nightly.' + currentDate.getUTCFullYear() + '.' +
         (currentDate.getUTCMonth() + 1) + '.' + currentDate.getUTCDate() +
         '.' + SHA;
 
@@ -148,11 +149,11 @@ function getNightlySuffix (SHA) {
  * @returns {Object} Mapped object
  */
 function * retrieveVersions (repos) {
-    var SHAJSON = yield retrieveSha(repos);
+    const SHAJSON = yield retrieveSha(repos);
 
     return Object.keys(SHAJSON).reduce(function (result, repoId) {
-        var repoPath = repoutil.getRepoDir(repoutil.getRepoById(repoId));
-        var oldVersion = require(path.join(repoPath, 'package.json')).version;
+        const repoPath = repoutil.getRepoDir(repoutil.getRepoById(repoId));
+        const oldVersion = require(path.join(repoPath, 'package.json')).version;
         result[repoId] = versionutil.removeDev(oldVersion) + getNightlySuffix(SHAJSON[repoId]);
         return result;
     }, {});
diff --git a/src/npm-link.js b/src/npm-link.js
index be8a93d..5821e8d 100644
--- a/src/npm-link.js
+++ b/src/npm-link.js
@@ -17,16 +17,16 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var fs = require('fs');
-var path = require('path');
-var optimist = require('optimist');
-var shelljs = require('shelljs');
-var flagutil = require('./flagutil');
+const fs = require('fs');
+const path = require('path');
+const optimist = require('optimist');
+const shelljs = require('shelljs');
+const flagutil = require('./flagutil');
 
-var packman = 'npm';
+let packman = 'npm';
 
 function * createLink (argv) {
-    var opt = flagutil.registerHelpFlag(optimist);
+    const opt = flagutil.registerHelpFlag(optimist);
     argv = opt
         .usage('Does an npm-link of the modules that we publish. Ensures we are testing live versions of our own dependencies instead of the last published version.\n' +
                '\n' +
@@ -121,12 +121,12 @@ function cdOutOf () {
 
 function verifyLink (linkedModule, installedModule) {
     cdInto(installedModule);
-    var linkedPath = path.join(shelljs.pwd(), 'node_modules', linkedModule);
+    const linkedPath = path.join(shelljs.pwd(), 'node_modules', linkedModule);
     if (!fs.existsSync(linkedPath)) {
         return false;
     }
 
-    var myStat = fs.lstatSync(linkedPath);
+    const myStat = fs.lstatSync(linkedPath);
     if (!myStat.isSymbolicLink()) {
         return false;
     }
diff --git a/src/npm-publish.js b/src/npm-publish.js
index cce9723..63a0c1b 100644
--- a/src/npm-publish.js
+++ b/src/npm-publish.js
@@ -17,13 +17,13 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var flagutil = require('./flagutil');
-var repoutil = require('./repoutil');
-var executil = require('./executil');
+const optimist = require('optimist');
+const flagutil = require('./flagutil');
+const repoutil = require('./repoutil');
+const executil = require('./executil');
 
 function * publishTag (options) {
-    var opt = flagutil.registerHelpFlag(optimist);
+    let opt = flagutil.registerHelpFlag(optimist);
 
     // argv was passed through another function, set defaults to appease demand.
     if (options) {
@@ -62,7 +62,7 @@ function * publishTag (options) {
         process.exit(1);
     }
 
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
 
     // npm publish --tag argv.tag
     yield repoutil.forEachRepo(repos, function * (repo) {
@@ -74,7 +74,7 @@ module.exports.publishTag = publishTag;
 
 // Gets last nightly tag and unpublishes it
 function * unpublishNightly (options) {
-    var opt = flagutil.registerHelpFlag(optimist);
+    let opt = flagutil.registerHelpFlag(optimist);
 
     if (options) {
         opt = opt
@@ -86,7 +86,7 @@ function * unpublishNightly (options) {
             });
     }
 
-    var argv = opt
+    const argv = opt
         .usage('Unpublishes the nightly version for the cli & lib from npm \n' +
                 'Usage: $0 npm-unpublish-nightly')
         .options('pretend', {
@@ -104,11 +104,11 @@ function * unpublishNightly (options) {
         process.exit(1);
     }
 
-    var repos = flagutil.computeReposFromFlag(argv.r);
+    const repos = flagutil.computeReposFromFlag(argv.r);
 
     yield repoutil.forEachRepo(repos, function * (repo) {
-        var packageId = repo.packageName || repo.repoName;
-        var oldNightlyVersion = yield executil.execHelper(executil.ARGS('npm view ' + packageId + ' dist-tags.nightly'));
+        const packageId = repo.packageName || repo.repoName;
+        const oldNightlyVersion = yield executil.execHelper(executil.ARGS('npm view ' + packageId + ' dist-tags.nightly'));
 
         if (oldNightlyVersion && oldNightlyVersion !== 'undefined') {
             yield executil.execOrPretend(executil.ARGS('npm unpublish ' + packageId + '@' + oldNightlyVersion), argv.pretend);
diff --git a/src/platform-release.js b/src/platform-release.js
index cf9ce70..9bd59af 100644
--- a/src/platform-release.js
+++ b/src/platform-release.js
@@ -17,27 +17,27 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var path = require('path');
-var fs = require('fs');
-var util = require('util');
-var optimist = require('optimist');
-var shelljs = require('shelljs');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var repoupdate = require('./repo-update');
-var versionutil = require('./versionutil');
-var print = apputil.print;
+const path = require('path');
+const fs = require('fs');
+const util = require('util');
+const optimist = require('optimist');
+const shelljs = require('shelljs');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const repoupdate = require('./repo-update');
+const versionutil = require('./versionutil');
+const print = apputil.print;
 
 function createPlatformDevVersion (version) {
     // e.g. "3.1.0" -> "3.2.0-dev".
     // e.g. "3.1.2-0.8.0-rc2" -> "3.2.0-0.8.0-dev".
     version = version.replace(/-rc.*$/, '');
-    var parts = version.split('.');
+    const parts = version.split('.');
     parts[1] = String(+parts[1] + 1);
-    var cliSafeParts = parts[2].split('-');
+    const cliSafeParts = parts[2].split('-');
     cliSafeParts[0] = '0';
     parts[2] = cliSafeParts.join('-');
     return parts.join('.') + '-dev';
@@ -65,14 +65,14 @@ function cpAndLog (src, dest) {
 // TODO: if using this method to only retrieve repo version, use the new
 // versionutil.getRepoVersion method.
 function * handleVersion (repo, ver, validate) {
-    var platform = repo.id; // eslint-disable-line no-unused-vars
-    var version = ver || undefined;
+    const platform = repo.id; // eslint-disable-line no-unused-vars
+    let version = ver || undefined;
 
     if (version === undefined) {
         yield repoutil.forEachRepo([repo], function * () {
             // Grabbing version from platformPackageJson
-            var platformPackage = path.join(process.cwd(), 'package.json');
-            var platformPackageJson = require(platformPackage);
+            const platformPackage = path.join(process.cwd(), 'package.json');
+            const platformPackageJson = require(platformPackage);
             if (validate === true) {
                 version = flagutil.validateVersionString(platformPackageJson.version);
             } else {
@@ -84,7 +84,7 @@ function * handleVersion (repo, ver, validate) {
 }
 
 function configureReleaseCommandFlags (_opt) {
-    var opt = flagutil.registerRepoFlag(_opt);
+    let opt = flagutil.registerRepoFlag(_opt);
     opt = opt
         .options('version', {
             desc: 'The version to use for the branch. Must match the pattern #.#.#[-rc#]'
@@ -101,7 +101,7 @@ function configureReleaseCommandFlags (_opt) {
     return argv;
 }
 
-var hasBuiltJs = '';
+let hasBuiltJs = '';
 
 // Adds the version to CDVAvailability.h for iOS or OSX
 function * updateCDVAvailabilityFile (version, platform) {
@@ -112,17 +112,17 @@ function * updateCDVAvailabilityFile (version, platform) {
         file = path.join(process.cwd(), 'CordovaLib', 'CordovaLib', 'Classes', 'Commands', 'CDVAvailability.h');
     }
 
-    var fileContents = fs.readFileSync(file, 'utf8');
+    let fileContents = fs.readFileSync(file, 'utf8');
     fileContents = fileContents.split('\n');
 
-    var lineNumberToInsertLine = fileContents.indexOf('/* coho:next-version,insert-before */');
-    var lineNumberToReplaceLine = fileContents.indexOf('    /* coho:next-version-min-required,replace-after */') + 2;
+    const lineNumberToInsertLine = fileContents.indexOf('/* coho:next-version,insert-before */');
+    let lineNumberToReplaceLine = fileContents.indexOf('    /* coho:next-version-min-required,replace-after */') + 2;
 
-    var versionNumberUnderscores = version.split('.').join('_');
-    var versionNumberZeroes = version.split('.').join('0');
+    const versionNumberUnderscores = version.split('.').join('_');
+    const versionNumberZeroes = version.split('.').join('0');
 
-    var lineToAdd = util.format('#define __CORDOVA_%s %s', versionNumberUnderscores, versionNumberZeroes);
-    var lineToReplace = util.format('    #define CORDOVA_VERSION_MIN_REQUIRED __CORDOVA_%s', versionNumberUnderscores);
+    const lineToAdd = util.format('#define __CORDOVA_%s %s', versionNumberUnderscores, versionNumberZeroes);
+    const lineToReplace = util.format('    #define CORDOVA_VERSION_MIN_REQUIRED __CORDOVA_%s', versionNumberUnderscores);
 
     if (fileContents[lineNumberToInsertLine - 1] === lineToAdd) {
         print('Version already exists in CDVAvailability.h');
@@ -138,7 +138,7 @@ function * updateCDVAvailabilityFile (version, platform) {
 
 function * updateJsSnapshot (repo, version, commit) {
     function * ensureJsIsBuilt () {
-        var cordovaJsRepo = repoutil.getRepoById('js');
+        const cordovaJsRepo = repoutil.getRepoById('js');
         if (repo.id === 'blackberry') {
             repo.id = 'blackberry10';
         }
@@ -162,7 +162,7 @@ function * updateJsSnapshot (repo, version, commit) {
     if (repo.cordovaJsPaths) {
         yield ensureJsIsBuilt();
         repo.cordovaJsPaths.forEach(function (jsPath) {
-            var src = path.join('..', 'cordova-js', 'pkg', repo.cordovaJsSrcName || ('cordova.' + repo.id + '.js'));
+            const src = path.join('..', 'cordova-js', 'pkg', repo.cordovaJsSrcName || ('cordova.' + repo.id + '.js'));
             cpAndLog(src, jsPath);
         });
         if (commit === true) {
@@ -176,7 +176,7 @@ function * updateJsSnapshot (repo, version, commit) {
 }
 
 exports.createAndCopyCordovaJSCommand = function * () {
-    var argv = configureReleaseCommandFlags(optimist
+    const argv = configureReleaseCommandFlags(optimist
         .usage('Generates and copies an updated cordova.js to the specified platform. It does the following:\n' +
                '    1. Generates a new cordova.js.\n' +
                '    2. Replaces platform\'s cordova.js file.\n' +
@@ -184,15 +184,15 @@ exports.createAndCopyCordovaJSCommand = function * () {
                'Usage: $0 copy-js -r platform')
     );
 
-    var repos = flagutil.computeReposFromFlag(argv.r);
+    const repos = flagutil.computeReposFromFlag(argv.r);
     yield repoutil.forEachRepo(repos, function * (repo) {
-        var version = yield handleVersion(repo, argv.version, false);
+        const version = yield handleVersion(repo, argv.version, false);
         yield updateJsSnapshot(repo, version, false);
     });
 };
 
 exports.prepareReleaseBranchCommand = function * () {
-    var argv = configureReleaseCommandFlags(optimist
+    const argv = configureReleaseCommandFlags(optimist
         .usage('Prepares release branches but does not create tags. This includes:\n' +
                '    1. Creating the branch if it doesn\'t already exist\n' +
                '    2. Generates and updates the cordova.js snapshot and VERSION file from master.\n' +
@@ -206,16 +206,16 @@ exports.prepareReleaseBranchCommand = function * () {
                'Usage: $0 prepare-release-branch -r platform [--version=3.6.0]')
     );
 
-    var repos = flagutil.computeReposFromFlag(argv.r);
-    var branchName = null;
+    const repos = flagutil.computeReposFromFlag(argv.r);
+    const branchName = null;
 
     // First - perform precondition checks.
     yield repoupdate.updateRepos(repos, [], true);
 
     yield repoutil.forEachRepo(repos, function * (repo) {
-        var platform = repo.id;
-        var version = yield handleVersion(repo, argv.version, true);
-        var branchName = versionutil.getReleaseBranchNameFromVersion(version);
+        const platform = repo.id;
+        const version = yield handleVersion(repo, argv.version, true);
+        const branchName = versionutil.getReleaseBranchNameFromVersion(version);
 
         yield gitutil.stashAndPop(repo, function * () {
             // git fetch + update master
@@ -246,7 +246,7 @@ exports.prepareReleaseBranchCommand = function * () {
             yield versionutil.updateRepoVersion(repo, version);
 
             yield gitutil.gitCheckout('master');
-            var devVersion = createPlatformDevVersion(version);
+            const devVersion = createPlatformDevVersion(version);
             print(repo.repoName + ': Setting VERSION to "' + devVersion + '" on branch "master".');
             yield versionutil.updateRepoVersion(repo, devVersion);
             yield updateJsSnapshot(repo, devVersion, true);
@@ -265,13 +265,13 @@ function * tagJs (repo, version, pretend) {
         }
     }
     // tag cordova.js platform-version
-    var cordovaJsRepo = repoutil.getRepoById('js');
+    const cordovaJsRepo = repoutil.getRepoById('js');
     yield repoutil.forEachRepo([cordovaJsRepo], function * () {
         yield gitutil.stashAndPop(cordovaJsRepo, function * () {
             // git fetch
             yield repoupdate.updateRepos([cordovaJsRepo], ['master'], false);
 
-            var tagName = repo.id + '-' + version;
+            const tagName = repo.id + '-' + version;
             if (yield gitutil.tagExists(tagName)) {
                 yield execOrPretend(executil.ARGS('git tag ' + tagName + ' --force'));
             } else {
@@ -292,10 +292,10 @@ exports.tagReleaseBranchCommand = function * (argv) {
             type: 'boolean'
         })
     );
-    var repos = flagutil.computeReposFromFlag(argv.r);
-    var version = flagutil.validateVersionString(argv.version);
-    var pretend = argv.pretend;
-    var branchName = versionutil.getReleaseBranchNameFromVersion(version);
+    const repos = flagutil.computeReposFromFlag(argv.r);
+    const version = flagutil.validateVersionString(argv.version);
+    const pretend = argv.pretend;
+    const branchName = versionutil.getReleaseBranchNameFromVersion(version);
 
     // First - perform precondition checks.
     yield repoupdate.updateRepos(repos, [], true);
@@ -323,7 +323,7 @@ exports.tagReleaseBranchCommand = function * (argv) {
             yield repoupdate.updateRepos([repo], [branchName], true);
 
             // Create/update the tag.
-            var tagName = yield gitutil.retrieveCurrentTagName();
+            const tagName = yield gitutil.retrieveCurrentTagName();
             if (tagName !== version) {
                 if (yield gitutil.tagExists(version)) {
                     yield execOrPretend(executil.ARGS('git tag ' + version + ' --force'));
diff --git a/src/plugin-release.js b/src/plugin-release.js
index 05c8b7e..a9d3bbf 100644
--- a/src/plugin-release.js
+++ b/src/plugin-release.js
@@ -17,56 +17,56 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var co = require('co');
-var Q = require('q');
-var glob = require('glob');
-var path = require('path');
-var fs = require('fs');
-var shelljs = require('shelljs');
-var apputil = require('./apputil');
-var audit_license = require('./audit-license-headers');
-var update_release_notes = require('./update-release-notes');
-var create_archive = require('./create-verify-archive');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var svnutil = require('./svnutil');
-var repoutil = require('./repoutil');
-var versionutil = require('./versionutil');
-var repoupdate = require('./repo-update');
-var repoclone = require('./repo-clone');
-var reporeset = require('./repo-reset');
-var jira_client = require('jira-client');
-var inquirer = require('inquirer');
-var semver = require('semver');
+const co = require('co');
+const Q = require('q');
+const glob = require('glob');
+const path = require('path');
+const fs = require('fs');
+const shelljs = require('shelljs');
+const apputil = require('./apputil');
+const audit_license = require('./audit-license-headers');
+const update_release_notes = require('./update-release-notes');
+const create_archive = require('./create-verify-archive');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const svnutil = require('./svnutil');
+const repoutil = require('./repoutil');
+const versionutil = require('./versionutil');
+const repoupdate = require('./repo-update');
+const repoclone = require('./repo-clone');
+const reporeset = require('./repo-reset');
+const jira_client = require('jira-client');
+const inquirer = require('inquirer');
+const semver = require('semver');
 
 /*
  * Pseudo code for plugin automation:
  * 1. Who are you? --> this is the release manager. Can we use JIRA for this?
  */
-var jira; // issues.apache.org jira client object
-var you; // store label for the user here
-var jira_user; // store ref to jira project user
-var cordova_project; // store ref to jira project for Cordova
-var plugins_release_issue; // store ref to jira issue tracking release.
+let jira; // issues.apache.org jira client object
+let you; // store label for the user here
+let jira_user; // store ref to jira project user
+let cordova_project; // store ref to jira project for Cordova
+let plugins_release_issue; // store ref to jira issue tracking release.
 /* eslint-disable no-unused-vars */
-var jira_issue_types; // store ref to all issue types supported by our JIRA instance
+let jira_issue_types; // store ref to all issue types supported by our JIRA instance
 /* eslint-enable no-unused-vars */
-var all_plugins_component; // store the specific component associated to the plugin issue.
-var jira_task_issue; // store ref to the "task" issue type
-var plugin_base; // parent directory holding all cordova plugins
-var plugin_repos; // which plugins are we messing with? initially gets set to all plugin repos, later on gets filtered to only those we will release. an array of objects in a special coho-accepted format.
-var dist_dev_svn; // cordova dist/dev repo
-var dist_svn; // cordova dist repo
-var svn_repos; // cordova dist and dist/dev svn repos
-var plugin_data = {}; // massive object containing plugin release-relevant information
-var plugins_to_release = []; // array of plugin names that need releasing
-var plugins_ommitted = []; // array of plugin names that DO NOT need releasing
-var plugins_to_merge_manually = []; // array of plugin names that RM will need to merge master into release branch manually.
-var svn_user; // username for apache svn
-var svn_password; // password for apache svn
-var updated_repos; // sentinel variable for if we did repo updates
-var created_distdev_dir; // sentinel var for if a new dir was created in cordova-dist-dev
+let all_plugins_component; // store the specific component associated to the plugin issue.
+let jira_task_issue; // store ref to the "task" issue type
+let plugin_base; // parent directory holding all cordova plugins
+let plugin_repos; // which plugins are we messing with? initially gets set to all plugin repos, later on gets filtered to only those we will release. an array of objects in a special coho-accepted format.
+let dist_dev_svn; // cordova dist/dev repo
+let dist_svn; // cordova dist repo
+let svn_repos; // cordova dist and dist/dev svn repos
+const plugin_data = {}; // massive object containing plugin release-relevant information
+let plugins_to_release = []; // array of plugin names that need releasing
+const plugins_ommitted = []; // array of plugin names that DO NOT need releasing
+const plugins_to_merge_manually = []; // array of plugin names that RM will need to merge master into release branch manually.
+let svn_user; // username for apache svn
+let svn_password; // password for apache svn
+let updated_repos; // sentinel variable for if we did repo updates
+let created_distdev_dir; // sentinel var for if a new dir was created in cordova-dist-dev
 
 function * updateDesiredRepos (repos) {
     if (!updated_repos) {
@@ -81,11 +81,11 @@ function * updateDesiredRepos (repos) {
 function * findChangesInPluginRepos (repos) {
     yield repoutil.forEachRepo(repos, function * (repo) {
         if (repo.repoName === 'cordova-plugins') return;
-        var last_release = (yield gitutil.findMostRecentTag())[0];
+        const last_release = (yield gitutil.findMostRecentTag())[0];
         plugin_data[repo.repoName] = {
             last_release: last_release
         };
-        var changes = yield gitutil.summaryOfChanges(last_release);
+        let changes = yield gitutil.summaryOfChanges(last_release);
         changes = changes.split('\n').filter(function (line) {
             return (line.toLowerCase().indexOf('incremented plugin version') === -1);
         });
@@ -145,9 +145,9 @@ function * interactive_plugins_release () {
             }]);
         }
     }).then(function (answers) {
-        var username = answers.username;
+        const username = answers.username;
         you = username;
-        var password = answers.password;
+        const password = answers.password;
         jira = new jira_client({ // eslint-disable-line new-cap
             protocol: 'https',
             host: 'issues.apache.org',
@@ -166,8 +166,8 @@ function * interactive_plugins_release () {
         return jira.listProjects();
     }).then(function (projects) {
         // Find the Apache Cordova (CB) project in Apache's JIRA
-        for (var i = 0; i < projects.length; i++) {
-            var project = projects[i];
+        for (let i = 0; i < projects.length; i++) {
+            const project = projects[i];
             if (project.key === 'CB') {
                 cordova_project = project;
                 break;
@@ -176,8 +176,8 @@ function * interactive_plugins_release () {
         return jira.listComponents('CB');
     }).then(function (components) {
         // Find the ALlPlugins component in Cordova'a JIRA components
-        for (var i = 0; i < components.length; i++) {
-            var component = components[i];
+        for (let i = 0; i < components.length; i++) {
+            const component = components[i];
             if (component.name === 'AllPlugins') {
                 all_plugins_component = component;
                 break;
@@ -186,8 +186,8 @@ function * interactive_plugins_release () {
         return jira.listIssueTypes();
     }).then(function (issue_types) {
         jira_issue_types = issue_types;
-        for (var i = 0; i < issue_types.length; i++) {
-            var it = issue_types[i];
+        for (let i = 0; i < issue_types.length; i++) {
+            const it = issue_types[i];
             if (it.name === 'Task') {
                 jira_task_issue = it;
             }
@@ -238,19 +238,19 @@ function * interactive_plugins_release () {
                     name: 'jira',
                     message: 'What is the JIRA issue number for your plugins release? Please provide only the numerical part of the issue key (i.e. CB-XXXXX)'
                 }).then(function (answers) {
-                    var cb_issue = 'CB-' + answers.jira;
+                    const cb_issue = 'CB-' + answers.jira;
                     console.log('Looking for ' + cb_issue + '...');
                     return jira.findIssue(cb_issue).then(function (issue) {
                         return issue;
-                    }, function (err) { // eslint-disable-line handle-callback-err
+                    }, function (err) { // eslint-disable-line node/handle-callback-err
                         console.error('Error finding issue ' + cb_issue + '!');
                         process.exit(4);
                     });
                 });
             } else {
                 console.warn('OK, no problem. I will create one for you now! Hang tight...');
-                var date = (new Date()).toDateString();
-                var new_issue = {
+                const date = (new Date()).toDateString();
+                const new_issue = {
                     fields: {
                         project: {
                             id: cordova_project.id
@@ -352,7 +352,7 @@ function * interactive_plugins_release () {
             return co.wrap(function * () {
                 yield updateDesiredRepos(plugin_repos);
                 // and remove all the data we collected for plugins we no longer care about.
-                var data_keys = Object.keys(plugin_data);
+                const data_keys = Object.keys(plugin_data);
                 data_keys.forEach(function (key) {
                     if (plugins_to_release.indexOf(key) === -1) {
                         delete plugin_data[key];
@@ -360,9 +360,9 @@ function * interactive_plugins_release () {
                 });
                 /* 7. ensure license headers are present everywhere. */
                 console.log('Checking license headers for specified plugin repos...');
-                var unknown_licenses = [];
+                const unknown_licenses = [];
                 yield audit_license.scrubRepos(plugin_repos, /* silent */true, /* allowError */false, function (repo, stdout) {
-                    var unknown = stdout.split('\n').filter(function (line) {
+                    const unknown = stdout.split('\n').filter(function (line) {
                         return line.indexOf('Unknown Licenses') > -1;
                     })[0];
                     if (unknown[0] !== '0') {
@@ -410,9 +410,9 @@ function * interactive_plugins_release () {
             return co.wrap(function * () {
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
                     yield gitutil.gitCheckout('master');
-                    var current_version = yield versionutil.getRepoVersion(repo);
+                    const current_version = yield versionutil.getRepoVersion(repo);
                     console.log(repo.repoName, '\'s current version is', current_version);
-                    var devless_version = versionutil.removeDev(current_version);
+                    const devless_version = versionutil.removeDev(current_version);
                     plugin_data[repo.repoName].current_release = devless_version;
                     yield versionutil.updateRepoVersion(repo, devless_version, { commitChanges: false });
                 });
@@ -422,12 +422,12 @@ function * interactive_plugins_release () {
              *     - how to determine if patch, minor or major? show changes to each plugin and then prompt Release Manager for a decision?
              *     - reuse coho 'update release notes' command */
             return co.wrap(function * () {
-                var plugs = Object.keys(plugin_data);
-                var release_note_prompts = [];
+                const plugs = Object.keys(plugin_data);
+                const release_note_prompts = [];
                 yield plugs.map(function * (plugin) {
-                    var data = plugin_data[plugin];
-                    var changes = data.changes;
-                    var final_notes = yield update_release_notes.createNotes(plugin, data.current_release, changes);
+                    const data = plugin_data[plugin];
+                    const changes = data.changes;
+                    const final_notes = yield update_release_notes.createNotes(plugin, data.current_release, changes);
                     release_note_prompts.push({
                         type: 'editor',
                         name: plugin,
@@ -439,12 +439,12 @@ function * interactive_plugins_release () {
                         type: 'input',
                         name: plugin + '-version',
                         message: function (answers) {
-                            var new_changes = answers[plugin];
-                            var first_heading = new_changes.indexOf('###');
-                            var second_heading = new_changes.indexOf('###', first_heading + 3);
-                            var first_change = new_changes.indexOf('\n', first_heading + 3);
-                            var len = second_heading - first_change;
-                            var change_summary = new_changes.substr(first_change, len);
+                            const new_changes = answers[plugin];
+                            const first_heading = new_changes.indexOf('###');
+                            const second_heading = new_changes.indexOf('###', first_heading + 3);
+                            const first_change = new_changes.indexOf('\n', first_heading + 3);
+                            const len = second_heading - first_change;
+                            const change_summary = new_changes.substr(first_change, len);
                             return 'Please enter a semver-compatible version number for this release of ' + plugin + ', based on the changes below:\n' + change_summary;
                         },
                         default: data.current_release,
@@ -463,16 +463,16 @@ function * interactive_plugins_release () {
             return co.wrap(function * () {
                 console.log('Writing out new release notes and plugin versions (if applicable)...');
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
+                    const plugin_name = repo.repoName;
                     if (plugin_data[plugin_name].current_release !== release_notes[plugin_name + '-version']) {
                         // If, after release notes review, RM decided on a different version...
                         // Overwrite plugin version
-                        var previous_assumed_version = plugin_data[plugin_name].current_release;
+                        const previous_assumed_version = plugin_data[plugin_name].current_release;
                         plugin_data[plugin_name].current_release = release_notes[plugin_name + '-version'];
                         yield versionutil.updateRepoVersion(repo, plugin_data[plugin_name].current_release, { commitChanges: false });
                         // also overwrite the version originally specified in the release notes file, since we changed it now!
-                        var rn = release_notes[plugin_name];
-                        var new_rn = rn.replace(new RegExp('### ' + previous_assumed_version, 'g'), '### ' + plugin_data[plugin_name].current_release);
+                        const rn = release_notes[plugin_name];
+                        const new_rn = rn.replace(new RegExp('### ' + previous_assumed_version, 'g'), '### ' + plugin_data[plugin_name].current_release);
                         release_notes[plugin_name] = new_rn;
                     }
                     fs.writeFileSync(update_release_notes.FILE, release_notes[plugin_name], { encoding: 'utf8' });
@@ -489,11 +489,11 @@ function * interactive_plugins_release () {
         }).then(function () {
             /* 10. Create release branch. Check if release branch, which would be named in the form "major.minor.x" (i.e. 2.3.x) already exists */
             return co.wrap(function * () {
-                var repos_with_existing_release_branch = [];
+                const repos_with_existing_release_branch = [];
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
-                    var plugin_version = plugin_data[plugin_name].current_release;
-                    var release_branch_name = versionutil.getReleaseBranchNameFromVersion(plugin_version);
+                    const plugin_name = repo.repoName;
+                    const plugin_version = plugin_data[plugin_name].current_release;
+                    const release_branch_name = versionutil.getReleaseBranchNameFromVersion(plugin_version);
                     if (yield gitutil.remoteBranchExists(repo, release_branch_name)) {
                         repos_with_existing_release_branch.push(repo);
                         // also store HEAD of release branch, so later on we can show a diff of the branch before pushing
@@ -512,10 +512,10 @@ function * interactive_plugins_release () {
             // Our mission in this clause, should we choose to accept it, is to merge master back into the branch. But, this can be dangerous!
             // Ask the RM if they want us to handle the merge automatically.
             // If the RM says no, we will prompt them to handle it manually later.
-            var prompts = [];
+            const prompts = [];
             repos_with_existing_release_branch.forEach(function (repo) {
-                var plugin_name = repo.repoName;
-                var rb = versionutil.getReleaseBranchNameFromVersion(plugin_data[plugin_name].current_release);
+                const plugin_name = repo.repoName;
+                const rb = versionutil.getReleaseBranchNameFromVersion(plugin_data[plugin_name].current_release);
                 prompts.push({
                     type: 'confirm',
                     name: 'rb_automerge_proceed_' + plugin_name,
@@ -525,12 +525,12 @@ function * interactive_plugins_release () {
             return inquirer.prompt(prompts);
         }).then(function (answers) {
             return co.wrap(function * () {
-                var prompts = [];
+                const prompts = [];
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
+                    const plugin_name = repo.repoName;
                     if (answers['rb_automerge_proceed_' + plugin_name]) {
                         // Auto-merge master into the release branch.
-                        var rb = versionutil.getReleaseBranchNameFromVersion(plugin_data[plugin_name].current_release);
+                        const rb = versionutil.getReleaseBranchNameFromVersion(plugin_data[plugin_name].current_release);
                         console.log('Checking out "' + rb + '" branch of', plugin_name, 'and merging master in...');
                         yield executil.execHelper(executil.ARGS('git merge -s recursive -X theirs', 'master'), false, false, function () {
                             console.log('Merge was fine, continuing.');
@@ -546,9 +546,9 @@ function * interactive_plugins_release () {
             })();
         }).then(function () {
             // prompt the RM about the plugins with manual merging work needed here.
-            var prompts = [];
+            const prompts = [];
             plugins_to_merge_manually.forEach(function (plugin_name) {
-                var rb = versionutil.getReleaseBranchNameFromVersion(plugin_data[plugin_name].current_release);
+                const rb = versionutil.getReleaseBranchNameFromVersion(plugin_data[plugin_name].current_release);
                 prompts.push({
                     type: 'confirm',
                     name: 'rb_manualmerge_proceed_' + plugin_name,
@@ -562,8 +562,8 @@ function * interactive_plugins_release () {
             // So, check out master branch and do the thing.
             return co.wrap(function * () {
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
-                    var newest_version = semver.inc(plugin_data[plugin_name].current_release, 'patch') + '-dev';
+                    const plugin_name = repo.repoName;
+                    const newest_version = semver.inc(plugin_data[plugin_name].current_release, 'patch') + '-dev';
                     console.log('Checking out master branch of', plugin_name, 'and setting version to', newest_version, ', then committing that change to master branch...');
                     yield gitutil.gitCheckout('master');
                     // store previous master HEAD, for later comparison/showing of diff
@@ -575,14 +575,14 @@ function * interactive_plugins_release () {
             /* 12. Push tags, release branch, and master branch changes.
              * start with pushing tag, then compile diffs for master branch push and ask user if they approve before pushing master */
             return co.wrap(function * () {
-                var master_prompts = [];
+                const master_prompts = [];
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
-                    var tag = plugin_data[plugin_name].current_release;
+                    const plugin_name = repo.repoName;
+                    const tag = plugin_data[plugin_name].current_release;
                     console.log(plugin_name, ': pushing tag ', tag);
                     yield gitutil.pushToOrigin(tag);
                     /*   - show diff of last master commit for user confirmation */
-                    var diff = yield gitutil.diff(plugin_data[plugin_name].previous_master_head, 'master');
+                    const diff = yield gitutil.diff(plugin_data[plugin_name].previous_master_head, 'master');
                     master_prompts.push({
                         type: 'confirm',
                         name: 'master_' + plugin_name,
@@ -595,7 +595,7 @@ function * interactive_plugins_release () {
             /* check confirmations and exit if RM bailed */
             return co.wrap(function * () {
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
+                    const plugin_name = repo.repoName;
                     if (!answers['master_' + plugin_name]) {
                         console.error('Aborting as master branch changes for ' + plugin_name + ' were not approved!');
                         process.exit(8);
@@ -615,12 +615,12 @@ function * interactive_plugins_release () {
             *     - if release branch did not exist before, show diff (simple, just master..branch), confirm, then push
             *     - if release branch did exist before, show diff (last branch commit..HEAD), confirm, then push */
             return co.wrap(function * () {
-                var rb_prompts = [];
+                const rb_prompts = [];
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
-                    var plugin_version = plugin_data[plugin_name].current_release;
-                    var release_branch_name = versionutil.getReleaseBranchNameFromVersion(plugin_version);
-                    var previous_release_branch_head = plugin_data[plugin_name].previous_release_branch_head;
+                    const plugin_name = repo.repoName;
+                    const plugin_version = plugin_data[plugin_name].current_release;
+                    const release_branch_name = versionutil.getReleaseBranchNameFromVersion(plugin_version);
+                    const previous_release_branch_head = plugin_data[plugin_name].previous_release_branch_head;
                     yield gitutil.gitCheckout(release_branch_name);
                     if (previous_release_branch_head) {
                         // release branch previously existed.
@@ -646,7 +646,7 @@ function * interactive_plugins_release () {
             /* check confirmations and exit if RM bailed */
             return co.wrap(function * () {
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
+                    const plugin_name = repo.repoName;
                     if (!answers['rb_' + plugin_name]) {
                         console.error('Aborting as release branch changes for ' + plugin_name + ' were not approved!');
                         process.exit(8);
@@ -657,9 +657,9 @@ function * interactive_plugins_release () {
             // at this point RM is cool pushing master branch changes up.
             return co.wrap(function * () {
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
-                    var plugin_version = plugin_data[plugin_name].current_release;
-                    var release_branch_name = versionutil.getReleaseBranchNameFromVersion(plugin_version);
+                    const plugin_name = repo.repoName;
+                    const plugin_version = plugin_data[plugin_name].current_release;
+                    const release_branch_name = versionutil.getReleaseBranchNameFromVersion(plugin_version);
                     // at this point have release branch checked out
                     yield gitutil.pushToOrigin(release_branch_name);
                 });
@@ -668,8 +668,8 @@ function * interactive_plugins_release () {
             // 13. Publish to apache svn:
             // - first update dist-dev repo
             return co.wrap(function * () {
-                var orig_dir = process.cwd();
-                var dist_dev_repo = path.join(plugin_base, dist_dev_svn.repoName);
+                const orig_dir = process.cwd();
+                const dist_dev_repo = path.join(plugin_base, dist_dev_svn.repoName);
                 process.chdir(dist_dev_repo);
                 console.log('Updating dist-dev svn repo...');
                 yield svnutil.update();
@@ -679,16 +679,16 @@ function * interactive_plugins_release () {
             //   - create-archive -r $ACTIVE --dest cordova-dist-dev/$JIRA
             return co.wrap(function * () {
                 // location to store the archives in.
-                var dist_dev_dir = path.join(plugin_base, dist_dev_svn.repoName, plugins_release_issue.key);
+                const dist_dev_dir = path.join(plugin_base, dist_dev_svn.repoName, plugins_release_issue.key);
                 if (!(fs.existsSync(dist_dev_dir))) {
                     shelljs.mkdir('-p', dist_dev_dir);
                     created_distdev_dir = true;
                 }
                 yield repoutil.forEachRepo(plugin_repos, function * (repo) {
-                    var plugin_name = repo.repoName;
-                    var tag = plugin_data[plugin_name].current_release;
+                    const plugin_name = repo.repoName;
+                    const tag = plugin_data[plugin_name].current_release;
                     yield gitutil.gitCheckout(tag);
-                    var archive = yield create_archive.createArchive(repo, tag, dist_dev_dir, true/* sign */);
+                    const archive = yield create_archive.createArchive(repo, tag, dist_dev_dir, true/* sign */);
                     // - verify-archive cordova-dist-dev/$JIRA/*.tgz
                     yield create_archive.verifyArchive(archive);
                     yield gitutil.gitCheckout('master');
@@ -718,8 +718,8 @@ function * interactive_plugins_release () {
             svn_password = answers.password;
             //   - upload by running `svn` add and commit commands.
             return co.wrap(function * () {
-                var orig_dir = process.cwd();
-                var dist_dev_repo = path.join(plugin_base, dist_dev_svn.repoName);
+                const orig_dir = process.cwd();
+                const dist_dev_repo = path.join(plugin_base, dist_dev_svn.repoName);
                 if (created_distdev_dir) {
                     // if we created the dir containing the archives, then we can
                     // just svn add the entire dir.
@@ -729,15 +729,15 @@ function * interactive_plugins_release () {
                 } else {
                     // if it already existed, then we need to painstakingly add
                     // each individual archive file cause svn is cool
-                    var archives_for_plugins = [];
+                    const archives_for_plugins = [];
                     yield repoutil.forEachRepo(plugin_repos, function * (repo) {
                         process.chdir(dist_dev_repo);
-                        var plugin_name = repo.repoName;
-                        var tag = plugin_data[plugin_name].current_release;
-                        var fileref = plugin_name + '-' + tag;
+                        const plugin_name = repo.repoName;
+                        const tag = plugin_data[plugin_name].current_release;
+                        const fileref = plugin_name + '-' + tag;
                         archives_for_plugins.push(fileref);
-                        var files_to_add = glob.sync(path.join(plugins_release_issue.key, fileref + '*'));
-                        for (var i = 0; i < files_to_add.length; i++) {
+                        const files_to_add = glob.sync(path.join(plugins_release_issue.key, fileref + '*'));
+                        for (let i = 0; i < files_to_add.length; i++) {
                             yield svnutil.add(files_to_add[i]);
                         }
                     });
@@ -757,7 +757,7 @@ function * interactive_plugins_release () {
             process.exit(0);
         });
     }, function (auth_err) {
-        var keys = Object.keys(auth_err); // eslint-disable-line no-unused-vars
+        const keys = Object.keys(auth_err); // eslint-disable-line no-unused-vars
         console.error('ERROR! There was a problem connecting to JIRA, received a', auth_err.statusCode, 'status code.');
         process.exit(1);
     });
@@ -791,14 +791,14 @@ module.exports.interactive = interactive_plugins_release;
 // TODO: if using this function only to retrieve repo version, use the new
 // versionutil.getRepoVersion method instead.
 function * handleVersion (repo, ver, validate) { // eslint-disable-line no-unused-vars
-    var platform = repo.id; // eslint-disable-line no-unused-vars
-    var version = ver || undefined;
+    const platform = repo.id; // eslint-disable-line no-unused-vars
+    let version = ver || undefined;
 
     if (version === undefined) {
         yield repoutil.forEachRepo([repo], function * () {
             // Grabbing version from platformPackageJson
-            var platformPackage = path.join(process.cwd(), 'package.json');
-            var platformPackageJson = require(platformPackage);
+            const platformPackage = path.join(process.cwd(), 'package.json');
+            const platformPackageJson = require(platformPackage);
             if (validate === true) {
                 version = flagutil.validateVersionString(platformPackageJson.version);
             } else {
diff --git a/src/print-tags.js b/src/print-tags.js
index 723bf05..1d7961f 100644
--- a/src/print-tags.js
+++ b/src/print-tags.js
@@ -17,14 +17,14 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * (argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerHelpFlag(opt);
     argv = opt
         .usage('Prints out tags & hashes for the given repos. Used in VOTE emails.\n' +
@@ -37,9 +37,9 @@ module.exports = function * (argv) {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
 
-    var tag;
+    let tag;
     yield repoutil.forEachRepo(repos, function * (repo) {
         if (argv.tag) {
             tag = argv.tag;
@@ -50,7 +50,7 @@ module.exports = function * (argv) {
             console.log('    ' + repo.repoName + ': NO TAGS');
             return;
         }
-        var ref = yield executil.execHelper(executil.ARGS('git show-ref ' + tag), true);
+        const ref = yield executil.execHelper(executil.ARGS('git show-ref ' + tag), true);
         console.log('    ' + repo.repoName + ': ' + tag.replace(/^r/, '') + ' (' + ref.slice(0, 10) + ')');
     });
 };
diff --git a/src/remote-update.js b/src/remote-update.js
index da190b2..ba31441 100644
--- a/src/remote-update.js
+++ b/src/remote-update.js
@@ -17,13 +17,13 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var repoutil = require('./repoutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * (_argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerDepthFlag(opt);
 
     opt = opt.options('remote', {
@@ -32,7 +32,7 @@ module.exports = function * (_argv) {
     });
 
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Updates specified git remotes to apache github repos by performing the following command:\n' +
                '    for each specified repo:\n' +
                '        git remote set-url $REMOTE APACHE_GITHUB_URL' +
@@ -46,8 +46,8 @@ module.exports = function * (_argv) {
         process.exit(1);
     }
 
-    var remote = argv.remote;
-    var repos = flagutil.computeReposFromFlag(argv.r, true);
+    const remote = argv.remote;
+    const repos = flagutil.computeReposFromFlag(argv.r, true);
 
     // ensure that any missing repos are cloned
     // yield require('./repo-clone').cloneRepos(repos, true, depth);
diff --git a/src/repo-clone.js b/src/repo-clone.js
index 248af1b..ec2f7fd 100644
--- a/src/repo-clone.js
+++ b/src/repo-clone.js
@@ -17,18 +17,18 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var fs = require('fs');
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var print = apputil.print;
+const fs = require('fs');
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const print = apputil.print;
 
 module.exports = function * (_argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerHelpFlag(opt);
     opt = flagutil.registerDepthFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Clones git repositories as siblings of cordova-coho (unless --no-chdir or --global is used). If the repositories are already cloned, then this is a no-op.\n\n' +
                'Usage: $0 repo-clone [--depth 1] --repo=name [-r repos]')
         .argv;
@@ -38,9 +38,9 @@ module.exports = function * (_argv) {
         process.exit(1);
     }
 
-    var depth = argv.depth ? argv.depth : null;
+    const depth = argv.depth ? argv.depth : null;
 
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeSvn: true });
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeSvn: true });
     yield cloneRepos(repos, false, depth);
 };
 
@@ -49,19 +49,19 @@ function createRepoUrl (repo) {
 }
 
 function * cloneRepos (repos, quiet, depth) {
-    var failures = []; // eslint-disable-line no-unused-vars
-    var numSkipped = 0;
+    const failures = []; // eslint-disable-line no-unused-vars
+    let numSkipped = 0;
 
-    var clonePromises = [];
-    for (var i = 0; i < repos.length; ++i) {
-        var repo = repos[i];
+    const clonePromises = [];
+    for (let i = 0; i < repos.length; ++i) {
+        const repo = repos[i];
         if (fs.existsSync(repo.repoName)) {
             if (!quiet) print('Repo already cloned: ' + repo.repoName);
             numSkipped += 1;
         } else if (repo.svn) {
             clonePromises.push(executil.execHelper(executil.ARGS('svn checkout ' + repo.svn + ' ' + repo.repoName + ' ' + '--trust-server-cert --non-interactive')));
         } else {
-            var depthArg = depth == null ? '' : '--depth ' + depth + ' ';
+            const depthArg = depth == null ? '' : '--depth ' + depth + ' ';
             clonePromises.push(executil.execHelper(executil.ARGS('git clone ' + depthArg + createRepoUrl(repo))));
         }
     }
@@ -71,7 +71,7 @@ function * cloneRepos (repos, quiet, depth) {
     }
     yield clonePromises;
 
-    var numCloned = repos.length - numSkipped;
+    const numCloned = repos.length - numSkipped;
     if (numCloned) {
         print('Successfully cloned ' + numCloned + ' repositories.');
     }
diff --git a/src/repo-push.js b/src/repo-push.js
index 01eef8e..03dd304 100644
--- a/src/repo-push.js
+++ b/src/repo-push.js
@@ -17,25 +17,24 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var repoupdate = require('./repo-update');
-var print = apputil.print;
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const repoupdate = require('./repo-update');
+const print = apputil.print;
 
 module.exports = function * (argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
-    var opt = optimist // eslint-disable-line
+    let opt = flagutil.registerRepoFlag(optimist)
         .options('b', {
             alias: 'branch',
             desc: 'The name of the branch to push. Can be specified multiple times to specify multiple branches.',
             default: ['master']
         });
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt // eslint-disable-line
+    argv = opt
         .usage('Pushes changes to the remote repository.\n' +
                '\n' +
                'Usage: $0 repo-push -r auto -b master -b 2.9.x')
@@ -45,25 +44,25 @@ module.exports = function * (argv) {
         optimist.showHelp();
         process.exit(1);
     }
-    var branches = Array.isArray(argv.b) ? argv.b : [argv.b];
-    var repos = flagutil.computeReposFromFlag(argv.r);
+    const branches = Array.isArray(argv.b) ? argv.b : [argv.b];
+    const repos = flagutil.computeReposFromFlag(argv.r);
 
     yield repoutil.forEachRepo(repos, function * (repo) {
         // Update first.
         yield repoupdate.updateRepos([repo], branches, false);
-        for (var i = 0; i < branches.length; ++i) {
-            var branchName = branches[i];
+        for (let i = 0; i < branches.length; ++i) {
+            const branchName = branches[i];
             if (!(yield gitutil.localBranchExists(branchName))) {
                 continue;
             }
-            var isNewBranch = !(yield gitutil.remoteBranchExists(repo, branchName));
+            const isNewBranch = !(yield gitutil.remoteBranchExists(repo, branchName));
 
             yield gitutil.gitCheckout(branchName);
 
             if (isNewBranch) {
                 yield executil.execHelper(executil.ARGS('git push --set-upstream ' + repo.remoteName + ' ' + branchName));
             } else {
-                var changes = yield executil.execHelper(executil.ARGS('git log --oneline ' + repo.remoteName + '/' + branchName + '..' + branchName), true);
+                const changes = yield executil.execHelper(executil.ARGS('git log --oneline ' + repo.remoteName + '/' + branchName + '..' + branchName), true);
                 if (changes) {
                     yield executil.execHelper(executil.ARGS('git push ' + repo.remoteName + ' ' + branchName));
                 } else {
diff --git a/src/repo-reset.js b/src/repo-reset.js
index 80aff99..9280fef 100644
--- a/src/repo-reset.js
+++ b/src/repo-reset.js
@@ -17,17 +17,17 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var repoupdate = require('./repo-update');
-var print = apputil.print;
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const repoupdate = require('./repo-update');
+const print = apputil.print;
 
 module.exports = function * (_argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = optimist
         .options('b', {
             alias: 'branch',
@@ -35,7 +35,7 @@ module.exports = function * (_argv) {
             default: 'master'
         });
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Resets repository branches to match their upstream state.\n' +
                'Performs the following commands on each:\n' +
                '    git commit                             (commit any pending changes)\n' +
@@ -53,8 +53,8 @@ module.exports = function * (_argv) {
     if (argv.r === 'auto') {
         apputil.fatal('"-r auto" is not allowed for repo-reset. Please enumerate repos explicitly');
     }
-    var branches = Array.isArray(argv.b) ? argv.b : [argv.b];
-    var repos = flagutil.computeReposFromFlag(argv.r);
+    const branches = Array.isArray(argv.b) ? argv.b : [argv.b];
+    const repos = flagutil.computeReposFromFlag(argv.r);
     yield module.exports.resetRepos(repos, branches);
 };
 
@@ -62,7 +62,7 @@ module.exports.resetRepos = function * (repos, branches) {
     yield repoutil.forEachRepo(repos, function * (repo) {
         // Determine remote name.
         yield repoupdate.updateRepos([repo], [], true);
-        var branchName = yield gitutil.retrieveCurrentBranchName();
+        const branchName = yield gitutil.retrieveCurrentBranchName();
         if (branches.indexOf(branchName) === -1) {
             yield gitutil.stashAndPop(repo, function * () {
                 yield cleanRepo(repo, branches);
@@ -74,8 +74,8 @@ module.exports.resetRepos = function * (repos, branches) {
 };
 
 function * cleanRepo (repo, branches) {
-    for (var i = 0; i < branches.length; ++i) {
-        var branchName = branches[i];
+    for (let i = 0; i < branches.length; ++i) {
+        const branchName = branches[i];
         if (!(yield gitutil.localBranchExists(branchName))) {
             continue;
         }
@@ -88,7 +88,7 @@ function * cleanRepo (repo, branches) {
 
         if (yield gitutil.remoteBranchExists(repo, branchName)) {
             yield gitutil.gitCheckout(branchName);
-            var changes = yield executil.execHelper(executil.ARGS('git log --oneline ' + repo.remoteName + '/' + branchName + '..' + branchName));
+            const changes = yield executil.execHelper(executil.ARGS('git log --oneline ' + repo.remoteName + '/' + branchName + '..' + branchName));
             if (changes) {
                 print(repo.repoName + ' on branch ' + branchName + ': Local commits exist. Resetting.');
                 yield executil.execHelper(executil.ARGS('git reset --hard ' + repo.remoteName + '/' + branchName));
diff --git a/src/repo-status.js b/src/repo-status.js
index 395da82..0842d9e 100644
--- a/src/repo-status.js
+++ b/src/repo-status.js
@@ -17,17 +17,17 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var repoupdate = require('./repo-update');
-var print = apputil.print;
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const repoupdate = require('./repo-update');
+const print = apputil.print;
 
 module.exports = function * (_argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = optimist
         .options('b', {
             alias: 'branch',
@@ -41,7 +41,7 @@ module.exports = function * (_argv) {
             default: false
         });
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Reports what changes exist locally that are not yet pushed.\n' +
                '\n' +
                'Example usage: $0 repo-status -r auto -b master -b 2.9.x\n' +
@@ -52,9 +52,9 @@ module.exports = function * (_argv) {
         optimist.showHelp();
         process.exit(1);
     }
-    var branches = argv.b && (Array.isArray(argv.b) ? argv.b : [argv.b]);
-    var branches2 = branches && argv.branch2 && (Array.isArray(argv.branch2) ? argv.branch2 : [argv.branch2]);
-    var repos = flagutil.computeReposFromFlag(argv.r);
+    const branches = argv.b && (Array.isArray(argv.b) ? argv.b : [argv.b]);
+    const branches2 = branches && argv.branch2 && (Array.isArray(argv.branch2) ? argv.branch2 : [argv.branch2]);
+    const repos = flagutil.computeReposFromFlag(argv.r);
 
     if (branches2 && branches && branches.length !== branches2.length) {
         apputil.fatal('Must specify the same number of --branch and --branch2 flags');
@@ -67,20 +67,20 @@ module.exports = function * (_argv) {
         }
         // Determine remote name.
         yield repoupdate.updateRepos([repo], [], true);
-        var actualBranches = branches || ['master'];
-        for (var i = 0; i < actualBranches.length; ++i) {
-            var branchName = actualBranches[i];
+        const actualBranches = branches || ['master'];
+        for (let i = 0; i < actualBranches.length; ++i) {
+            const branchName = actualBranches[i];
             if (!(yield gitutil.localBranchExists(branchName))) {
                 continue;
             }
-            var targetBranch = branches2 ? branches2[i] : ((yield gitutil.remoteBranchExists(repo, branchName)) ? repo.remoteName + '/' + branchName : 'master');
-            var changes = yield executil.execHelper(executil.ARGS('git log --no-merges --oneline ' + targetBranch + '..' + branchName), true);
+            const targetBranch = branches2 ? branches2[i] : ((yield gitutil.remoteBranchExists(repo, branchName)) ? repo.remoteName + '/' + branchName : 'master');
+            const changes = yield executil.execHelper(executil.ARGS('git log --no-merges --oneline ' + targetBranch + '..' + branchName), true);
             if (changes) {
                 print('Local commits exist on ' + branchName + ':');
                 console.log(changes);
             }
         }
-        var gitStatus = yield executil.execHelper(executil.ARGS('git status --short'), true);
+        const gitStatus = yield executil.execHelper(executil.ARGS('git status --short'), true);
         if (gitStatus) {
             print('Uncommitted changes:');
             console.log(gitStatus);
@@ -88,14 +88,14 @@ module.exports = function * (_argv) {
     });
     if (argv.diff) {
         yield repoutil.forEachRepo(repos, function * (repo) {
-            var actualBranches = branches || ['master'];
-            for (var i = 0; i < actualBranches.length; ++i) {
-                var branchName = actualBranches[i];
+            const actualBranches = branches || ['master'];
+            for (let i = 0; i < actualBranches.length; ++i) {
+                const branchName = actualBranches[i];
                 if (!(yield gitutil.localBranchExists(branchName))) {
                     return;
                 }
-                var targetBranch = branches2 ? branches2[i] : ((yield gitutil.remoteBranchExists(repo, branchName)) ? repo.remoteName + '/' + branchName : 'master');
-                var diff = yield executil.execHelper(executil.ARGS('git diff ' + targetBranch + '...' + branchName), true);
+                const targetBranch = branches2 ? branches2[i] : ((yield gitutil.remoteBranchExists(repo, branchName)) ? repo.remoteName + '/' + branchName : 'master');
+                const diff = yield executil.execHelper(executil.ARGS('git diff ' + targetBranch + '...' + branchName), true);
                 if (diff) {
                     print('------------------------------------------------------------------------------');
                     print('Diff for ' + repo.repoName + ' on branch ' + branchName + ' (vs ' + targetBranch + ')');
diff --git a/src/repo-update.js b/src/repo-update.js
index 9e678b1..501a17b 100644
--- a/src/repo-update.js
+++ b/src/repo-update.js
@@ -17,16 +17,16 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var print = apputil.print;
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const print = apputil.print;
 
 module.exports = function * (_argv) {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerDepthFlag(opt);
     opt = opt
         .options('b', {
@@ -40,7 +40,7 @@ module.exports = function * (_argv) {
             default: true
         });
     opt = flagutil.registerHelpFlag(opt);
-    var argv = opt
+    const argv = opt
         .usage('Updates git repositories by performing the following commands:\n' +
                '    save active branch\n' +
                '    git fetch $REMOTE \n' +
@@ -60,10 +60,10 @@ module.exports = function * (_argv) {
         process.exit(1);
     }
 
-    var depth = argv.depth ? argv.depth : null;
+    const depth = argv.depth ? argv.depth : null;
 
-    var branches = Array.isArray(argv.b) ? argv.b : [argv.b];
-    var repos = flagutil.computeReposFromFlag(argv.r, true);
+    const branches = Array.isArray(argv.b) ? argv.b : [argv.b];
+    const repos = flagutil.computeReposFromFlag(argv.r, true);
     apputil.prefixLength = Math.max.apply(null,
         [apputil.prefixLength].concat(
             repos.map(function (r) { return r.repoName.length + 2; }))
@@ -89,7 +89,7 @@ function * updateRepos (repos, branches, noFetch) {
     });
 
     if (!noFetch) {
-        var fetchPromises = [];
+        const fetchPromises = [];
         yield repoutil.forEachRepo(repos, function * (repo) {
             if (repo.svn) {
                 return;
@@ -104,7 +104,7 @@ function * updateRepos (repos, branches, noFetch) {
     }
 
     if (branches && branches.length) {
-        var errors = '';
+        let errors = '';
         yield repoutil.forEachRepo(repos, function * (repo) {
             if (repo.id === 'firefoxos' && process.platform === 'win32') {
                 console.log('Skipping firefox OS repo on Windows as it fails due to max path length issues');
@@ -121,12 +121,12 @@ function * updateRepos (repos, branches, noFetch) {
                 }
                 return;
             }
-            var staleBranches = {};
-            for (var i = 0; i < branches.length; ++i) {
-                var branchName = branches[i];
+            let staleBranches = {};
+            for (let i = 0; i < branches.length; ++i) {
+                const branchName = branches[i];
                 if (yield gitutil.localBranchExists(branchName)) {
                     if (yield gitutil.remoteBranchExists(repo, branchName)) {
-                        var changes = yield executil.execHelper(executil.ARGS('git log --oneline ' + branchName + '..' + repo.remoteName + '/' + branchName),
+                        const changes = yield executil.execHelper(executil.ARGS('git log --oneline ' + branchName + '..' + repo.remoteName + '/' + branchName),
                             /* silent */ true, /* allowError */ true);
                         staleBranches[branchName] = !!changes;
                     }
@@ -142,11 +142,11 @@ function * updateRepos (repos, branches, noFetch) {
                 print('Already up-to-date: ' + repo.repoName);
             } else {
                 yield gitutil.stashAndPop(repo, function * () {
-                    for (var i = 0; i < staleBranches.length; ++i) {
-                        var branchName = staleBranches[i];
+                    for (let i = 0; i < staleBranches.length; ++i) {
+                        const branchName = staleBranches[i];
                         yield gitutil.gitCheckout(branchName);
                         try {
-                            var ret = yield executil.execHelper(executil.ARGS('git merge --ff-only', repo.remoteName + '/' + branchName),
+                            let ret = yield executil.execHelper(executil.ARGS('git merge --ff-only', repo.remoteName + '/' + branchName),
                                 /* silent */ false, /* allowError */ true);
                             if (ret === null) {
                                 try {
@@ -174,9 +174,9 @@ function * updateRepos (repos, branches, noFetch) {
 module.exports.updateRepos = updateRepos;
 
 function * determineApacheRemote (repo) {
-    var fields = (yield executil.execHelper(executil.ARGS('git remote -v'), true)).split(/\s+/);
+    const fields = (yield executil.execHelper(executil.ARGS('git remote -v'), true)).split(/\s+/);
 
-    var ret = null;
+    let ret = null;
 
     // prefer github - in particular, ASF remote does not respond well to repo-update command.
     [
@@ -185,7 +185,7 @@ function * determineApacheRemote (repo) {
         'git-wip-us.apache.org/repos/asf/',
         'git.apache.org/'
     ].forEach(function (validRepo) {
-        for (var i = 1; i < fields.length; i += 3) {
+        for (let i = 1; i < fields.length; i += 3) {
             if (!ret && fields[i].indexOf(validRepo + repo.repoName) !== -1) {
                 ret = fields[i - 1];
             }
diff --git a/src/repoutil.js b/src/repoutil.js
index 50c9db1..bf0bd60 100644
--- a/src/repoutil.js
+++ b/src/repoutil.js
@@ -17,12 +17,12 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var fs = require('fs');
-var path = require('path');
-var shelljs = require('shelljs');
-var apputil = require('./apputil');
+const fs = require('fs');
+const path = require('path');
+const shelljs = require('shelljs');
+const apputil = require('./apputil');
 
-var platformRepos = [
+const platformRepos = [
     {
         title: 'Android',
         versions: ['4.4', '5.0', '5.1', '6.0', '7.0', '7.1'],
@@ -144,7 +144,7 @@ var platformRepos = [
     }
 ];
 
-var nonPlatformRepos = [
+const nonPlatformRepos = [
     {
         title: 'Docs',
         id: 'docs',
@@ -168,7 +168,7 @@ var nonPlatformRepos = [
     }
 ];
 
-var pluginRepos = [
+const pluginRepos = [
     {
         title: 'Plugin - Battery Status',
         id: 'plugin-battery-status',
@@ -310,7 +310,7 @@ var pluginRepos = [
     }
 ];
 
-var toolRepos = [
+const toolRepos = [
     {
         title: 'Cordova CLI',
         id: 'cli',
@@ -370,7 +370,7 @@ var toolRepos = [
     }
 ];
 
-var otherRepos = [
+const otherRepos = [
     {
         title: 'Cordova Medic',
         id: 'medic',
@@ -435,12 +435,12 @@ var otherRepos = [
     }
 ];
 
-var allRepos = platformRepos.concat(nonPlatformRepos,
+const allRepos = platformRepos.concat(nonPlatformRepos,
     pluginRepos,
     toolRepos,
     otherRepos);
 
-var repoGroups = {
+const repoGroups = {
     all: allRepos,
     platform: platformRepos,
     platforms: platformRepos,
@@ -464,7 +464,7 @@ repoGroups.__defineGetter__('auto', function () {
 exports.repoGroups = repoGroups;
 
 function isInRepoGroup (repoToCheck, groupName) {
-    var repos = repoGroups[groupName];
+    const repos = repoGroups[groupName];
     if (!repos) return false;
     return repos.some(function (repo) {
         return repo.id === repoToCheck.id;
@@ -474,8 +474,8 @@ exports.isInRepoGroup = isInRepoGroup;
 
 function getRepoById (id, opt_repos) {
     // Strip cordova- prefix if it exists.
-    var repos = opt_repos || allRepos;
-    for (var i = 0; i < repos.length; ++i) {
+    const repos = opt_repos || allRepos;
+    for (let i = 0; i < repos.length; ++i) {
         if (repos[i].id === id || repos[i].packageName === id || repos[i].repoName === id) {
             return repos[i];
         }
@@ -484,12 +484,12 @@ function getRepoById (id, opt_repos) {
 }
 exports.getRepoById = getRepoById;
 
-var isInForEachRepoFunction = false;
+let isInForEachRepoFunction = false;
 
 exports.forEachRepo = function * (repos, func) {
-    for (var i = 0; i < repos.length; ++i) {
-        var repo = repos[i];
-        var origPath = isInForEachRepoFunction ? process.cwd() : '..';
+    for (let i = 0; i < repos.length; ++i) {
+        const repo = repos[i];
+        let origPath = isInForEachRepoFunction ? process.cwd() : '..';
 
         // The crazy dance with isInForEachRepoFunction and origPath is needed
         // for nested forEachRepo calls to work. E.g repo-reset calls
@@ -501,7 +501,7 @@ exports.forEachRepo = function * (repos, func) {
         if (repo.id === 'lib') {
             origPath = origPath + '/..';
         }
-        var repoDir = getRepoDir(repo);
+        const repoDir = getRepoDir(repo);
         shelljs.cd(repoDir);
 
         if (shelljs.error()) {
@@ -516,10 +516,10 @@ exports.forEachRepo = function * (repos, func) {
 };
 
 function resolveCwdRepo () {
-    var curPath = apputil.resolveUserSpecifiedPath('.');
-    var prevPath;
+    let curPath = apputil.resolveUserSpecifiedPath('.');
+    let prevPath;
     for (;;) {
-        var value = path.basename(curPath);
+        const value = path.basename(curPath);
         if (getRepoById(value)) {
             return value;
         }
@@ -533,8 +533,8 @@ function resolveCwdRepo () {
 exports.resolveCwdRepo = resolveCwdRepo;
 
 function getRepoDir (repo) {
-    var baseWorkingDir = apputil.getBaseDir();
-    var repoDir = path.join(baseWorkingDir, repo.repoName);
+    const baseWorkingDir = apputil.getBaseDir();
+    let repoDir = path.join(baseWorkingDir, repo.repoName);
     if (repo.path) {
         repoDir = path.join(repoDir, repo.path);
     }
@@ -543,7 +543,7 @@ function getRepoDir (repo) {
 exports.getRepoDir = getRepoDir;
 
 function getRepoIncludePath (repo) {
-    var repoPath = repo.path;
+    const repoPath = repo.path;
     if (!repoPath) {
         return [];
     }
@@ -556,7 +556,7 @@ function getRepoIncludePath (repo) {
 
     // The harder case - this is the main repo. We want to include the repo root folder and the folder pointed to by
     // repo.path, but exclude all module folders.
-    var matchingRepos = allRepos.filter(function (testRepo) {
+    const matchingRepos = allRepos.filter(function (testRepo) {
         return testRepo.isModule && testRepo.repoName === repo.repoName;
     });
 
diff --git a/src/retrieve-sha.js b/src/retrieve-sha.js
index 7024baa..6a6bcc0 100644
--- a/src/retrieve-sha.js
+++ b/src/retrieve-sha.js
@@ -16,11 +16,11 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 */
-var repoutil = require('./repoutil');
-var executil = require('./executil');
+const repoutil = require('./repoutil');
+const executil = require('./executil');
 
 module.exports = function * (repos) {
-    var shas = {};
+    const shas = {};
     yield repoutil.forEachRepo(repos, function * (repo) {
         shas[repo.id] = yield executil.execHelper(executil.ARGS('git rev-parse --short=8 HEAD'), true, true);
     });
diff --git a/src/shortlog.js b/src/shortlog.js
index c1fb5b5..a4d73c1 100644
--- a/src/shortlog.js
+++ b/src/shortlog.js
@@ -17,13 +17,13 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var repoutil = require('./repoutil');
+const optimist = require('optimist');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const repoutil = require('./repoutil');
 
 module.exports = function * () {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerHelpFlag(opt);
     opt.usage('A version of `git shortlog -s` aggregated across multiple repos.\n' +
               '\n' +
@@ -37,27 +37,27 @@ module.exports = function * () {
         optimist.showHelp();
         process.exit(1);
     }
-    var repos = flagutil.computeReposFromFlag(argv.r);
-    var emailFilter = argv.filter && new RegExp(argv.filter);
-    var days = argv.days || 7;
-    var resultsByAuthor = {};
+    const repos = flagutil.computeReposFromFlag(argv.r);
+    const emailFilter = argv.filter && new RegExp(argv.filter);
+    const days = argv.days || 7;
+    const resultsByAuthor = {};
     yield repoutil.forEachRepo(repos, function * (repo) {
-        var cmd = executil.ARGS('git shortlog -s -e --no-merges ', '--since=' + days + ' days ago');
-        var output = yield executil.execHelper(cmd, true);
+        const cmd = executil.ARGS('git shortlog -s -e --no-merges ', '--since=' + days + ' days ago');
+        const output = yield executil.execHelper(cmd, true);
         if (output) {
             output.split(/\n/).forEach(function (line) {
-                var m = /\s*(\d+).*?<(.*?)>/.exec(line);
-                var author = m[2];
-                var count = +m[1];
+                const m = /\s*(\d+).*?<(.*?)>/.exec(line);
+                const author = m[2];
+                const count = +m[1];
                 resultsByAuthor[author] = +(resultsByAuthor[author] || 0) + count;
             });
         }
     });
 
-    var total = 0;
-    var filterTotal = 0;
-    var records = Object.keys(resultsByAuthor).map(function (author) {
-        var count = resultsByAuthor[author];
+    let total = 0;
+    let filterTotal = 0;
+    const records = Object.keys(resultsByAuthor).map(function (author) {
+        const count = resultsByAuthor[author];
         total += count;
         if (emailFilter && emailFilter.exec(author)) {
             filterTotal += count;
diff --git a/src/superspawn.js b/src/superspawn.js
index de35505..9aa6694 100644
--- a/src/superspawn.js
+++ b/src/superspawn.js
@@ -17,15 +17,15 @@
     under the License.
 */
 
-var child_process = require('child_process');
-var fs = require('fs');
-var path = require('path');
-var Q = require('q');
-var shell = require('shelljs');
-var iswin32 = process.platform === 'win32';
+const child_process = require('child_process');
+const fs = require('fs');
+const path = require('path');
+const Q = require('q');
+const shell = require('shelljs');
+const iswin32 = process.platform === 'win32';
 
 function extend (dst, src) {
-    for (var k in src) {
+    for (const k in src) {
         dst[k] = src[k];
     }
     return dst;
@@ -33,7 +33,7 @@ function extend (dst, src) {
 
 // On Windows, spawn() for batch files requires absolute path & having the extension.
 function resolveWindowsExe (cmd) {
-    var winExtensions = ['.exe', '.cmd', '.bat', '.js', '.vbs'];
+    const winExtensions = ['.exe', '.cmd', '.bat', '.js', '.vbs'];
     function isValidExe (c) {
         return winExtensions.indexOf(path.extname(c)) !== -1 && fs.existsSync(c);
     }
@@ -42,6 +42,7 @@ function resolveWindowsExe (cmd) {
     }
     cmd = shell.which(cmd) || cmd;
     if (!isValidExe(cmd)) {
+        // eslint-disable-next-line array-callback-return
         winExtensions.some(function (ext) {
             if (fs.existsSync(cmd + ext)) {
                 cmd = cmd + ext;
@@ -70,8 +71,8 @@ function maybeQuote (a) {
 exports.spawn = function (cmd, args, opts) {
     args = args || [];
     opts = opts || {};
-    var spawnOpts = {};
-    var d = Q.defer();
+    const spawnOpts = {};
+    const d = Q.defer();
 
     if (iswin32) {
         cmd = resolveWindowsExe(cmd);
@@ -88,7 +89,7 @@ exports.spawn = function (cmd, args, opts) {
         }
     }
 
-    var pipeOutput = opts.stdio === 'inherit';
+    const pipeOutput = opts.stdio === 'inherit';
     if (opts.stdio === 'ignore') {
         spawnOpts.stdio = 'ignore';
     } else if (pipeOutput) {
@@ -107,9 +108,9 @@ exports.spawn = function (cmd, args, opts) {
         console.log('Running command: ' + maybeQuote(cmd) + ' ' + args.map(maybeQuote).join(' '));
     }
 
-    var child = child_process.spawn(cmd, args, spawnOpts);
-    var capturedOut = '';
-    var capturedErr = '';
+    const child = child_process.spawn(cmd, args, spawnOpts);
+    let capturedOut = '';
+    let capturedErr = '';
 
     if (child.stdout) {
         child.stdout.setEncoding('utf8');
@@ -132,16 +133,16 @@ exports.spawn = function (cmd, args, opts) {
     function whenDone (arg) {
         child.removeListener('close', whenDone);
         child.removeListener('error', whenDone);
-        var code = typeof arg === 'number' ? arg : arg && arg.code;
+        const code = typeof arg === 'number' ? arg : arg && arg.code;
 
         if (code === 0) {
             d.resolve(capturedOut.trim());
         } else {
-            var errMsg = cmd + ': Command failed with exit code ' + code;
+            let errMsg = cmd + ': Command failed with exit code ' + code;
             if (capturedErr) {
                 errMsg += ' Error output:\n' + capturedErr.trim();
             }
-            var err = new Error(errMsg);
+            const err = new Error(errMsg);
             err.code = code;
             err.output = capturedOut.trim();
             d.reject(err);
diff --git a/src/svnutil.js b/src/svnutil.js
index 28d0ffb..c14983c 100644
--- a/src/svnutil.js
+++ b/src/svnutil.js
@@ -17,7 +17,7 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var executil = require('./executil');
+const executil = require('./executil');
 
 exports.update = function * () {
     yield executil.execHelper(executil.ARGS('svn update'), false, false);
diff --git a/src/update-release-notes.js b/src/update-release-notes.js
index 6fe8c5c..4098497 100644
--- a/src/update-release-notes.js
+++ b/src/update-release-notes.js
@@ -17,21 +17,21 @@
  under the License.
  */
 
-var fs = require('fs');
-var path = require('path');
-var stream = require('stream');
-var optimist = require('optimist');
-var executil = require('./executil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var linkify = require('jira-linkify');
-var co_stream = require('co-stream');
+const fs = require('fs');
+const path = require('path');
+const stream = require('stream');
+const optimist = require('optimist');
+const executil = require('./executil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const linkify = require('jira-linkify');
+const co_stream = require('co-stream');
 
-var relNotesFile = 'RELEASENOTES.md';
+const relNotesFile = 'RELEASENOTES.md';
 
 module.exports = function * () {
-    var opt = flagutil.registerRepoFlag(optimist);
+    let opt = flagutil.registerRepoFlag(optimist);
     opt = flagutil.registerHelpFlag(opt)
         .usage('Updates release notes with commits since the most recent tag.\n' +
         '\n' +
@@ -48,16 +48,16 @@ module.exports = function * () {
         process.exit(1);
     }
 
-    var repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
+    const repos = flagutil.computeReposFromFlag(argv.r, { includeModules: true });
 
     yield repoutil.forEachRepo(repos, function * (repo) {
         // TODO: we should use gitutil.summaryOfChanges here.
-        var cmd = executil.ARGS('git log --topo-order --no-merges');
+        const cmd = executil.ARGS('git log --topo-order --no-merges');
         cmd.push(['--pretty=format:* %s']);
-        var fromTag, toTag, hasOneTag;
+        let fromTag, toTag, hasOneTag;
         hasOneTag = false;
         if (argv['last-two-tags']) {
-            var last_two = (yield gitutil.findMostRecentTag(repo.versionPrefix));
+            const last_two = (yield gitutil.findMostRecentTag(repo.versionPrefix));
             if (last_two) {
                 toTag = last_two[0];
                 if (last_two.length > 1) {
@@ -88,21 +88,21 @@ module.exports = function * () {
         if (!hasOneTag) {
             cmd.push(fromTag + '..' + toTag);
         }
-        var repoDesc = repo.repoName;
+        let repoDesc = repo.repoName;
         if (repo.path) {
             repoDesc += '/' + repo.path;
         }
         console.log('Finding commits in ' + repoDesc + ' from tag ' + fromTag + ' to tag ' + toTag);
-        var output = yield executil.execHelper(cmd.concat(repoutil.getRepoIncludePath(repo)), true);
+        const output = yield executil.execHelper(cmd.concat(repoutil.getRepoIncludePath(repo)), true);
         if (output) {
-            var newVersion;
+            let newVersion;
             if (toTag === 'master') {
                 delete require.cache[path.join(process.cwd(), 'package.json')];
                 newVersion = require(path.join(process.cwd(), 'package.json')).version;
             } else {
                 newVersion = toTag;
             }
-            var final_notes = yield createNotes(repo, newVersion, output, argv['override-date']);
+            const final_notes = yield createNotes(repo, newVersion, output, argv['override-date']);
             fs.writeFileSync(relNotesFile, final_notes, { encoding: 'utf8' });
             return linkify.file(relNotesFile);
         }
@@ -117,18 +117,18 @@ function bold (text, token) {
     return text.replace(new RegExp(' ' + token, 'gi'), ' **' + token + '**');
 }
 
-var GITHUB_CLOSE_COMMIT_MSG = /^\*\s+Closes?\s+\#\d+$/gi; // eslint-disable-line no-useless-escape
-var VIA_COHO_COMMIT_MSG = /\(via coho\)/gi;
+const GITHUB_CLOSE_COMMIT_MSG = /^\*\s+Closes?\s+\#\d+$/gi; // eslint-disable-line no-useless-escape
+const VIA_COHO_COMMIT_MSG = /\(via coho\)/gi;
 
 function * createNotes (repo, newVersion, changes, overrideDate) {
     // pump changes through JIRA linkifier first through a stream pipe
-    var transformer = linkify.stream('CB');
-    var read = new stream.Readable();
+    const transformer = linkify.stream('CB');
+    const read = new stream.Readable();
     read._read = function () {};// noop
     read.push(changes);
     read.push(null);
-    var write = new stream.Writable();
-    var data = '';
+    const write = new stream.Writable();
+    let data = '';
     write._write = function (chunk, encoding, done) {
         data += chunk.toString();
         done();
@@ -136,7 +136,7 @@ function * createNotes (repo, newVersion, changes, overrideDate) {
     read.pipe(transformer).pipe(write);
     yield co_stream.wait(write); // wait for the writable stream to finish/end
     // remove any commit logs in the form "Close #xxx", used for closing github pull requests.
-    var lines = data.split('\n');
+    const lines = data.split('\n');
     data = lines.filter(function (line) {
         return !(
             line.match(GITHUB_CLOSE_COMMIT_MSG) ||
@@ -152,7 +152,7 @@ function * createNotes (repo, newVersion, changes, overrideDate) {
         data = backtick(data, platform_name);
     });
     // bold platform labels (with optional version numbers, too)
-    var version_labels = [];
+    const version_labels = [];
     repoutil.repoGroups.platforms.filter(function (p) {
         // first only pull out the platform repos that we have explicitly labeled with nice version strings
         return p.versions && p.versions.length;
@@ -169,7 +169,7 @@ function * createNotes (repo, newVersion, changes, overrideDate) {
         data = bold(data, platform);
     });
     // then interpolate linkified changes into existing release notes and compose the final release notes string
-    var relNotesData;
+    let relNotesData;
     // if being run in cordova directy, cd into repo
     if (path.basename(process.cwd()) === 'cordova') {
         relNotesData = fs.readFileSync(path.join(process.cwd(), repo, relNotesFile), { encoding: 'utf8' });
@@ -177,8 +177,8 @@ function * createNotes (repo, newVersion, changes, overrideDate) {
         // being run in repo directory (Eg cordova/cordova-plugin-device)
         relNotesData = fs.readFileSync(path.join(process.cwd(), relNotesFile), { encoding: 'utf8' });
     }
-    var headerPos = relNotesData.indexOf('### ');
-    var date;
+    const headerPos = relNotesData.indexOf('### ');
+    let date;
     if (overrideDate) {
         date = new Date(overrideDate).toDateString().split(' ');
     } else {
diff --git a/src/verify-tags.js b/src/verify-tags.js
index 003aa2d..20e80ef 100644
--- a/src/verify-tags.js
+++ b/src/verify-tags.js
@@ -17,23 +17,23 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var optimist = require('optimist');
-var apputil = require('./apputil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
-var chalk = require('chalk');
-var Q = require('q');
-var readline = require('readline');
+const optimist = require('optimist');
+const apputil = require('./apputil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
+const chalk = require('chalk');
+const Q = require('q');
+const readline = require('readline');
 
 function readInput () {
-    var ret = Q.defer();
+    const ret = Q.defer();
 
-    var rl = readline.createInterface({
+    const rl = readline.createInterface({
         input: process.stdin
     });
 
-    var data = '';
+    let data = '';
     rl.on('line', function (line) {
         if (line) {
             data += line + '\n';
@@ -49,8 +49,8 @@ function readInput () {
 }
 
 exports.createCommand = function * (argv) {
-    var opt = flagutil.registerHelpFlag(optimist);
-    var argv = opt // eslint-disable-line
+    const opt = flagutil.registerHelpFlag(optimist);
+    argv = opt // eslint-disable-line
         .usage('Makes sure the given hashs match the tags.\n' +
                'Paste the output of the `print-tags` into this command to verify.\n' +
                'e.g.:     cordova-plugin-camera: 0.3.0 (4fa934e06f)\n' +
@@ -66,20 +66,20 @@ exports.createCommand = function * (argv) {
         console.log('Paste in print-tags output then hit Enter');
     }
 
-    var input = yield readInput();
-    var pattern = /\s*(cordova-.+?):\s*(.*?)\s+\((.*?)\)/g;
-    var m;
-    var results = [];
+    const input = yield readInput();
+    const pattern = /\s*(cordova-.+?):\s*(.*?)\s+\((.*?)\)/g;
+    let m;
+    const results = [];
     while (m = pattern.exec(input)) { // eslint-disable-line no-cond-assign
         results.push({ repoId: m[1], tagName: m[2], hash: m[3] });
     }
     if (results.length === 0) {
         apputil.fatal('Error processing input.');
     }
-    var hadErrors = false;
-    for (var i = 0, entry; entry = results[i]; ++i) { // eslint-disable-line no-cond-assign
+    let hadErrors = false;
+    for (let i = 0, entry; entry = results[i]; ++i) { // eslint-disable-line no-cond-assign
         yield repoutil.forEachRepo([repoutil.getRepoById(entry.repoId)], function * (repo) {
-            var foundHash = yield gitutil.hashForRef(entry.tagName);
+            let foundHash = yield gitutil.hashForRef(entry.tagName);
             if (!foundHash) {
                 // Plugins have a prefixed 'r'
                 foundHash = yield gitutil.hashForRef('r' + entry.tagName);
diff --git a/src/versionutil.js b/src/versionutil.js
index 2b62e09..05bddd5 100644
--- a/src/versionutil.js
+++ b/src/versionutil.js
@@ -17,21 +17,21 @@ specific language governing permissions and limitations
 under the License.
 */
 
-var fs = require('fs');
-var path = require('path');
-var glob = require('glob');
-var shelljs = require('shelljs');
-var xml2js = require('xml2js');
-var apputil = require('./apputil');
-var flagutil = require('./flagutil');
-var gitutil = require('./gitutil');
-var repoutil = require('./repoutil');
+const fs = require('fs');
+const path = require('path');
+const glob = require('glob');
+const shelljs = require('shelljs');
+const xml2js = require('xml2js');
+const apputil = require('./apputil');
+const flagutil = require('./flagutil');
+const gitutil = require('./gitutil');
+const repoutil = require('./repoutil');
 
 function * getRepoVersion (repo) {
-    var version;
+    let version;
     yield repoutil.forEachRepo([repo], function * () {
-        var platformPackage = path.join(process.cwd(), 'package.json');
-        var platformPackageJson = require(platformPackage);
+        const platformPackage = path.join(process.cwd(), 'package.json');
+        const platformPackageJson = require(platformPackage);
         version = platformPackageJson.version;
     });
     return version;
@@ -40,7 +40,7 @@ function * getRepoVersion (repo) {
 exports.getRepoVersion = getRepoVersion;
 
 function removeDev (version) {
-    var newVersion = version.replace('-dev', '');
+    const newVersion = version.replace('-dev', '');
     return newVersion;
 }
 exports.removeDev = removeDev;
@@ -50,15 +50,15 @@ exports.removeDev = removeDev;
 // and the new version as value
 // ex {android:4.0.0}
 function updatePlatformsConfig (newValues) {
-    var platformsConfig = path.join(repoutil.getRepoDir(repoutil.getRepoById('lib')),
+    const platformsConfig = path.join(repoutil.getRepoDir(repoutil.getRepoById('lib')),
         'src/platforms/platformsConfig.json');
-    var platformsJS = require(platformsConfig);
+    const platformsJS = require(platformsConfig);
 
     flagutil.computeReposFromFlag('active-platform')
         .forEach(function (repo) {
             if (newValues[repo.id]) {
             // For blackberry platformsConfig.json uses 'blackberry10' key
-                var correctRepoId = (repo.id === 'blackberry') ? 'blackberry10' : repo.id;
+                const correctRepoId = (repo.id === 'blackberry') ? 'blackberry10' : repo.id;
                 platformsJS[correctRepoId].version = newValues[repo.id];
             }
         });
@@ -91,8 +91,8 @@ exports.updateRepoVersion = function * updateRepoVersion (repo, version, opts) {
     // Update the VERSION files.
     // TODO: why do we read files asynchronously in this function, but write
     // and check for existence synchronously?
-    var versionFilePaths = repo.versionFilePaths || ['VERSION'];
-    var isPlatformRepo = !!repoutil.isInRepoGroup(repo, 'platform');
+    const versionFilePaths = repo.versionFilePaths || ['VERSION'];
+    const isPlatformRepo = !!repoutil.isInRepoGroup(repo, 'platform');
     if (isPlatformRepo && fs.existsSync(versionFilePaths[0])) {
         versionFilePaths.forEach(function (versionFilePath) {
             fs.writeFileSync(versionFilePath, version + '\n');
@@ -128,10 +128,10 @@ exports.updateRepoVersion = function * updateRepoVersion (repo, version, opts) {
     }
 
     // Update the package.json VERSION.
-    var packageFilePaths = repo.packageFilePaths || ['package.json'];
+    const packageFilePaths = repo.packageFilePaths || ['package.json'];
     if (fs.existsSync(packageFilePaths[0])) {
-        var data = fs.readFileSync(packageFilePaths[0], { encoding: 'utf-8' });
-        var packageJSON = JSON.parse(data);
+        const data = fs.readFileSync(packageFilePaths[0], { encoding: 'utf-8' });
+        const packageJSON = JSON.parse(data);
         packageJSON.version = version;
         // use 2 spaces indent similar to npm
         fs.writeFileSync(packageFilePaths[0], JSON.stringify(packageJSON, null, 2) + '\n');
@@ -143,15 +143,15 @@ exports.updateRepoVersion = function * updateRepoVersion (repo, version, opts) {
     }
 
     // Update the plugin.xml(s)
-    var isPluginRepo = !!repoutil.isInRepoGroup(repo, 'plugins');
+    const isPluginRepo = !!repoutil.isInRepoGroup(repo, 'plugins');
     if (isPluginRepo) {
-        var xmlFilePaths = repo.xmlFilePaths || ['plugin.xml', 'tests/plugin.xml'];
+        const xmlFilePaths = repo.xmlFilePaths || ['plugin.xml', 'tests/plugin.xml'];
         xmlFilePaths.forEach(function (xmlFile) {
             if (fs.existsSync(xmlFile)) {
-                var data = fs.readFileSync(xmlFile, { encoding: 'utf-8' });
+                const data = fs.readFileSync(xmlFile, { encoding: 'utf-8' });
                 xml2js.parseString(data, { async: false }, function (err, xml) {
                     if (err) throw err;
-                    var prev_version = xml.plugin.$.version;
+                    const prev_version = xml.plugin.$.version;
                     shelljs.sed('-i', new RegExp('version="' + prev_version + '"', 'i'), 'version="' + version + '"', xmlFile);
                 });
             } else {
@@ -163,7 +163,7 @@ exports.updateRepoVersion = function * updateRepoVersion (repo, version, opts) {
         }
     }
 
-    var commitChanges = !!(opts ? opts.commitChanges : true);
+    const commitChanges = !!(opts ? opts.commitChanges : true);
     if (commitChanges && (yield gitutil.pendingChangesExist())) {
         yield gitutil.commitChanges('Set VERSION to ' + version + ' (via coho)');
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org