Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change 
notification.

The "HowToReleasePostMavenizationWithGit" page has been changed by 
karthikkambatla:
https://wiki.apache.org/hadoop/HowToReleasePostMavenizationWithGit?action=diff&rev1=54&rev2=55

  
  = Branching =
  
- Skip this section if this is NOT the first release in a series (i.e. release 
X.Y.0).
+ When releasing Hadoop X.Y.Z, the following branching changes are required. 
Note that a release can match more than one of the following if-conditions. For 
a major release, one needs to make the changes for minor and point releases as 
well. Similarly, a new minor release is also a new point release. 
  
-       1. Notify developers on the #hadoop IRC channel that you are about to 
branch a release. 
-       1. Update {{{CHANGES.txt}}} to include the release version and date 
(use {{{Unreleased}}} for the date if it is unknown) and remove {{{Trunk 
(unreleased changes)}}}.
+   1. Add the release X.Y.Z to CHANGES.txt files if it doesn't already exist 
(leave the date as unreleased for now). Commit these changes to trunk and any 
of branch-X, branch-X.Y if they exist. {{{
+ git commit -a -m "Adding release X.Y.Z to CHANGES.txt"}}}
+   1. If this is a new major release (i.e., Y = 0 and Z = 0)
+      1. Create a new branch (branch-X) for all releases in this major release.
+      1. Update the version on trunk to (X+1).0.0-SNAPSHOT {{{
+ mvn versions:set -DnewVersion=(X+1).0.0-SNAPSHOT}}}
-       1. Commit these changes to trunk. {{{
+      1. Commit the version change to trunk. {{{
+ git commit -a -m "Preparing for (X+1).0.0 development"}}}
+   1. If this is a new minor release (i.e., Z = 0)
+      1. Create a new branch (branch-X.Y) for all releases in this minor 
release.
+      1. Update the version on branch-X to X.(Y+1).0-SNAPSHOT {{{
+ mvn versions:set -DnewVersion=X.(Y+1).0-SNAPSHOT}}}
+      1. Commit the version change to branch-X. {{{
- svn commit -m "Preparing for release X.Y.Z"
- }}}
-       1. Create a branch for the release series: {{{
- svn copy https://svn.apache.org/repos/asf/hadoop/common/trunk \
- https://svn.apache.org/repos/asf/hadoop/common/branches/branch-X.Y -m 
"Branching for X.Y releases"
- }}}
-       1. Update {{{CHANGES.txt}}} to add back in {{{Trunk (unreleased 
changes)}}}.
-         1. Update the default version in the pom files on trunk to 
X.Y+1.0-SNAPSHOT {{{mvn versions:set -DnewVersion=X.Z-SNAPSHOT}}}.
-         1. Update the {{{project.version}}} number in 
{{{hadoop-hdfs-project/hadoop-hdfs/src/test/aop/build/aop.xml}}} on trunk to 
X.Y+1.0.
-         1. Update the {{{symlink link}}} number in 
{{{hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/pom.xml}}}
 on trunk to X.Y+1.0.
-       1. Commit these changes to trunk. {{{
- svn commit -m "Preparing for X.Y+1.0 development"
+ git commit -a -m "Preparing for X.(Y+1).0 development"}}}
+   1. If this is a new point release (i.e., always)
+      1. Create a new branch (branch-X.Y.Z) for this release.
+      1. Update the version on branch-X.Y to X.Y.(Z+1)-SNAPSHOT {{{
+ mvn versions:set -DnewVersion=X.Y.(Z+1)-SNAPSHOT}}}
+      1. Commit the version change to branch-X.Y. {{{
+ git commit -a -m "Preparing for X.Y.(Z+1) development"}}}
+   1. Release branch (branch-X.Y.Z) updates:
+      1. Update the version on branch-X.Y.Z TO X.Y.Z {{{mvn versions:set 
-DnewVersion=X.Y.Z}}}
- }}}
- 
- = Updating Release Branch =
- 
- These operations take place in the release branch.
- 
-       1. Check out the branch with: {{{
- svn co https://svn.apache.org/repos/asf/hadoop/common/branches/branch-X.Y
- }}}
-       1. Update {{{CHANGES.txt}}} to include the release version and date 
(this change must be committed to trunk and any intermediate branches between 
trunk and the branch being released).
-       1. Generate {{{releasenotes.html}}} with release notes for this 
release. You generate these with: {{{
+      1. Generate {{{releasenotes.html}}} with release notes for this release. 
You generate these with: {{{
  python ./dev-support/relnotes.py -v $(vers)
- }}} If you release includes more then one version you may add additional -v 
options for each version.  By default the previousVersion mentioned in the 
notes will be X.Y.Z-1, if this is not correct you can override this by setting 
the --previousVer option.
+ }}} If your release includes more then one version you may add additional -v 
options for each version.  By default the previousVersion mentioned in the 
notes will be X.Y.Z-1, if this is not correct you can override this by setting 
the --previousVer option.
-         1. Update {{{releasenotes.html}}} {{{
+      1. Update {{{releasenotes.html}}} {{{
  mv releasenotes.$(vers).html 
./hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html
  }}} Note that the script generates a set of notes for HDFS, HADOOP, 
MAPREDUCE, and YARN too, but only common is linked from the html documentation 
so the indavidual ones are ignored for now.
-         1. Update the version number in the pom files on trunk to X.Y.N 
{{{mvn versions:set -DnewVersion=X.Z.N}}} where ''N'' is one greater than the 
release being made.
-         1. Update the {{{project.version}}} number in 
{{{hadoop-hdfs-project/hadoop-hdfs/src/test/aop/build/aop.xml}}} on trunk to 
X.Y.N.
-         1. Update the {{{symlink link}}} number in 
{{{hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/pom.xml}}}
 on trunk to X.Y.N.
-       1. Commit these changes. {{{
- svn commit -m "Preparing for release X.Y.Z"
+      1. Commit these changes to branch-X.Y.Z {{{git commit -a -m "Preparing 
for release X.Y.Z"}}}
+ 
+ Now, for any branches in {trunk, branch-X, branch-X.Y, branch-X.Y.Z} that 
have changed, push them to the remote repo taking care of any conflicts. {{{
+ git push <remote> <branch>
+ }}}. 
+ 
+ = Creating the release candidate (X.Y.Z-RCn) =
+ These steps need to be performed to create the ''n''th RC for X.Y.Z, where 
''n'' starts from 0.
+   1. Run mvn rat-check: {{{
+ mvn apache-rat:check
+ }}}(Fix any errors in rat.txt in the appropriate maven module.)
+   1. Set the release date for X.Y.Z to the current date in each CHANGES.txt 
file in branch-X.Y.Z and commit the changes. {{{
+ git commit -a -m "Set the release date for X.Y.Z-RCn"}}}
+   1. Tag the release candidate: {{{
+ git tag -s X.Y.Z-RCn -m "Release candidate n for X.Y.Z"}}}
+   1. Push branch-X.Y.Z and the newly created tag to the remote repo.
+   1. Deploy the maven artifacts {{{
+ $ mvn clean deploy -Psign,src,dist -Dgpg.passphrase=<your-gpg-passphrase>}}}. 
Remember to clear your history file as your gpg-passphrase is in clear text.
+   1. Use 
[[https://builds.apache.org/job/HADOOP2_Release_Artifacts_Builder|this Jenkins 
job]] to build the artifacts
+   1. Check that release file looks ok - e.g. install it and run examples from 
tutorial.
+   1. Generate the checksums of the release file. {{{
+ $ gpg --print-mds hadoop-${version}-src.tar.gz > 
hadoop-${version}-src.tar.gz.mds
+ $ gpg --print-mds hadoop-${version}.tar.gz > hadoop-${version}.tar.gz.mds}}}
+   1. Sign the release {{{
+ $ gpg --armor --output hadoop-${version}-src.tar.gz.asc --detach-sig 
hadoop-${version}-src.tar.gz
+ $ gpg --armor --output hadoop-${version}.tar.gz.asc --detach-sig 
hadoop-${version}.tar.gz}}}
+   1. Copy release files to a public place. {{{
+ $ ssh people.apache.org mkdir public_html/hadoop-${version}
+ $ scp -p hadoop-${version}.tar.gz* 
people.apache.org:public_html/hadoop-${version}
  }}}
-       1. If not already done, merge desired patches from trunk into the 
branch and commit these changes. You can find the revision numbers using {{{svn 
log CHANGES.txt}}} in the branch and in trunk. {{{
- cd branch-X.Y
- svn merge -rR1:R2 ../trunk .
- svn commit -m "Merge -r R1:R2 from trunk to X.Y branch. Fixes: HADOOP-A, 
HADOOP-B."
- }}}
-       1. Run mvn rat-check: {{{
- mvn apache-rat:check
- }}}   (Look for errors in rat.txt in the appropriate maven module.)
-         1. Tag the release candidate (R is the release candidate number, and 
starts from 0): {{{
- svn copy https://svn.apache.org/repos/asf/hadoop/common/branches/branch-X.Y \
- https://svn.apache.org/repos/asf/hadoop/common/tags/release-X.Y.Z-rcR -m 
"Hadoop X.Y.Z-rcR release."
- }}}
- 
- = Build Requirements =
- 
- To build an official release, you must:
- 
-   1. Use a 32-bit JVM. Currently we don't have support for 64-bit binaries in 
our maven builds.
-   1. Change refs to -SNAPSHOT in the following files:{{{
- hadoop-hdfs-project/hadoop-hdfs/src/test/aop/build/aop.xml
- 
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/pom.xml
- }}}
- 
- = Building the Release Candidate (RC) =
- 
-       1. Build the release & run unit tests.  This is captured in 
[[http://svn.apache.org/viewvc/hadoop/nightly/hudsonBuildHadoopRelease.sh?view=markup]].
 {{{
- # mvn clean
- $ mvn clean
- 
- # set version
- $ export version=0.23.1
- $ mvn versions:set -DnewVersion=${version}
- 
- # make the distribution (do not use 'clean' or -Dtar, for now do not use 
install either since it breaks -Psrc)
- $ mvn package install -Dmaven.test.skip.exec=true
- $ mvn deploy -Psign,src,native,dist -Dmaven.test.skip.exec=true 
-Dcontainer-executor.conf.dir=/etc/hadoop/conf
- 
- # stage site
- $ mvn site
- $ mvn site:stage
- 
- # release notes
- $ cp hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html 
target/staging/hadoop-project/hadoop-project-dist/hadoop-common
- 
- # copy CHANGES.txt
- $ cp hadoop-common-project/hadoop-common/CHANGES.txt 
target/staging/hadoop-project/hadoop-project-dist/hadoop-common
- $ cp hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt 
target/staging/hadoop-project/hadoop-project-dist/hadoop-hdfs
- $ mkdir target/staging/hadoop-project/hadoop-project-dist/hadoop-yarn
- $ cp hadoop-yarn-project/CHANGES.txt 
target/staging/hadoop-project/hadoop-project-dist/hadoop-yarn
- $ mkdir target/staging/hadoop-project/hadoop-project-dist/hadoop-mapreduce
- $ cp hadoop-mapreduce-project/CHANGES.txt 
target/staging/hadoop-project/hadoop-project-dist/hadoop-mapreduce
- 
- # copy site + javdocs
- $ cp -R target/staging/hadoop-project/* 
hadoop-dist/target/hadoop-${version}/share/doc/hadoop/
- 
- # finally, create src/binary tarballs
- $ cd hadoop-dist/target
- 
- # src tarball after copying NOTICE.txt README.txt LICENSE.txt
- $ tar -xzf hadoop-${version}-src.tar.gz
- $ cp ../../hadoop-common-project/hadoop-common/NOTICE.txt 
hadoop-${version}-src
- $ cp ../../hadoop-common-project/hadoop-common/README.txt 
hadoop-${version}-src
- $ cp ../../hadoop-common-project/hadoop-common/LICENSE.txt 
hadoop-${version}-src
- $ tar -czf hadoop-${version}-src.tar.gz hadoop-${version}-src
- 
- # binary tarball after copying NOTICE.txt README.txt LICENSE.txt
- $ cp ../../hadoop-common-project/hadoop-common/NOTICE.txt hadoop-${version}
- $ cp ../../hadoop-common-project/hadoop-common/README.txt hadoop-${version}
- $ cp ../../hadoop-common-project/hadoop-common/LICENSE.txt hadoop-${version}
- $ tar -czf hadoop-${version}.tar.gz hadoop-${version}
- }}}
-       1. Check that release file looks ok - e.g. install it and run examples 
from tutorial.
-         1. Generate the checksums of the release file. {{{
- $ gpg --print-mds hadoop-${version}-src.tar.gz > 
hadoop-${version}-src.tar.gz.mds
- $ gpg --print-mds hadoop-${version}.tar.gz > hadoop-${version}.tar.gz.mds
- }}}
-       1. Sign the release {{{
- $ gpg --armor --output hadoop-${version}-src.tar.gz.asc --detach-sig 
hadoop-${version}-src.tar.gz
- $ gpg --armor --output hadoop-${version}.tar.gz.asc --detach-sig 
hadoop-${version}.tar.gz
- }}}
-       1. Copy release files to a public place. {{{
- ssh people.apache.org mkdir public_html/hadoop-X.Y.Z-candidate-0
- scp -p hadoop-${version}.tar.gz* 
people.apache.org:public_html/hadoop-${version}-candidate-0
- }}}
-       1. Log into [[https://repository.apache.org|Nexus]], select 
{{{Staging}}} from the left navigation pane, right-click on the pushed 
repository, and {{{close}}} the release.
+   1. Log into [[https://repository.apache.org|Nexus]], select {{{Staging}}} 
from the left navigation pane, right-click on the pushed repository, and 
{{{close}}} the release.
-         1. Call a release vote on common-dev at hadoop.apache.org.
+   1. Call a release vote on common-dev at hadoop.apache.org.
  
  = Publishing =
  

Reply via email to