You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2017/02/02 00:20:58 UTC
cordova-coho git commit: added createNewBranch gitutil. added
getReleaseBranchFromVersion versionutil. platform release uses new
getReleaseBranchFromVersion method. determine whether plugin repos have
release branch in them or not, and prompt user to man
Repository: cordova-coho
Updated Branches:
refs/heads/plugins-releaser 11a5e301e -> 8aa1f7f16
added createNewBranch gitutil. added getReleaseBranchFromVersion versionutil. platform release uses new getReleaseBranchFromVersion method. determine whether plugin repos have release branch in them or not, and prompt user to manually merge/cherry-pick in the case that release branch already exists, otherwise, create the release branch.
Project: http://git-wip-us.apache.org/repos/asf/cordova-coho/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-coho/commit/8aa1f7f1
Tree: http://git-wip-us.apache.org/repos/asf/cordova-coho/tree/8aa1f7f1
Diff: http://git-wip-us.apache.org/repos/asf/cordova-coho/diff/8aa1f7f1
Branch: refs/heads/plugins-releaser
Commit: 8aa1f7f16e79e6a0d8a9cfc064241dfa18408c92
Parents: 11a5e30
Author: filmaj <ma...@gmail.com>
Authored: Wed Feb 1 16:20:50 2017 -0800
Committer: filmaj <ma...@gmail.com>
Committed: Wed Feb 1 16:20:50 2017 -0800
----------------------------------------------------------------------
src/gitutil.js | 4 ++++
src/platform-release.js | 11 ++-------
src/plugin-release.js | 55 ++++++++++++++++++++++++++++++++------------
src/versionutil.js | 7 ++++++
4 files changed, 53 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-coho/blob/8aa1f7f1/src/gitutil.js
----------------------------------------------------------------------
diff --git a/src/gitutil.js b/src/gitutil.js
index 058ff96..dcc7fcd 100644
--- a/src/gitutil.js
+++ b/src/gitutil.js
@@ -136,6 +136,10 @@ exports.gitCheckout = function*(branchName) {
}
}
+exports.createNewBranch = function*(branchName) {
+ return yield executil.execHelper(executil.ARGS('git branch ', branchName));
+}
+
exports.localBranchExists = function*(name) {
return !!(yield executil.execHelper(executil.ARGS('git branch --list ' + name), true));
}
http://git-wip-us.apache.org/repos/asf/cordova-coho/blob/8aa1f7f1/src/platform-release.js
----------------------------------------------------------------------
diff --git a/src/platform-release.js b/src/platform-release.js
index 3ea90b1..9e9df33 100644
--- a/src/platform-release.js
+++ b/src/platform-release.js
@@ -43,13 +43,6 @@ function createPlatformDevVersion(version) {
return parts.join('.') + '-dev';
}
-function getVersionBranchName(version) {
- if (/-dev$/.test(version)) {
- return 'master';
- }
- return version.replace(/\d+(-?rc\d)?$/, 'x');
-}
-
function cpAndLog(src, dest) {
print('Coping File:', src, '->', dest);
// Throws upon failure.
@@ -215,7 +208,7 @@ exports.prepareReleaseBranchCommand = function*() {
yield repoutil.forEachRepo(repos, function*(repo) {
var platform = repo.id;
var version = yield handleVersion(repo, argv.version,true);
- var branchName = getVersionBranchName(version);
+ var branchName = versionutil.getReleaseBranchNameFromVersion(version);
yield gitutil.stashAndPop(repo, function*() {
// git fetch + update master
@@ -296,7 +289,7 @@ exports.tagReleaseBranchCommand = function*(argv) {
var repos = flagutil.computeReposFromFlag(argv.r);
var version = flagutil.validateVersionString(argv.version);
var pretend = argv.pretend;
- var branchName = getVersionBranchName(version);
+ var branchName = versionutil.getReleaseBranchNameFromVersion(version);
// First - perform precondition checks.
yield repoupdate.updateRepos(repos, [], true);
http://git-wip-us.apache.org/repos/asf/cordova-coho/blob/8aa1f7f1/src/plugin-release.js
----------------------------------------------------------------------
diff --git a/src/plugin-release.js b/src/plugin-release.js
index 2a0a7e4..6b64b2a 100644
--- a/src/plugin-release.js
+++ b/src/plugin-release.js
@@ -359,31 +359,63 @@ function *interactive_plugins_release() {
console.log('Writing out new release notes and plugin versions (if applicable)...');
yield repoutil.forEachRepo(plugin_repos, function*(repo) {
var plugin_name = repo.repoName;
- if (plugin_data[repo.repoName].current_release != release_notes[plugin_name + '-version']) {
+ if (plugin_data[plugin_name].current_release != release_notes[plugin_name + '-version']) {
// Overwrite plugin version if, after release notes review, RM decided on a different version.
- plugin_data[repo.repoName].current_release = release_notes[plugin_name + '-version'];
- yield versionutil.updateRepoVersion(repo, plugin_data[repo.repoName].current_release, {commitChanges:false});
+ plugin_data[plugin_name].current_release = release_notes[plugin_name + '-version'];
+ yield versionutil.updateRepoVersion(repo, plugin_data[plugin_name].current_release, {commitChanges:false});
}
fs.writeFileSync(tweak_release_notes.FILE, release_notes[plugin_name], {encoding: 'utf8'});
linkify.file(tweak_release_notes.FILE);
/* - commit changes to versions and release notes together with description '$JIRA Updated version and release notes for release $v'
* - tag each plugin repo with $v*/
if (yield gitutil.pendingChangesExist()) {
- yield gitutil.commitChanges(plugins_release_issue.key + ' Updated version and RELEASENOTES.md for release ' + plugin_data[repo.repoName].current_release);
- yield gitutil.tagRepo(plugin_data[repo.repoName].current_release);
+ yield gitutil.commitChanges(plugins_release_issue.key + ' Updated version and RELEASENOTES.md for release ' + plugin_data[plugin_name].current_release);
+ yield gitutil.tagRepo(plugin_data[plugin_name].current_release);
} else {
- console.warn('No pending changes detected for ' + repo.repoName + '; that\'s probably not good eh?');
+ console.warn('No pending changes detected for ' + plugin_name + '; that\'s probably not good eh?');
}
});
})();
+ }).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 = [];
+ 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);
+ if (yield gitutil.remoteBranchExists(repo, release_branch_name)) {
+ repos_with_existing_release_branch.push(repo);
+ } else {
+ yield gitutil.createNewBranch(release_branch_name);
+ console.log('Created branch', release_branch_name, 'in repo', plugin_name);
+ }
+ });
+ })();
+ }).then(function(repos_with_existing_release_branch) {
+ // Here we are passed an array of repos that already had release branches created prior to starting the release process here.
+ // Our mission in this clause, should we choose to accept it, is to merge master back into the branch. But, this can be dangerous!
+ // Should we ask the user to handle the merge / cherry pick, then? Or should we merge automatically?
+ console.warn('Some release branches already exist!');
+ console.warn('You will need to handle these repos manually!');
+ var prompts = [];
+ repos_with_existing_branch_name.forEach(function(repo) {
+ var plugin_name = repo.repoName;
+ var rb = versionutil.getReleaseBranchFromVersion(plugin_data[plugin_name].current_version)
+ prompts.push({
+ type: 'confirm',
+ name: 'rb_proceed_' + plugin_name,
+ message: plugin_name + ' already has an existing release branch ' + rb + '. You will need to manually merge or cherry-pick the master branch into the ' + rb + ' branch. Once you have done this (probably in a separate shell or command prompt), hit Enter to continue.'
+ });
+ });
+ return inquirer.prompt(prompts);
});
}, function(auth_err) {
var keys = Object.keys(auth_err);
console.error('ERROR! There was a problem connecting to JIRA, received a', auth_err.statusCode, 'status code.');
process.exit(1);
});
- /* 10. Create release branch. if this is a patch release, it may already exist! in that case, merge master back into this existing release branch.
- * 11. Increment plugin versions back on the master branch to include -dev.. i think?
+ /* 11. Increment plugin versions back on the master branch to include -dev
* 12. Push tags, release branch, and master branch changes.
* 13. Publish to apache svn:
* - repo-clone the dist and dist/dev svn repos
@@ -424,13 +456,6 @@ function createPlatformDevVersion(version) {
return parts.join('.') + '-dev';
}
-function getVersionBranchName(version) {
- if (/-dev$/.test(version)) {
- return 'master';
- }
- return version.replace(/\d+(-?rc\d)?$/, 'x');
-}
-
function cpAndLog(src, dest) {
print('Coping File:', src, '->', dest);
// Throws upon failure.
http://git-wip-us.apache.org/repos/asf/cordova-coho/blob/8aa1f7f1/src/versionutil.js
----------------------------------------------------------------------
diff --git a/src/versionutil.js b/src/versionutil.js
index 840fecb..72c2700 100644
--- a/src/versionutil.js
+++ b/src/versionutil.js
@@ -70,6 +70,13 @@ function updatePlatformsConfig(newValues) {
}
exports.updatePlatformsConfig = updatePlatformsConfig;
+exports.getReleaseBranchNameFromVersion = function(version) {
+ if (/-dev$/.test(version)) {
+ return 'master';
+ }
+ return version.replace(/\d+(-?rc\d)?$/, 'x');
+}
+
/**
* Updates VERSION file, version executable script, package.json and
* plugin.xml(s) using specified version. Also commits change made to the repo
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org