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. Copy release files to a public place.

    No Format
    % sftp
    sftp> cd public_html
    sftp> mkdir apache-hive-X.Y.Z-rc-0
    sftp> cd apache-hive-X.Y.Z-rc-0
    sftp> put apache-hive-X.Y.Z*.tar.gz*
    sftp> quit

  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=<PUB<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.