You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 65 Next »

Release process

Preparing for release

Setup for first time release managers

If you are being a release manager for the first time, you will need to run the following additional steps so that you are not blocked during the actual release process.

Configure SSH to people.apache.org

SSH to people.apache.org supports only Key-Based SSH Logins

# Generate RSA Keys
 mkdir ~/.ssh
 chmod 700 ~/.ssh
 ssh-keygen -t rsa -b 4096

# Note: This will create ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub files will be generated
 
# Upload Public RSA Key
Login at http://id.apache.org
Add Public SSH Key to your profile from ~/.ssh/id_rsa.pub 
SSH Key (authorized_keys line):  
Submit changes
 
# SSH to people.apache.org
ssh {username}@people.apache.org
mkdir public_html
cd public_html
touch test
Verify URL http://people.apache.org/{username}/test

Generate OpenGPG Key

 

gpg2 --gen-key
gpg2 --keyserver pgp.mit.edu --send-key CD23CAA
gpg2 --armor --export {username}@apache.org > {username}.asc
scp {username}.asc {username}@people.apache.org:public_html/~{username}.asc
Verify URL http://people.apache.org/~{username}/{username}.asc
Query PGP KeyServer http://pgp.mit.edu:11371/pks/lookup?search=0xCD23CAAE&op=vindex

Login at http://id.apache.org
Add OpenPGP Fingerprint to your profile
OpenPGP Public Key Primary Fingerprint: CD23CAA
Submit changes
Verify that the public PGP key is exported to http://people.apache.org/keys/committer/{username}.asc

 

Email dev@ambari.apache.org mailing list notifying that you will be creating the release branch at least one week in advance

Subject: Preparing Ambari X.Y.Z branch

Hi developers and PMCs,

I am proposing cutting the branch for Ambari X.Y.Z on __________  as per the outlined tasks in the Ambari Feature + Roadmap page (https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=30755705).
After making the branch, we (i.e., development community) should only accept blocker or critical bug fixes into the branch and harden it until it meets a high enough quality bar. 
If you have a bug fix, it should first be committed to trunk, and after ensuring that it does not break any tests (including smoke tests), then it should be integrated to the Ambari X.Y.Z branch.
If you have any doubts whether a fix should be committed into the X.Y.Z branch, please email me for input at ____________
Stay tuned for updates on the release process.


Thanks

Create the release branch

Create a branch for a release using branch-X.Y (ex: branch-2.1) as the name of the branch.

Checkout the release branch

git checkout branch-X.Y

Update release version

Make sure once the branch is created the version is set as appropriate. Make sure that all versions are updated. Commit the changes to the release branch.

Steps followed for 2.0.0 release as a reference

# Update the release version
mvn versions:set -DnewVersion=2.0.0.0
pushd ambari-metrics
mvn versions:set -DnewVersion=2.0.0.0
popd
pushd contrib/ambari-log4j
mvn versions:set -DnewVersion=2.0.0.0
popd
pushd contrib/ambari-scom
mvn versions:set -DnewVersion=2.0.0.0
popd
pushd docs
mvn versions:set -DnewVersion=2.0.0.0
popd

# Update the ambari.version properties in all pom.xml
$grep -r --include "pom.xml" "ambari.version" .
./ambari-web/pom.xml:                  <arg value="${basedir}${dirsep}set-ambari-version.${fileextension.shell}"/>
./contrib/ambari-scom/ambari-scom-server/pom.xml:        <ambari.version>1.3.0-SNAPSHOT</ambari.version>
./contrib/ambari-scom/ambari-scom-server/pom.xml:            <version>${ambari.version}</version>
./contrib/views/hive/pom.xml:    <ambari.version>1.3.0-SNAPSHOT</ambari.version>
./contrib/views/jobs/pom.xml:        <version>${ambari.version}</version>
./contrib/views/pig/pom.xml:    <ambari.version>2.0.0-SNAPSHOT</ambari.version>
./contrib/views/pom.xml:    <ambari.version>2.0.0-SNAPSHOT</ambari.version>
./contrib/views/tez/pom.xml:      <version>${ambari.version}</version>
./docs/pom.xml:        <ambari.version>1.0.0-SNAPSHOT</ambari.version>
./docs/pom.xml:        <final.name>${project.artifactId}-${ambari.version}</final.name>

# Update any 2.0.0-SNAPSHOT references in pom.xml
$ grep -r --include "pom.xml" "2.0.0-SNAPSHOT" .
./ambari-views/examples/property-validator-view/pom.xml:      <version>2.0.0-SNAPSHOT</version>

# Remove .versionsBackup files
git clean -f -x -d
 
# Review and commit the changes to branch-X.Y.Z
git commit

Update KEYS

If this is the first time you have taken release management responsibilities, make sure to update the KEYS file and commit the updated KEYS in both the ambari trunk branch and the release branch. Also in addition to updating the KEYS file in the tree, you also need to push the KEYS file to https://dist.apache.org/repos/dist/release/ambari/ 

#update the KEYS file
gpg2 --list-keys jluniya@apache.org >> KEYS
gpg2 --armor --export jluniya@apache.org >> KEYS
 
# commit the changes to both trunk and new release branch
git commit
 
# push the updated KEYS file to https://dist.apache.org/repos/dist/release/ambari/
svn co https://dist.apache.org/repos/dist/release/ambari ambari_svn
cp {path_to_keys_file}/KEYS ambari_svn/KEYS
svn update KEYS
svn commit -m "Updating KEYS for Ambari"

Setup Build

Setup Jenkins Job for the new branch on http://builds.apache.org 

