How to do a release
Following instructions walks you through releasing Phoenix-4.15.0-HBase-1.3. These steps needs to be repeated for all HBase branches.
- Make sure you have setup your user for release signing. Details http://www.apache.org/dev/release-signing.html.
- Clone the branch locally from which you want to do a release.
Set version to release and commit.
mvn versions:set -DnewVersion=4.15.0-HBase-1.3 -DgenerateBackupPoms=false
Build binary and source tars
$ cd dev; ./make_rc.sh
Follow the instructions. Signed binary and source tars will be generated in the release directory. As last part of this script, it will ask if you want to tag the branch at this time (sample tag: v4.15.0-HBase-1.3-rc0). If all looks good then svn commit binary and source tars to https://dist.apache.org/repos/dist/dev/phoenix
Once voting is successful (say for RC1), copy artifacts to https://dist.apache.org/repos/dist/release/phoenix:
svn mv https://dist.apache.org/repos/dist/dev/phoenix/apache-phoenix-4.15.0-HBase-1.3-rc1 https://dist.apache.org/repos/dist/release/phoenix/apache-phoenix-4.15.0-HBase-1.3
Set release tag and commit:
git tag -a v4.15.0-HBase-1.3 v4.15.0-HBase-1.3-rc1 -m "Phoenix v4.15.0-HBase-1.3 release"
- Remove any obsolete releases on https://dist.apache.org/repos/dist/release/phoenix given the current release.
Ensure your ~/.m2/settings.xml is setup correctly:
<server> <id>apache.releases.https</id> <username> <!-- YOUR APACHE USERNAME --> </username> <password> <!-- YOUR APACHE PASSWORD --> </password> </server>
Note that the head of the branch may have progressed with patches between the time your vote was sent out and your vote passed, so you want to make sure that you revert the code base to the tag of the RC that passed. Release to maven (remove release directory from local repo if present):
mvn clean deploy gpg:sign -DperformRelease=true -Dgpg.passphrase=[your_pass_phrase_here] -Dgpg.keyname=[your_key_here] -DskipTests -P release -pl phoenix-core,phoenix-tracing-webapp,phoenix-pherf,phoenix-client,phoenix-server -am
Note You may need to skip JavaDoc generation by passing in the following flag: -Dmaven.javadoc.skip=true
Go to https://repository.apache.org/#stagingRepositories and close -> release the staged artifacts (takes a while so you may need to refresh multiple times).
- Create new branch based on current release if needed, for ex: 4.15 branches in this case.
Set version to the upcoming SNAPSHOT and commit:
mvn versions:set -DnewVersion=4.16.0-HBase-1.3-SNAPSHOT -DgenerateBackupPoms=false
- Create a JIRA to update PHOENIX_MAJOR_VERSION, PHOENIX_MINOR_VERSION and PHOENIX_PATCH_NUMBER in MetaDataProtocol.java appropriately to next version (4, 16, 0 respectively in this case) and compatible_client_versions.json file with the client versions that are compatible against the next version ( In this case 4.14.3 and 4.15.0 would be the backward compatible clients for 4.16.0 ). This Jira should be committed/marked with fixVersion of the next release candidate.
- Add documentation of released version to the downloads page and wiki.
- Send out an announcement email. See example here.
- Bulk close Jiras that were marked for the release fixVersion.