Return-Path: X-Original-To: apmail-cordova-commits-archive@www.apache.org Delivered-To: apmail-cordova-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B012F10E77 for ; Wed, 5 Mar 2014 21:06:03 +0000 (UTC) Received: (qmail 58251 invoked by uid 500); 5 Mar 2014 21:06:03 -0000 Delivered-To: apmail-cordova-commits-archive@cordova.apache.org Received: (qmail 58194 invoked by uid 500); 5 Mar 2014 21:06:03 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 58187 invoked by uid 99); 5 Mar 2014 21:06:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Mar 2014 21:06:03 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.131] (HELO eos.apache.org) (140.211.11.131) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Mar 2014 21:06:01 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id 479CAE55 for ; Wed, 5 Mar 2014 21:05:41 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Apache Wiki To: Apache Wiki Date: Wed, 05 Mar 2014 21:05:41 -0000 Message-ID: <20140305210541.86975.53306@eos.apache.org> Subject: =?utf-8?q?=5BCordova_Wiki=5D_Update_of_=22StepsForPluginRelease=22_by_And?= =?utf-8?q?rewGrieve?= Auto-Submitted: auto-generated X-Virus-Checked: Checked by ClamAV on apache.org Dear Wiki user, You have subscribed to a wiki page or wiki category on "Cordova Wiki" for c= hange notification. The "StepsForPluginRelease" page has been changed by AndrewGrieve: https://wiki.apache.org/cordova/StepsForPluginRelease?action=3Ddiff&rev1=3D= 33&rev2=3D34 - =3D Release Process for ''Core Plugins'' =3D + Moved to: [[https://github.com/apache/cordova-coho/blob/master/docs/plugi= ns-release-process.md]] = - Before cutting any releases, read the Apache's [[http://www.apache.org/de= v/release|Releases Policy]] - = - Core Plugins are released at most weekly (see: VersioningAndReleaseStrate= gy). - = - 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. = - = - TODO: add in RAT instruction (via coho) for next release - = - =3D=3D Get Buy-in =3D=3D - = - 1. Email the dev mailing-list and see if anyone has reason to postpone t= he release. - * If so, agree upon a branching date / time. - = - =3D=3D Create JIRA issues =3D=3D - = - * Create a JIRA issue to track the status of the release. - * Make it of type "Task" - * Title should be "Plugins Release _Feb 2, 2014_" - * Description should be: "Following steps at https://wiki.apache.org/c= ordova/StepsForPluginRelease" - * Comments should be added to this bug after each top-level step below i= s taken - * Set a variable for use later on: - {{{ - JIRA=3D"CB-????" # Set this to the release bug. - }}} - = - =3D=3D Make sure you're up-to-date =3D=3D - {{{ - # Should show no changes: - ./cordova-coho/coho repo-status -r plugins -b dev -b master - ./cordova-coho/coho repo-update -r plugins - ./cordova-coho/coho foreach -r plugins "git checkout dev" - # Merge any commits mistakenly made to master into dev: - (for l in cordova-plugin-*; do ( cd $l; git merge master ); done - # Sanity check and push if needed: - ./cordova-coho/coho repo-status -r plugins -b dev - ./cordova-coho/coho repo-push -r plugins -b dev - }}} = - = - =3D=3D Identify which plugins have changes =3D=3D - = - {{{ - ./cordova-coho/coho repo-update -r plugins - ./cordova-coho/coho foreach -r plugins "git checkout dev" - ACTIVE=3D$(for l in cordova-plugin-*; do ( cd $l; git log --pretty=3Dfo= rmat:'* %s' --topo-order --no-merges master..dev | grep -v "Incremented plu= gin version" > /dev/null && echo $l); done | xargs echo) - }}} - = - =3D=3D Update RELEASENOTES.md & Version =3D=3D - * For each plugin that has unreleased commits: - a. Remove the ''-dev'' suffix on the version in plugin.xml. - {{{ - for l in $ACTIVE; do ( cd $l; v=3D"$(grep version=3D plugin.xml | grep -v= xml | head -n1 | cut -d'"' -f2)"; if [[ $v =3D *-dev ]]; then v2=3D"${v%-d= ev}"; echo "$l: Setting version to $v2"; sed -i '' -E s:"version=3D\"$v\":v= ersion=3D\"$v2\":" plugin.xml; fi) ; done - }}} - a. If the changes merit it, manually bump the major / minor version in= stead of the micro. Manual process, but list the changes via: - {{{ - for l in $ACTIVE; do ( cd $l; echo $l; git log --pretty=3Dformat:'* %s' -= -topo-order --no-merges master..dev | grep -v "Incremented plugin version" = ); done - }}} - = - a. Update its RELEASENOTES.md file with changes - {{{ - # Add new heading to release notes with version and date - DATE=3D$(date "+%h %d, %Y") - for l in $ACTIVE; do ( cd $l; v=3D"$(grep version=3D plugin.xml | grep = -v xml | head -n1 | cut -d'"' -f2)"; echo -e "\n### $v ($DATE)" >> RELEASEN= OTES.md; git log --pretty=3Dformat:'* %s' --topo-order --no-merges master..= dev | grep -v "Incremented plugin version" >> RELEASENOTES.md); done - # Then curate: - vim ${ACTIVE// //RELEASENOTES.md }/RELEASENOTES.md - }}} - = - a. Add a comment to the JIRA issue with the output from: - {{{ - for l in $ACTIVE; do ( cd $l; id=3D"$(grep id=3D plugin.xml | grep -v xml= | grep -v engine | grep -v param | head -1 | cut -d'"' -f2)"; v=3D"$(grep = version=3D plugin.xml | grep -v xml | head -n1 | cut -d'"' -f2)"; echo $id@= $v; awk "{ if (p) print } /$DATE/ { p =3D 1 } " < RELEASENOTES.md; echo); d= one - }}} - = - a. Commit these two changes together to the `dev` branch - {{{ - for l in $ACTIVE; do ( cd $l; v=3D"$(grep version=3D plugin.xml | grep = -v xml | head -n1 | cut -d'"' -f2)"; git commit -am "$JIRA Updated version = and RELEASENOTES.md for release $v"); done - }}} - = - = - =3D=3D Tag on Dev Branch =3D=3D - {{{ - for l in $ACTIVE; do ( cd $l; v=3D"r$(grep version=3D plugin.xml | grep= -v xml | head -n1 | cut -d'"' -f2)"; echo "Tagging $l to $v"; git tag "$v"= ); done - }}} - = - =3D=3D Update dev branch's version =3D=3D - * For each plugin that had unreleased commits: - * Rationale: So that the version on dev is greater than the version on= master. - {{{ - for l in $ACTIVE; do ( cd $l; v=3D"$(grep version=3D plugin.xml | grep = -v xml | head -n1 | cut -d'"' -f2)"; if [[ $v !=3D *-dev ]]; then v2=3D"$(e= cho $v|awk -F"." '{$NF+=3D1}{print $0RT}' OFS=3D"." ORS=3D"")-dev"; echo "$= l: Setting version to $v2"; sed -i '' -E s:"version=3D\"$v\":version=3D\"$v= 2\":" plugin.xml; fi) ; done - for l in $ACTIVE; do (cd $l; git commit -am "$JIRA Incremented plugin v= ersion on dev branch." ); done - }}} - = - =3D=3D Test =3D=3D - * Create mobilespec using the old versions of plugins (by checking them = out to the previous tag) - * Run through mobilespec, ensuring to do manual tests that relate to cha= nges in the RELEASENOTES.md - = - =3D=3D Push Dev Branch =3D=3D - {{{ - # Sanity check: - ./cordova-coho/coho repo-status -r plugins -b dev - # Push: - for l in $ACTIVE; do ( cd $l; git push --tags https://git-wip-us.apache= .org/repos/asf/$l.git dev); done - }}} - = - =3D=3D Publish to dist/dev =3D=3D - 1. Ensure you have the svn repos checked out: - {{{ - ./cordova-coho/coho repo-clone -r dist -r dist/dev - }}} - 2. Create archives from your tags: - {{{ - ./cordova-coho/coho create-archive -r ${ACTIVE// / -r } --dest cordova-di= st-dev/$JIRA - }}} - 3. Sanity Check: - {{{ - # Manually double check version numbers are correct on the file names - # Then run: - ./cordova-coho/coho verify-archive cordova-dist-dev/$JIRA/*.zip - }}} - 4. Upload: - {{{ - cd cordova-dist-dev && svn up && svn add $JIRA && svn commit -m "$JIRA Up= loading release candidates for plugins release" - }}} - 5. Find your release here: [[https://dist.apache.org/repos/dist/dev/cordo= va/]] - = - =3D=3D Prepare Blog Post =3D=3D - * Combine highlights from RELEASENOTES.md into a Release Announcement bl= og post - * Instructions on [[https://svn.apache.org/repos/asf/cordova/site/READ= ME.md|sites page README]] - * Get blog post proof-read. - = - =3D=3D Start VOTE Thread =3D=3D - Send an email to dev ML with: - = - Subject: = - {{{ - [Vote] Plugins Release - }}} - Body: - {{{ - Please review and vote on the release of this plugins release. - = - Release issue: https://issues.apache.org/jira/browse/CB-XXXX - = - The plugins have been published to dist/dev: - https://dist.apache.org/repos/dist/dev/cordova/CB-XXXX/ - = - The packages were published from their corresponding git tags: - PASTE OUTPUT OF: ./cordova-coho/coho print-tags -r ${ACTIVE// / -r } - = - Upon a successful vote I will upload the archives to dist/, upload them t= o the Plugins Registry, and post the corresponding blog post. - = - Voting will go on for a minimum of 48 hours. = - = - I vote +1. - }}} - = - = - =3D=3D Email the result of the vote =3D=3D - * Respond to the vote thread with: - * Note: list of PMC members: http://people.apache.org/committers-by-pro= ject.html#cordova-pmc - {{{ - The vote has now closed. The results are: - = - Positive Binding Votes: (# of PMC members that +1'ed) - = - .. names of all +1 PMC members .. - = - Negative Binding Votes: (# of PMC members that -1'ed) - = - .. names of all -1 PMC members .. - = - The vote has passed. - }}} - = - =3D=3D If the Vote does *not* Pass =3D=3D - * Revert adding of `-dev` on dev branch - * Address the concerns (on dev branch) - * Merge changes into master - * Re-tag release using git tag -f - * Add back `-dev` - * Start a new vote - = - =3D=3D Otherwise: Merge & Push Master Branch =3D=3D - {{{ - for l in $ACTIVE; do ( cd $l; git checkout master ); done - for l in $ACTIVE; do ( cd $l; v=3D$(git describe --tags --abbrev=3D0 de= v); git merge $v ); done - = - # Sanity check: - ./cordova-coho/coho repo-status -r plugins -b master = - # Push: - for l in $ACTIVE; do ( cd $l; git push --tags https://git-wip-us.apache= .org/repos/asf/$l.git master); done - }}} - = - =3D=3D Publish to dist/ =3D=3D - {{{ - cd cordova-dist - svn up - for l in $ACTIVE; do ( svn rm plugins/$l* ); done - cp ../cordova-dist-dev/$JIRA/* plugins/ - svn add plugins/* - svn commit -m "$JIRA Published plugins release to dist" - = - cd ../cordova-dist-dev - svn up - svn rm $JIRA - svn commit -m "$JIRA Removing release candidates from dist/dev" - }}} - = - Find your release here: [[https://dist.apache.org/repos/dist/release/cord= ova/plugins/]] - = - =3D=3D Publish to Plugins Registry =3D=3D - {{{ - for l in $ACTIVE; do ( cd $l; git checkout master ); done - for l in $ACTIVE; do ( cd $l; echo -n "$l: "; plugman publish . ); done - }}} - = - =3D=3D Post blog Post =3D=3D - # Blog Post: - svn commit - = - = - =3D=3D Close JIRA Issue =3D=3D - * Double check that the issue has comments that record the steps you took - * Mark it as fixed - = - =3D=3D Finally: =3D=3D - = - * Update *these wiki instructions* if they were missing anything. -=20