Preliminaries
Apache Release Documentation
- Apache Release Guide
- Apache Release Policy
- Apache Incubator Release Guidelines
- Apache Incubator Release Policy
Code Signing Key
Create a code signing gpg key for release signing; use <your Apache ID>@apache.org for your primary ID for the code signing key. See the Apache Release Signing documentation for further information.
- Add your code signing key to your Apache ID here
- Publish it to a public key server such as the MIT key server.
- Add it to the HAWQ KEYS file.
Ensure JIRA Issues are Appropriately Tagged for the Release
Ensure that all HAWQ JIRA issues that are addressed in this release are marked with the release version in the ‘FixVersion’ field of the issue.
Create the Release Candidate
Prepare Tarballs
Tag your release: (or create a release branch)
git tag -a <tag name> <commit SHA> -m "<message for the tag>"
push to origin:
git push origin <tag name> -m "<tag description message>"- Make a tarball and gzip:
git archive -o /tmp/apache-hawq-src-<your release name>.tar --prefix=apache-hawq-src-<your release name>/ <your tag name>
gzip <path of the tar> prepare SHA1, MD5 and ASC file from the tarball
md5 apache-hawq-src-<your release name>.tar.gz > apache-hawq-src-<your release name>.tar.gz.md5 shasum apache-hawq-src-<your release name>.tar.gz > apache-hawq-src-<your release name>.tar.gz.sha1 gpg --detach-sign -a apache-hawq-src-<your release name>.tar.gz
you should see all 4 files:
-rw-r--r-- 1 tyao wheel 31M Jan 20 15:20 apache-hawq-src-2.0.0-beta-incubating.tar.gz -rw-r--r-- 1 tyao staff 842B Jan 20 15:25 apache-hawq-src-2.0.0-beta-incubating.tar.gz.asc -rw-r--r-- 1 tyao staff 86B Jan 20 15:24 apache-hawq-src-2.0.0-beta-incubating.tar.gz.md5 -rw-r--r-- 1 tyao staff 87B Jan 20 15:24 apache-hawq-src-2.0.0-beta-incubating.tar.gz.sha1
- create a local folder for the release (e.g. 2.0.0-beta-incubating.RC1) in svn. We use apache's distribution repo: https://dist.apache.org/repos/dist/dev/incubator/hawq/
- move the files into the release folder on local disk.
- svn add <release folder>
- svn commit
Start Voting
Vote in dev@ mailing list, see example here
After collecting enough votes from dev@ mailing list, start vote in IPMC (or PPM if graduated). see example here
Respin as needed and file appropriate JIRAs to address feedback
As soon as Vote result comes out, send out a [Result][Vote] email, see example here
Publishing and Distributing Release
- Finalizing your tag
switching to master branchgit tag -s rel/v{version} <commit SHA> -m "Apache HAWQ(incubating) {version) release (<other comments>)"
Sign your release tag
You need to configure your git user signing key first before you can sign a tag.
git config --global user.signingkey <Your secret key SHA>
- Push your tag to remote (origin)
git push origin rel/v{version}
Move tarballs from staging folder to release location:
svn mv https://dist.apache.org/dist/dev/incubator/hawq/{version}.RC#/ https://dist.apache.org/dist/release/incubator/hawq/{version}
Commit Message
As if you put https URL in svn commands, it'll commit automatically. A text editor will popup for you to edit commit message, put something like: "Release Apache HAWQ(incubating) {{
version
}}"- Add download link on hawq website: http://hawq.apache.org/
- Go to http://issues.apache.org/jira/browse/hawq to release the specific version (need admin permisison , under "Version")
- Send email announcement to general@ and dev@ mailing list to announce the release. see example here