Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Notify developers on the #hive IRC channel that you are about to branch a release.
  2. Update CHANGES.txt to include the release version and date (use Unreleased for the date if it is unknown) and remove Trunk (unreleased changes).
  3. Commit these changes to trunk.
    Code Block
    
    svn commit -m "Preparing for release X.Y.Z"
    
  4. Create a branch for the release series:
    Code Block
    svn copy https://svn.apache.org/repos/asf/hive/trunk \
    https://svn.apache.org/repos/asf/hive/branches/branch-X.Y -m "Branching for X.Y releases"
    
    Update CHANGES.txt to add back in Trunk (unreleased changes).
  5. Increment the value of the version property the build.properties file on trunk. For example, if the current value is 0.7.0-SNAPSHOT, the new value should be 0.8.0-SNAPSHOT. Please note that the SNAPSHOT suffix is required in order to indicate that this is an unreleased development branch.
  6. Commit these changes to trunk.
    Code Block
    svn commit -m "Preparing for X.Y+1.0 development"
    

...

  1. Check out the release branch with:
    Code Block
    svn co https://svn.apache.org/repos/asf/hive/branches/branch-X.Y
    
    Update CHANGES.txt to include the release version and date (this change must be committed to trunk and any intermediate branches between trunk and the branch being released).
  2. Update the version property value in the build.properties file. You should remove the SNAPSHOT suffix and set version equal to hive-X.Y.Z where Z is the point release number in this release series (0 for the first one, in which case this step is a no-op since you already did this above when creating the branch).
  3. Commit these changes.
    Code Block
    svn commit -m "Preparing for release X.Y.Z"
    
  4. If not already done, merge desired patches from trunk into the branch and commit these changes. You can find the revision numbers using svn log CHANGES.txt in the branch and in trunk. We don't currently use svn merge for this, but if we did, the script would be
    Code Block
    cd branch-X.Y
    svn merge -rR1:R2 ../trunk .
    svn commit -m "Merge -r R1:R2 from trunk to X.Y branch. Fixes: HIVE-A, HIVE-B."
    
  5. You probably also want to commit a patch (on both trunk and branch) which updates README.txt to bring it up to date (at a minimum, search+replacing references to the version number). Also check NOTICE to see if anything needs to be updated for recent library dependency changes or additions.
    1. Select all of the JIRA's for the current release that aren't FIXED and do bulk update to clear the 'Fixed Version' field.
    2. Likewise, use JIRA's Release Notes link to generate content for the RELEASE_NOTES.txt file. Be sure to select 'Text' format. (It's OK to do this with a direct commit rather than a patch.)
  6. Tag the release candidate (R is the release candidate number, and also starts from 0):
    Code Block
    svn copy https://svn.apache.org/repos/asf/hive/branches/branch-X.Y \
    https://svn.apache.org/repos/asf/hive/tags/release-X.Y.Z-rcR -m "Hive X.Y.Z-rcR release."
    

...

  1. Build the release (binary and source versions) after running unit tests. Note that this will generate MD5 checksum files automatically.
    No Format
    % ant -Dversion=X.Y.Z clean test tar binary
    
  2. Verify that the MD5 checksums are valid:
    No Format
    % md5sum -c hive-X.Y.Z.tar.gz.md5 
    hive-X.Y.Z.tar.gz: OK
    
    % md5sum -c hive-X.Y.Z-bin.tar.gz.md5 
    hive-X.Y.Z-bin.tar.gz: OK
    
  3. Check that release file looks ok - e.g. install it and run examples from tutorial.
  4. Sign the release (see Step-By-Step Guide to Mirroring Releases for more information).
    No Format
    % gpg --armor --output hive-X.Y.Z.tar.gz.asc --detach-sig hive-X.Y.Z.tar.gz
    % gpg --armor --output hive-X.Y.Z-bin.tar.gz.asc --detach-sig hive-X.Y.Z-bin.tar.gz
    
  5. Copy release files to a public place.
    No Format
    % ssh people.apache.org mkdir public_html/hive-X.Y.Z-candidate-0
    % scp -p hive-X.Y.Z*.tar.gz* people.apache.org:public_html/hive-X.Y.Z-candidate-0
    
  6. Publish Maven artifacts to the Apache staging repository:
    No Format
    % ant -Dversion=X.Y.Z -Dmvn.publish.repo=staging maven-build
    % ant -Dversion=X.Y.Z -Dmvn.publish.repo=staging maven-publish
    
  7. Login to the Apache Nexus server and "close" the staged repository. This makes the artifacts available at a temporary URL.
  8. Call a release vote on dev at hive.apache.org.
    No Format
    From: you@apache.org
    To: dev@hive.apache.org
    Subject: [VOTE] Apache Hive X.Y.Z Release Candidate N
    
    Apache Hive X.Y.Z Release Candidate N is available here:
    
    http://people.apache.org/~you/hive-X.Y.Z-candidate-N
    
    Maven artifacts are available here:
    
    https://repository.apache.org/content/repositories/orgapachehive-121/
    
    Changes:
    HIVE-XXXX. ...
    HIVE-XXXX. ...
    
    Voting will conclude in 72 hours.
    
    Hive PMC Members: Please test and vote.
    
    Thanks.
    

...