...
- Build the release and run unit tests. This builds a source release artifact, then builds a binary release from that source release, and runs unit tests. Auxiliary files such as MD5 checksums and the releaseaudit report are also generated by the release script.
Code Block FORREST_HOME=/path/to/apache/forrest \ HCAT_RELEASE_VERSION='X.Y.Z-incubating' \ ./build-support/scripts/release.sh
- Sign and verify signature of the release (see Step-By-Step Guide to Mirroring Releases for more information).
Code Block gpg --armor --detach-sig --output build/hcatalog-src-X.Y.Z-incubating.tar.gz.asc \ build/hcatalog-src-X.Y.Z-incubating.tar.gz gpg --import KEYS (if necessarily) gpg --verify build/hcatalog-src-X.Y.Z-incubating.tar.gz.asc \ build/hcatalog-src-X.Y.Z-incubating.tar.gz
- Copy release files to a public place (usually into public_html in your home directory):
Code Block ssh people.apache.org mkdir public_html/hcatalog-X.Y.Z-incubating-candidate-0 scp -p build/hcatalog-src-X.Y.Z-incubating/build/hcatalog-X.Y.Z-incubating.tar.gz* \ build/hcatalog-src-X.Y.Z-incubating/build/releaseaudit_report.txt \ RELEASE_NOTES.txt \ people.apache.org:/home/travis/public_html/hcatalog-X.Y.Z-incubating-candidate-0
- Call a release vote for the Podling PMC (PPMC). This vote must receive a minimum of 3 PPMC members +1s, and more +1s than -1s. The email should be sent to hcatalog-user@incubator.apache.org. The mail should:
- unmigrated-wiki-markup
- have a subject line "\[VOTE\] Release HCatalog X.Y.Z-incubating (candidate a)" where X.Y.Z is the version number and {{
a
}} is the candidate number for this release. - State what is new in this release.
- Tell where the keys used to sign the release can be found.
- State where the release, md5 signature, gpg signature, and rat report can be found.
- Request that users and developers download it, test it, and vote.
- State when the vote closes. The vote must remain open for at least 72 hours. It can be longer at your discretion (e.g. around major holidays).
Here is a sample email:Code Block Subject: [VOTE] Release HCatalog 0.1.0-incubating (candidate 0) Hi, I have created a candidate build for HCatalog 0.1.0-incubating. This is the initial release of HCatalog. Keys used to sign the release are available at http://svn.apache.org/viewvc/incubator/hcatalog/trunk/KEYS?view=markup. Please download, test, and try it out: http://people.apache.org/~you/hcatalog-0.1.0-incubating-candidate-0 The release, md5 signature, gpg signature, and rat report can all be found at the above address. Should we release this? Vote closes on Thursday, June 16th. Me
- have a subject line "\[VOTE\] Release HCatalog X.Y.Z-incubating (candidate a)" where X.Y.Z is the version number and {{
- If the PPMC approves the release, call an Incubator PMC (IPMC) vote on
general@incubator.apache.org
. This vote must receive a minimum of 3 IPMC member +1s, and more +1s than -1s. The email sent should look similar, and include a link to the PPMC vote thread.
Publish
If both votes pass, the release needs to be published.
- Tag the release:
Code Block svn move https://svn.apache.org/repos/asf/incubator/hcatalog/tags/release-X.Y.Z-rcR \ https://svn.apache.org/repos/asf/incubator/hcatalog/tags/release-X.Y.Z -m "HCatalog X.Y.Z release."
- Copy release files to the distribution directory and make them writable by the
hcatalog
group.Code Block ssh people.apache.org cp -pr public_html/hcatalog-X.Y.Z-incubating-candidate-0 /www/www.apache.org/dist/incubator/hcatalog/hcatalog-X.Y.Z-incubating cd /www/www.apache.org/dist/incubator/hcatalog chgrp -R incubator hcatalog-X.Y.Z-incubating chmod -R g+w hcatalog-X.Y.Z-incubating
- The release directory usually contains just two releases, the most recent from two branches, with a link named 'stable' to the most recent recommended version.
Code Block ssh people.apache.org cd /www/www.apache.org/dist/incubator/hcatalog rm -rf hcatalog-A.B.C-incubating; rm stable ln -s hcatalog-X.Y.Z-incubating stable
- Wait 24 hours for release to propagate to mirrors.
- Prepare to edit the website.
Code Block svn co https://svn.apache.org/repos/asf/incubator/hcatalog/site
- Update the front page news in :
author/src/documentation/content/xdocs/index.xml
. - Update the release news in :
author/src/documentation/content/xdocs/releases.xml
. - Update the documentation links in :
author/src/documentation/content/xdocs/site.xml
- Copy in the release specific documentation. releasedir in the following is the directory where you built the release version of HCatalog
Code Block cd publish mkdir docs/rX.Y.Z cp -pr <releasedir>/build/hcatalog-X.Y.Z-incubating/docs/* publish/docs/rX.Y.Z/ svn add publish/docs/rX.Y.Z
- We should only be publishing release specific documentation for releases still available for download. If you removed any releases from
/www/www.apache.org/dist/incubator/hcatalog
several steps ago, then you should also usesvn rm
to remove the associated documents fromdocs
. - Regenerate the site, review it and commit in HowToCommit.
- Deploy your site changes.
Code Block ssh people.apache.org cd /www/incubator.apache.org/content/hcatalog svn up
- Wait until you see your changes reflected on the Apache web site.
- Send announcements to the user and developer lists as well as (general@haoop.apache.org) once the site changes are visible.
Code Block The HCatalog team is happy to announce the release of HCatalog X.Y.Z. Apache HCatalog provides a table management service for Hadoop. More details about HCatalog can be found at http://incubator.apache.org/hcatalog. The highlights of this release are ... The details of the release can be found at http://incubator.apache.org/hcatalog/releases.html.
- In JIRA, mark the release as released.
- Goto JIRA and click on Administration tab.
- Select the HCatalog project.
- Select Manage versions.
- Select Release for the version you have released.
- If a description has not yet been added for the version you are releasing, select Edit Details and give a brief description of the release.
- If the next version does not exist (that is, if you are releasing version 0.x, if version 0.x+1 does not yet exist) create it using the Add Version box at the top of the page.
- In JIRA, mark the issues resolved in this release as closed.
- Goto JIRA and click on the "Search for Issues" on "Issues" menu.
- In the left hand Edit section, set Project to HCatalog.
- In Status select "Resolved"
- In Resolutions select "Fixed"
- Click "Search" button
- In the next screen, further select fix For select the version you are releasing.
- Click on the "Search" button
- Select "Tools->Bulk change all XX issues" (near the top right)
- Select all the issues and click on "Next"
- Select "Transition Issues" radio button and click on "Next"
- Select "Close Issue" radio button and click on "Next"
- Uncheck the box near the bottom at says "Send mail for this update" lest you spam every HCatalog developer with a message for every bug resolved in this release. Click "Next".
- Click "Confirm". Don't worry if it gives you a HTTP 500 error, it still does the transitions.
- Update jdiff for next release (We don't have jdiff set up yet, but these next several instructions are left here so when we do we can use them)
Code Block svn co https://svn.apache.org/repos/asf/incubator/hcatalog/trunk
- Open build.xml. Change this line:
Code Block <property name="jdiff.stable" value="X.Y-1.Z"/> To <property name="jdiff.stable" value="X.Y.Z"/>
- Copy jdiff comparison base to trunk
Code Block cp {releasedir}/lib/jdiff/hcatalog_X.Y.Z.xml lib/jdiff svn add lib/jdiff/hcatalog_X.Y.Z.xml svn remove lib/jdiff/hcatalog_X.Y-1.Z.xml svn commit -m "Jdiff change for X.Y.Z"
- Open build.xml. Change this line: