Differences between revisions 8 and 9
Revision 8 as of 2013-09-06 05:16:55
Size: 3559
Editor: AndrewGrieve
Comment:
Revision 9 as of 2013-09-17 15:42:45
Size: 3588
Editor: AndrewGrieve
Comment:
Deletions are marked like this. Additions are marked like this.
Line 26: Line 26:
== Update Changelog & Version == == Update RELEASENOTES.md & Version ==
Line 28: Line 28:
   a. Update its CHANGELOG.md file with changes    a. Update its RELEASENOTES.md file with changes
Line 34: Line 34:
  # Copy & paste into CHANGELOG.md   # Copy & paste into RELEASENOTES.md
Line 36: Line 36:
  git commit -am "[CB-####] Updated version and changelog for release ''$VERSION''"   git commit -am "[CB-####] Updated version and RELEASENOTES.md for release ''$VERSION''"
Line 60: Line 60:
 * Run through mobilespec, ensuring to do manual tests that relate to changes in the changelog  * Run through mobilespec, ensuring to do manual tests that relate to changes in the RELEASENOTES.md
Line 63: Line 63:
 * Combine highlights from changelogs into a Release Announcement blog post  * Combine highlights from RELEASENOTES.md into a Release Announcement blog post

Release Process for ''Core Plugins''

Core Plugins are released at most weekly (see: VersioningAndReleaseStrategy).

A plugins release is performed by a single person each week. We call this person the "Plugins Release Master" :). How to select the Plugins Release Master is still TDB.

Get Buy-in

  1. Email the dev mailing-list and see if anyone has reason to postpone the release.
    • If so, agree upon a branching date / time.

Create JIRA issues

  • Create a JIRA issue to track the status of the release.
    • Comments should be added to this bug after each top-level step below is taken

Identify which plugins have changes

  ./cordova-coho/coho repo-update -r plugins
  ./cordova-coho/coho repo-status -r plugins -b dev --branch2 master --no-diff | grep "Commits exist"
  • Add a comment to the JIRA issue stating which plugins had commits

Update RELEASENOTES.md & Version

  • For each plugin that has unreleased commits:
    1. Update its RELEASENOTES.md file with changes
    2. Increase the plugin's version within plugin.xml using SemVer (deduce the semantic effect on version), and remove the -dev suffix.

    3. Commit these two changes together to the dev branch

  git log --pretty=format:'* %s' --topo-order --no-merges master..dev
  # Copy & paste into RELEASENOTES.md
  # Edit version within plugin.xml based off of changes.
  git commit -am "[CB-####] Updated version and RELEASENOTES.md for release ''$VERSION''"

Merge Changes into master & tag

  ./cordova-coho/coho foreach -r plugins "git checkout master"
  ./cordova-coho/coho foreach -r plugins "git merge dev --ff-only"
  for l in cordova-plugin-*; do ( cd $l; v="r$(grep version= plugin.xml | grep -v xml | cut -d'"' -f2)"; echo "Tagging $l to $v"; git tag "$v" ); done

Update dev branch's version

  • For each plugin that had unreleased commits:
    • Rationale: So that the version on dev is greater than the version on master.

  ./cordova-coho/coho foreach -r plugins "git checkout dev"
  for l in cordova-plugin-*; do ( cd $l; v="$(grep version= plugin.xml | grep -v xml | cut -d'"' -f2)"; if [[ $v != *-dev ]]; then v2="$(echo $v|awk -F"." '{$NF+=1}{print $0RT}' OFS="." ORS="")-dev"; echo "$l: Setting version to $v2"; sed -i '' -E s:"version=\"$v\":version=\"$v2\":" plugin.xml; fi) ; done
  ./cordova-coho/coho foreach -r plugins "git commit -am '[CB-####] Incremented plugin version on dev branch.'"

Test

  • Create mobilespec using the old versions of plugins (by checking them out to the previous tag)
  • Perform a "plugin upgrade" for plugins that have changes
    • Right now, this means doing a plugin remove followed by a plugin add

  • Run through mobilespec, ensuring to do manual tests that relate to changes in the RELEASENOTES.md

Prepare Blog Post

  • Combine highlights from RELEASENOTES.md into a Release Announcement blog post
  • Get blog post proof-read.

Push!

  # Blog Post:
  svn commit
  # Plugin Changes:
  ./cordova-coho/coho repo-status -r plugins -b dev -b master  
  ./cordova-coho/coho repo-push -r plugins -b dev -b master
  ./cordova-coho/coho foreach -r plugins "git push --tags"

Close JIRA Issue

  • Double check that the issue has comments that record the steps you took
  • Mark it as fixed

Finally:

  • Update *these wiki instructions* if they were missing anything.

StepsForPluginRelease (last edited 2014-03-05 21:03:47 by AndrewGrieve)