Versions Compared


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


  1. Make sure your release notes have been updated for any new commits, and go through the previous steps if necessary.
  2. Build the release (binary and source versions) after running unit tests. Manually create the sha256 files.

    No Format
    % mvn install -Pdist,iceberg -DskipTests -Dmaven.javadoc.skip=true -DcreateChecksum=true
    % cd packaging/target
    % shasum -a 256 apache-hive-X.Y.Z-bin.tar.gz > apache-hive-X.Y.Z-bin.tar.gz.sha256
    % shasum -a 256 apache-hive-X.Y.Z-src.tar.gz > apache-hive-X.Y.Z-src.tar.gz.sha256

  3. Verify that the SHA 256 checksums are valid:

    No Format
    % shasum -a 256 -c apache-hive-X.Y.Z-bin.tar.gz.sha256
    apache-hive-X.Y.Z-bin.tar.gz: OK
    % shasum -a 256 -c apache-hive-X.Y.Z-src.tar.gz.sha256
    apache-hive-X.Y.Z-src.tar.gz: OK

  4. Check that release file looks ok -- e.g., install it and run examples from tutorial.
  5. Setup your PGP keys for signing the release, if you don't have them already.
    1. See,
    No Format
    % gpg --full-generate-key
    % gpg --keyserver hkp:// --send-keys <PUB_KEY>
    % svn co --depth files
    % cd hive
    % (gpg --list-sigs <NAME> && gpg --armor --export <NAME>) >> KEYS
    % svn add KEYS
    % svn commit -m 'Adding <FullName>'s key'

  6. Sign the release (see Step-By-Step Guide to Mirroring Releases for more information).

    No Format
    % gpg --armor --output apache-hive-X.Y.Z-bin.tar.gz.asc --detach-sig apache-hive-X.Y.Z-bin.tar.gz
    % gpg --armor --output apache-hive-X.Y.Z-src.tar.gz.asc --detach-sig apache-hive-X.Y.Z-src.tar.gz

  7. Follow instructions in to push the new release artifacts (tar.gz, tar.gz.asc, tar.gz.sha256) to the SVN staging area of the project ( Make sure to create a new directory for the release candidate. You may need PMC privileges to do this step if you do not have such privileges, please ping a PMC member to do this for you.

    No Format
    svn co --depth empty
    cd dist
    svn update --set-depth empty dev
    svn update --set-depth empty dev/hive
    mkdir dev/hive/rXhive-X.Y.Z/
    cp <hive-source-dir>/packaging/target/apache-hive-X.Y.Z*.tar.gz* dev/hive/r.hive-X.Y.Z/
    svn add dev/hive/rXhive-X.Y.Z
    svn commit -m "Hive X.Y.Z release" 

  8. Publish Maven artifacts to the Apache staging repository. Make sure to have this setup for Apache releases. Use committer setting.xml.

    Note: If you get an error gpg: signing failed: Inappropriate ioctl for device, try doing `export GPG_TTY=$(tty)`

    Note: if you have multiple gpg keys, you may need to specify which key to use via -Dgpg.keyname=<PRIV_KEY>

    No Format
    % mvn deploy -DskipTests -Papache-release,iceberg -Dmaven.javadoc.skip=true

  9. Login to the Apache Nexus server and "close" the staged repository. This makes the artifacts available at a temporary URL.