You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/01/28 17:49:44 UTC

svn commit: r1655389 - /incubator/slider/site/trunk/content/developing/releasing.md

Author: stevel
Date: Wed Jan 28 16:49:43 2015
New Revision: 1655389

URL: http://svn.apache.org/r1655389
Log:
SLIDER-745 release notes

Modified:
    incubator/slider/site/trunk/content/developing/releasing.md

Modified: incubator/slider/site/trunk/content/developing/releasing.md
URL: http://svn.apache.org/viewvc/incubator/slider/site/trunk/content/developing/releasing.md?rev=1655389&r1=1655388&r2=1655389&view=diff
==============================================================================
--- incubator/slider/site/trunk/content/developing/releasing.md (original)
+++ incubator/slider/site/trunk/content/developing/releasing.md Wed Jan 28 16:49:43 2015
@@ -18,7 +18,7 @@
 
 # Apache Slider Release Process
 
-Here is our release process.
+Here is our release process from Slider 0.61-incubating onwards (January 2015)
 
 
 ### Tooling
@@ -67,6 +67,7 @@ Unstable Hadoop versions MUST NOT be use
 Slider release.
 
 
+
 *5.* Check ASF headers dependencies
 
 Ensure the rat check is clean. This rejects files which lack ASF headers
@@ -113,49 +114,52 @@ e.g. `mvn clean install -Prelease-2.6`
 
 ##  Prepare
 
-Verify that there's nothing not yet checked in
 
-    git status
+### Check everything in
 
-Everything must be checked in at this point.
+This and other other commands assume that `origin` maps
+to `https://git-wip-us.apache.org/repos/asf/incubator-slider.git`;
+you can check this with `git remote -v`
 
-Sync up with the ASF repo. You do not want to release the wrong code.
 
-    git checkout develop
-    git pull origin
-    git push origin
+* Verify that there's nothing not yet checked in
 
+        git status
 