Creating Release Candidate

Note: The first release candidate is rc0. The following documented process assumes rc0, but replace it with the appropriate rc number as required.

Checkout the release branch

git checkout branch-X.Y.Z

Create a Release Tag from the release branch

git tag -a release-X.Y.Z-rc0 -m 'Ambari X.Y.Z RC0'
git push origin release-X.Y.Z-rc0

Create a tarball

 # create a clean copy of the source
 cd ambari-git-X.Y.Z
 git clean -f -x -d
 cd ..
 cp -R ambari-git-X.Y.Z apache-ambari-X.Y.Z-src
 
 # create ambari-web/public by running the build instructions per https://cwiki.apache.org/confluence/display/AMBARI/Ambari+Development
 # once ambari-web/public is created, copy it as ambari-web/public-static
 cp -R ambari-git-X.Y.Z/ambari-web/public apache-ambari-X.Y.Z-src/ambari-web/public-static
 
 # make sure apache rat tool runs successfully
 cp -R apache-ambari-X.Y.Z-src apache-ambari-X.Y.Z-ratcheck
 cd apache-ambari-X.Y.Z-ratcheck
 mvn clean apache-rat:check
 cd ..
 # if rat check fails, file JIRAs and fix them before proceeding.
 
 # tar it up, but exclude git artifacts
 tar --exclude=.git --exclude=.gitignore --exclude=.gitattributes -zcvf apache-ambari-X.Y.Z-src.tar.gz apache-ambari-X.Y.Z-src

Sign the tarball

gpg2  --armor --output apache-ambari-X.Y.Z-src.tar.gz.asc --detach-sig apache-ambari-X.Y.Z-src.tar.gz

Generate MD5 checksums:

md5sum apache-ambari-X.Y.Z-src.tar.gz > apache-ambari-X.Y.Z-src.tar.gz.md5
sha1sum apache-ambari-X.Y.Z-src.tar.gz > apache-ambari-X.Y.Z-src.tar.gz.sha1

or

openssl md5 apache-ambari-X.Y.Z-src.tar.gz > apache-ambari-X.Y.Z-src.tar.gz.md5
openssl sha1 apache-ambari-X.Y.Z-src.tar.gz > apache-ambari-X.Y.Z-src.tar.gz.sha1

Upload the artifacts to your apache home:

The artifacts then need to be copied over to

public_html/apache-ambari-X.Y.Z-rc0

Voting on Release Candidate

Call for a vote on the dev@ambari.apache.org mailing list with something like this:

I have created an ambari-** release candidate.
GIT source tag (r***)

https://git-wip-us.apache.org/repos/asf/ambari/repo?p=ambari.git;a=log;h=refs/tags/release-x.y.z-rc0

Staging site: http://people.apache.org/user_name/apache-ambari-X.Y.Z-rc0

PGP release keys (signed using 8EE2F25C) http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x0DFF492D8EE2F25C

One can look into the issues fixed in this release at https://issues.apache.org/jira/**

Vote will be open for 72 hours.

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)

Once the vote passes/fails, send out an email with subject like "[RESULT] [VOTE] Apache Ambari x.y.z rc0" to dev@ambari.apache.org. For the vote to pass, 3 +1 votes are required. If the vote does not pass another release candidate will need to be created after addressing the feedback from the community.

Publishing and Announcement 

After the vote passes:

Verify your PGP key is provided to Apache. Apache verifies that distributions are correctly signed.

  • Login to https://id.apache.org and verify the fingerprint of PGP key used to sign above is provided. (gpg --fingerprint)
  • Upload your PGP public key only to /home/<user>/.pgpkey

Publish the release as below:

svn co https://dist.apache.org/repos/dist/release/ambari ambari

cd ambari
mkdir ambari-X.Y.Z
scp ~/public_html/apache-ambari-X.Y.Z-rc0/* ambari-X.Y.Z
svn add ambari-X.Y.Z
svn commit -m "Committing Release X.Y.Z"

Create the release tag:

git tag -a release-X.Y.Z -m 'Ambari X.Y.Z'
git push origin release-X.Y.Z

Note that it takes 24 hours for the changes to propagate to the mirrors.
Wait 24 hours and verify that the bits are available in the mirrors before sending an announcement.

Update Ambari Website and Wiki

http://ambari.apache.org is checked in Git in /ambari/docs/src/site folder.

svn co https://svn.apache.org/repos/asf/ambari/site
mvn versions:set -DnewVersion=X.Y.Z
# Make necessary changes, typically to pom.xml, site.xml, index.apt, and whats-new.apt
mvn clean site

Examine the changes under /ambari/docs/target folder.

Once content has been verified, copy contents of /ambari/docs/target into SVN repository location https://svn.apache.org/repos/asf/ambari/site and commit.

This should update the http://ambari.apache.org website.

Update the wiki to add pages for installation of the new version. Usually you can copy the pages for the last release and make the URL changes to point to new repo/tarball location.  

Send out Announcement to dev@ambari.apache.org and user@ambari.apache.org.

Subject: [ANNOUNCE] Apache Ambari X.Y.Z.

The Apache Ambari team is proud to announce Apache Ambari version X.Y.Z

Apache Ambari is a tool for provisioning, managing, and monitoring Apache Hadoop clusters. Ambari consists of a set of RESTful APIs and a browser-based management console UI.

The release bits are at: http://www.apache.org/dyn/closer.cgi/ambari/ambari-X.Y.Z.  

To use the released bits please use the following documentation:

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+X.Y.Z

We would like to thank all the contributors that made the release possible.

Regards,

The Ambari Team

  • No labels