The Hadoop-thirdparty artifacts have a different release number, different repo. But apart from that, it is mostly the same as the main Hadoop releases.
~/.m2/settings.xml
: <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>apache.staging.https</id> <username>Apache username</username> <password>Apache password</password> </server> </servers> </settings> |
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.
Update the version on trunk to (X+1).0.0-SNAPSHOT
mvn versions:set -DnewVersion=(X+1).0.0-SNAPSHOT
Commit the version change to trunk.
git commit -a -m "Preparing for (X+1).0.0 development"
Update the version on branch-X to X.(Y+1).0-SNAPSHOT
mvn versions:set -DnewVersion=X.(Y+1).0-SNAPSHOT
Commit the version change to branch-X.
git commit -a -m "Preparing for X.(Y+1).0 development"
Update the version on branch-X.Y to X.Y.(Z+1)-SNAPSHOT
mvn versions:set -DnewVersion=X.Y.(Z+1)-SNAPSHOT
Commit the version change to branch-X.Y.
git commit -a -m "Preparing for X.Y.(Z+1) development"
Update the version on branch-X.Y.Z TO X.Y.Z
mvn versions:set -DnewVersion=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>
These steps need to be performed to create the _N_th RC for X.Y.Z, where N starts from 0.
For the Apache release, a machine capable of running Docker- and Internet- capable, build the release candidate with create-release
. Unless the --logdir
is given, logs will be in the patchprocess/
directory. Artifacts will be in the target/artifacts NOTE: This will take quite a while, since it will download and build the entire source tree, including documentation and native components, from scratch to avoid maven repository caching issues hiding issues with the source release.
dev-support/bin/create-release --asfrelease --docker --dockercache
While it should fail create-release
if there are issues, doublecheck the rat log to find and fix any potential licensing issues.
grep 'Rat check' patchprocess/mvn_apache_rat.log
export version=X.Y.Z-RCN
Tag the release candidate:
git tag -s release-$version -m "Release candidate - $version"
Deploy the maven artifacts, on your personal computer. Please be sure you have completed the prerequisite step of preparing the settings.xml
file before the deployment. You might want to do this in private and clear your history file as your gpg-passphrase is in clear text.
mvn deploy -Psign,dist -DskipTests -DskipShade
Copy release files to a public place and ensure they are readable. Note that home.apache.org
only supports SFTP, so this may be easier with a graphical SFTP client like Nautilus, Konqueror, etc.
sftp home.apache.org > cd public_html > mkdir hadoop-thirdparty-${version} > put -r /home/hadoop/hadoop-thirdparty-${version} .... > bye
Staging
Repositories" from the left navigation pane, select the check-box against the specific hadoop repository, and close
the release. At the time of deploying the maven artifacts, if there are different hadoop items of this release candidate at “Staging Repositories”, drop the stale RC first.In 5 days if the release vote passes, the release may be published.
export version=X.Y.Z
Tag the release. Do it from the release branch and push the created tag to the remote repository:
git tag -s rel/release-${version} -m "Hadoop Thirdparty ${version} release" git push origin rel/release-${version}
Check out the corresponding svn repo if need be
svn co https://dist.apache.org/repos/dist/release/hadoop/thirdparty/ hadoop-thirdparty-dist
Commit the changes (it requires a PMC privilege)
svn ci -m "Publishing the bits for Hadoop Thirdparty release ${version}"
Copy and commit the CHANGES.md and RELEASENOTES.md:
git commit -a -m "Make upstream aware of ${version} release."
Release