-**Step #1:** Create a JIRA for the release, estimate 3h
-(so you don't try to skip the tests)
+Everything must be checked in at this point.
 
-    export SLIDER_RELEASE_JIRA=SLIDER-544
+*  Sync up with the ASF repo. You do not want to release the wrong code.
 
+        git checkout develop
+        git pull origin
+        git push origin
 
-**Step #4:** If they are not what you want, set the version numbers using [the maven
-versions plugin](http://mojo.codehaus.org/versions-maven-plugin/)
 
+### Start the JIRA
 
-    export SLIDER_RELEASE=0.60.0-incubating-SNAPSHOT
+Create a JIRA for the release, estimate 1d
 
-    mvn versions:set -DnewVersion=$SLIDER_RELEASE
+    export SLIDER_RELEASE_JIRA=SLIDER-544
 
+This seems pessimistic, but there may be surprises.
 
-**Step #5:** Commit the changed POM files
   
-    git status
-    git add --all
-    git commit -m "$SLIDER_RELEASE_JIRA updating release POMs for $SLIDER_RELEASE"
+### Choose your versions
 
-  
-**Step #3:** Create or check out a release branch
+Choose the version number for the release
 
-    git checkout -b branches/branch-0.6
-    git push origin branches/branch-0.6
-    
+Example:
+
+    0.61.0-incubating
+    0.62.0-incubating-SNAPSHOT
 
 
-**Step #6:** Do a final test run to make sure nothing is broken
+    export SLIDER_RELEASE=0.61.0-incubating
+    export SLIDER_DEV=0.62.0-incubating-SNAPSHOT
+
+### Test that everything works
+
+Do a final test run to make sure nothing is broken
 
 In the `slider` directory, run:
 
@@ -183,112 +187,31 @@ finalizing the release notes.
 
 
 
-## Build the release notes
-
-Create a a one-line plain text release note for commits and tags
-and a multi-line markdown release note which will be used for artifacts.
-
-
-    Release against hadoop 2.6.0
+### Create a release branch  
 
-The multi-line release notes should go into the slider SVN repo under
-`site/trunk/content/release_notes`.
+Create or check out a release branch,
 
+Example of creation then push to the origin
 
-Commit the documentation changes:
-
-    svn commit -m "$SLIDER_RELEASE_JIRA updating release notes for slider-$SLIDER_RELEASE"
-
-**Step #10:** Get back to the develop branch
-
-    git checkout develop
+    git checkout -b branches/branch-0.6
+    git push origin branches/branch-0.6
 
+This branch is where all the release work will take place. That can include patching and cherry picking from the development branch.
 
-You will now be back on the `develop` branch.
 
+### Update the version numbers on the main branch
 
-**Step #11:** update maven versions
 
-Switch back to `develop` and update its version number past
-the release number
 
+Get back to the develop branch and patch its versions
 
-    export SLIDER_DEV=0.61.0-incubating-SNAPSHOT
+    git checkout develop
     mvn versions:set -DnewVersion=$SLIDER_DEV
     git commit -a -m "$SLIDER_RELEASE_JIRA updating development POMs to $SLIDER_DEV"
+    git push origin
 
-**Step #12:** Push the release and develop branches to github 
-
-    git push origin develop releases/slider-0.60
-
-(assuming that `origin` maps to `https://git-wip-us.apache.org/repos/asf/incubator-slider.git`;
- you can check this with `git remote -v`
-
-
-
-## <a name="phase2"></a>Phase - II: publish to the ASF
-
-This phase of the process creates the artifacts for the ASF.
-This is done in a separate directory to ensure that nothing accidentally gets in.
-
-Preamble: set up the RC Version 
-
-    export RELEASE_RC=rc0
-
-**Step 1**
-
-Get a clean git clone in its own directory.
-
-    mkdir release
-    cd release
-    git clone https://git-wip-us.apache.org/repos/asf/incubator-slider.git slider-$SLIDER_RELEASE
-    cd slider-$SLIDER_RELEASE
-
-**Step 2**
-
-Ensure you are in the *master* branch and it's clean. Beware that the git clean command will remove any unknown files to Git in your current repository.
-
-    git checkout releases/slider-0.60
-    git pull origin
-    git clean -fxd
-
-
-
-## Publish via SVN (?)
-
-Publish the release as below:
-
-    svn co https://dist.apache.org/repos/dist/release/incubator/slider slider
- 
-    cd slider
-    
-Make sure your PGP keys is in the KEYS file. The instructions to add a key 
-are at the top of the file
-    
-Then...
-
-    mkdir $SLIDER_RELEASE $SLIDER_RELEASE/src
-    cd $SLIDER_RELEASE/src
-    scp ~/public_html/$SLIDER_RELEASE-$RELEASE_RC/* .
-    cd ..
-    svn add $SLIDER_RELEASE
-    svn commit -m "SLIDER_RELEASE_JIRA Committing Release $SLIDER_RELEASE"
-
-**Step 14**
-
-Create the release tag:
-
-    On branch master
-    git tag -a $SLIDER_RELEASE -m 'Slider $SLIDER_RELEASE'
-    git push --tags origin
-
-**Step 15**
-
-Update the Slider website as needed. Most of the documents would have been updated by now to reflect the released version. *The remaining changes should really be modifying the references to the latest release to the new version.*
 
-The download details for the latest release needs to be updated after mirrors are updated in **Step 12**. 
 
-Verify the download links at [Slider Page](http://slider.incubator.apache.org).
 
 
 
@@ -299,9 +222,14 @@ The Slider project uses Maven to automat
 Core sequence
 1. Dry Run
 1. Deploy to staging
+1. Publish the real release
+1. Get the votes in
 
+If the vote fails: fix the issues then repeat
 
  
+Recommended Reading
+
 * [ASF release guidelines](http://www.apache.org/dev/release.html)
 * [Maven release plugin](http://maven.apache.org/maven-release/maven-release-plugin/index.html)
 * [ASF guide to publishing maven artifacts](http://www.apache.org/dev/publishing-maven-artifacts.html)
@@ -357,15 +285,6 @@ It's handy to set up an environment with
     echo $RELARGS
 
 
-  
-### Choose your versions
-
-Choose the version numbers for the release and for afterwards.
-
-    0.61.0-incubating
-    0.62.0-incubating-SNAPSHOT
-
-
 ## Git preparation
 
 The maven automated release adds its own git tags and pushes things up to a branch. All work must be done on a branch created for the release process, so as to not interfere with the rest of the development. You are likely to end up rolling back the branch, force-pushing changes &c, so cannot actively share the branch with anyone.
@@ -381,6 +300,8 @@ In a directory of your choice
   
 ### Check out the branch you plan to release on; tag it
 
+The tag is so that if things go wrong you know what you have to roll back to.
+
     cd incubator-slider
     git checkout -t origin/branches/branch-0.6
 
@@ -395,7 +316,7 @@ In the new clone, tag the head of the br
 This pushes up a `-SNAPSHOT` version to the ASF snapshot repo. It doesn't change the POMs; it does verify that you have the basic upload settings, signing keys etc.
 
     mvn clean deploy $RELARGS -Darguments="$RELARGS"
-    
+
 Assuming that all the test and integration tests have already been successful on normal workspace, you can skip the tests
   
 
@@ -491,91 +412,134 @@ with your ASF username & LDAP password
 1. Get the URL of the closed staging repository. This is needed for the next step —the votes.
 
 
-
 ## Get the Votes In
 
+
+### Set up your env vars for email templates
+
+set up the environment with the git release tag, URL to the staging repository, and your ASF username:
+
+    export RELEASE_TAG=
+    export STAGING_REPO=
+    export ASF_USER=
+
+example
+
+    export RELEASE_TAG=64a8bac068e6801748fb973dbfb590bc62c60935
+    export STAGING_REPO=https://repository.apache.org/content/repositories/orgapacheslider-1003/
+    export ASF_USER=stevel
+
+
 ### Call for a slider vote
 
 Call for a release VOTE to the dev mailing list (`dev@slider.incubator.apache.org`).
 
 To build the URLs, echo them then verify in your browser that they are present
 
-    echo  [VOTE] Apache Slider Incubating Release $SLIDER_RELEASE 
-    
-    echo "This is a call for a vote on Apache Slider $SLIDER_RELEASE release"
 
-    echo "Artifacts at http://people.apache.org/~$ASF_USER/slider/slider-release-$SLIDER_RELEASE-$RELEASE_RC"
 
-    echo "Git source tag: https://git-wip-us.apache.org/repos/asf?p=incubator-slider.git;a=shortlog;h=refs/tags/release-$SLIDER_RELEASE-$RELEASE_RC"
+echo "[VOTE] Apache Slider Incubating Release $SLIDER_RELEASE"
 
-    echo "PGP keys at http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=$ASF_USER@apache.org"
+echo "This is a call for a vote on Apache Slider $SLIDER_RELEASE release"
+echo "This is a source+binary release."
+echo "Artifacts at $STAGING_REPO" 
+echo "Git source tag: https://git-wip-us.apache.org/repos/asf?p=incubator-slider.git;a=commit;h=$RELEASE_TAG "
+echo "PGP keys at http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=$ASF_USER@apache.org"
 
+Build instructions at: http://slider.incubator.apache.org/developing/building.html
+
+Vote will be open for 72 hours 
+
+[ ] +1 approve 
+[ ] +0 no opinion 
+[ ] -1 disapprove (and reason why) 
+    
     
+ 
+* CHECK ALL THE URLS  *
+
+### Call for an incubator vote
+
+If the VOTE passes, call for VOTE from IPMC. Include the VOTE and RESULT thread from the dev alias.
+If that VOTE passes with the IPMC send a RESULT mail.
+
 Sample:
 
-```
 
-Title: [VOTE] Apache Slider Incubating Release $SLIDER_RELEASE $RELEASE_RC
+    Title: [RESULT][VOTE] Apache Slider $SLIDER_RELEASE $RELEASE_RC
+   
+    Thanks for the votes.
+    The VOTE passes with 5, +1 votes from IPMC.
 
-Hello folks,
+    List any IPMC votes.
 
-This is a call for a vote on Apache Slider $SLIDER_RELEASE release. 
-Thanks to everyone who have contributed to this release.
+    Other +1 votes:
 
-Git source checksum d3fd75007a209cf6439dde99c35a46a2632ca79d
+    List all non-IPMC votes.
 
-tag:
-https://git-wip-us.apache.org/repos/asf?p=incubator-slider.git;a=tag;h=refs/tags/slider-0.61.0
 
-Staging site:
 
-https://repository.apache.org/content/repositories/orgapacheslider-1002/org/apache/slider/
+## Publishing the Nexus staging repository
 
-The single archive is in 
+Once —and only once— the incubator vote is successful, you may release the nexus-staged artifacts.
 
-https://repository.apache.org/content/repositories/orgapacheslider-1002/org/apache/slider/slider-assembly/0.61.0/
+1. Log in to [the ASF Nexus server](https://repository.apache.org/index.html#stagingRepositories)
+1. Locate and select the staged Slider repository
+1. In the toolbar above, press the release button
 
-PGP release keys (signed as stevel)
-http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=$stevel@apache.org
+## Publishing the source and binary tar/zip files
 
-The issues fixed in this release are listed at at:
-https://issues.apache.org/jira/browse/SLIDER/fixforversion/12329034
+The ASF distribution system mirrors the source and binary files across the all apache mirror sites. This the standard way which the archives are distributed.
 
-This is a source+binary release.
+Publish the release as below:
 
-Build instructions at: http://slider.incubator.apache.org/developing/building.html 
 
-Vote will be open for 72 hours 
+### Grab the released artifacts from Nexus
 
-[ ] +1 approve
-[ ] +0 no opinion
-[ ] -1 disapprove (and reason why)
+1. Create a temp directory somewhere
 
-```
+        mkdir temp
+        cd temp
+1. create a directory, `artifacts`
 
-* CHECK ALL THE URLS FIRST *
+        mkdir artifacts
+        cd artifacts
 
-### Call for an incubator vote
 
-If the VOTE passes, call for VOTE from IPMC. Include the VOTE and RESULT thread from the dev alias.
-If that VOTE passes with the IPMC send a RESULT mail.
+1. Under `org/apache/slider/slider-assembly/$SLIDER_RELEASE` download all but the POM files (or download everything ) into `artifacts`
+1. Repeat for the source files `org/apache/slider/slider/$SLIDER_RELEASE`
 
-Sample:
+### Check out the distribution dir somewhere
 
+    svn co https://dist.apache.org/repos/dist/release/incubator/slider slider
+ 
+    cd slider
+    
+Make sure your PGP keys is in the `KEYS` file. The instructions to add a key 
+are at the top of that file
 
-    Title: [RESULT][VOTE] Apache Slider $SLIDER_RELEASE $RELEASE_RC
-   
-    Thanks for the votes.
-    The VOTE passes with 5, +1 votes from IPMC.
 
-    List any IPMC votes.
+Then...
 
-    Other +1 votes:
+    mkdir $SLIDER_RELEASE $SLIDER_RELEASE/src
+    cd $SLIDER_RELEASE/src
+    scp ~/public_html/$SLIDER_RELEASE-$RELEASE_RC/* .
+    cd ..
+    svn add $SLIDER_RELEASE
+    svn commit -m "SLIDER_RELEASE_JIRA Committing Release $SLIDER_RELEASE"
 
-    List all non-IPMC votes.
+**Step 14**
+
+
+
+### Web site updates
+
+Update the Slider website as needed. Most of the documents would have been updated by now to reflect the released version. *The remaining changes should really be modifying the references to the latest release to the new version.*
+
+The download details for the latest release needs to be updated after mirrors are updated in . 
 
+Verify the download links at [Slider Page](http://slider.incubator.apache.org).
 
-## Publishing the release
 
 
 ## Announcing
@@ -606,6 +570,26 @@ Sample:
     The Slider Team
 
 
+
+
+### Push the release to origin/master —TODO
+
+
+** TODO **
+
+Goal: get the master branch updated with this release, with any changes in the release taking priority over the versions in /master. 
+
+This is where gitflow breaks down. It may be better to have tags like `latest_stable` and `latest_development` and just move them along. 
+
+Otherwise: 
+In the branch for the release, go to the tag create for the release by maven. This represents the code released, including the version numbering of the release artifact (not the HEAD of the branch, which has the incremented one)
+
+    git tag -a $SLIDER_RELEASE -m 'Slider $SLIDER_RELEASE' $RELEASE_TAG
+    git push origin $SLIDER_RELEASE
+    git checkout master
+    git merge branch -X $SLIDER_RELEASE
+
+
 ## Finish the JIRA
 
 Log the time, close the issue. This should normally be the end of a 
@@ -613,6 +597,7 @@ sprint —so wrap that up too.
 
 
 
+
 ## Updating  JIRA Releases
    
 Tell JIRA there's a new release. You must be registered as an admin for the