This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Page tree
Skip to end of metadata
Go to start of metadata

This document describe the process to release apache Hadoop Ozone. The process is not yet scripted and the documentation is work in progress


Release manager should have a gpg key setup to sign the artifacts. For more details refer below link.


Set up environment variables

Export Vars
export VERSION=0.4.0-alpha

export RELEASE_DIR=~/ozone-release/ (ozone-release needs to be created)

export CODESIGNINGKEY=your_gpg_key_id

Reset the git repository

Reset the Git Repo
git reset --hard

git clean -dfx

Update the versions

Use below command or use IDE to replace "0.4.0-SNAPSHOT" to "0.4.0-alpha".

Update the Versions (Linux)
find . -name pom.xml -type f | xargs sed -i 's/0.4.0-SNAPSHOT/0.4.0-alpha/g'
Update the Versions (Mac)
find . -name pom.xml -type f -print0 | xargs -0 sed -i '' 's/0.4.0-SNAPSHOT/0.4.0-alpha/g'

Commit the changes

Commit the version changes
git commit -am "commit updated ozone version"

Tag the repository

Tag the Release
git tag -s ozone-$VERSION-RC0

Create the release artifacts

  • Run rat check
Run RAT Check
  • Clean the Repo of all Rat output
Reset the Git Repo
git reset --hard

git clean -dfx
  • Build the Release Tarballs.
Run RAT Check
mvn clean install -Dmaven.javadoc.skip=true -DskipTests -DskipShade -Psign,dist,src,hdds,hdds-src -Dtar -Dgpg.keyname=$CODESIGNINGKEY
  • Now that we have build the release artifacts, we will copy them to the release directory.

Copy to Release Directory
cp hadoop-dist/target/hadoop-ozone-*-src-with-hdds.tar.gz $RELEASE_DIR/hadoop-ozone-$VERSION-src.tar.gz

cp hadoop-ozone/dist/target/ozone-$VERSION.tar.gz $RELEASE_DIR/hadoop-ozone-$VERSION.tar.gz


Calculate the checksum and sign the artifacts

for i in $(ls -1 *.tar.gz); do gpg  -u ${CODESIGNINGKEY} --armor --output "${i}.asc" --detach-sig "${i}"; done

for i in $(ls -1 *.tar.gz); do sha512sum ${i} > ${i}.sha512; done

for i in $(ls -1 *.tar.gz); do gpg --print-mds ${i} > ${i}.mds; done

Upload the artifacts to somewhere

  •  Upload everything from the $RELEASE_DIR to your apache home with sftp
FTP to the apache server
  • Create a directory called "public_html" if it does not exist.
Create public_html
mkdir public_html
  • Create the Release Directory
Create the Release Directory under public_html
mkdir public_html/ozone-0.4.0-alpha-rc0/
  • Change directory into the new release directory
Move into the release directory
cd public_html/ozone-0.4.0-alpha-rc0
  • Upload the release artifacts to this release directory
Upload Release Artifacts
mput *

Upload the artifacts to the apache nexus

Double check if your apache credentials are added to your local ~/.m2/settings.xml

    <!-- To stage a release of some part of Maven -->

Do a maven deploy from the ozone and hdds projects

Upload Release Artifacts
cd hadoop-ozone
mvn deploy
cd ../hadoop-hdds
mvn deploy

Go the the and close the newly created hadoop repository (select the latest one which contains the hadoop in the name)

Push the tag to github

Push the tag
git push origin ozone-0.4.0-alpha-RC0

Note: You can push the tag as is and merge it to the branch in case of a successful vote.

Send the voting mail to below mailing list

  1. Hadoop Common <>
  2. Hdfs-dev <>
  3. <>
  4. <>



Publish the artifacts

You should commit the artifacts to the SVN repository. If you are not a PMC member you can commit it to the dev zone first and ask a PMC for the final move:

Checkout the svn folder:

And commit the artifacts to a new directory.

PMC members can move it to the final location:

svn mv

To publish the artifacts to the central maven, login to the, select your staging repository and Release it.

Write a haiku

Check the tag from the Ozone Road Map page (it's a national park).

Find a photo which is under the CC license.

Write a haiku to the photo with Future font.

Save it to add it to the announcement page.

Update the ozone and hadoop sites

This is documented here: How to generate and push ASF web site after HADOOP-14163

The same repository contains both the hadoop and the ozone sub-site.

In short:

  1. You need a new page like ozone/src/release/
  2. You put the photo with the haiku to ozone/static/releases/
  3. Regenerate the site: cd ozone && hugo
  4. Create a shorter announcement to the hadoop site, such as src/news/
  5. Execute hugo on the root dir of the repository
  6. Go to the content subfolder, start a webserver (I use Caddy without a config but python -m http also works) and check the result

You also need to upload the docs folder. It should be copied from the binary artifact to content/ozone/docs/...

Please also update the content/ozone/current symbolic link

At the end: commit and push everything (including the changes under ./content)

Add the final git tag and push it

git checkout ozone-0.3.0-alpha-RC1

git tag -s ozone-0.3.0-alpha -m "HDDS-602. Ozone 0.3.0-alpha release"

git push ozone-0.3.0-alpha

Change the development version on the branch

1. Usually I push the release tags as is and merge them back to the version branch later:

git checkout ozone-0.3

git merge apache/ozone-0.3

git merge ozone-0.3.0-alpha

2. Restore the apache hadoop version and bump the ozone version:

find -name pom.xml -type f | xargs -n 1 sed -i 's/ozone-0.3.0-alpha/3.3.0-SNAPSHOT/g'

find -name pom.xml -type f | xargs -n 1 sed -i 's/0.3.0-alpha/0.3.1-SNAPSHOT/g'

3. Do a build and push the branch

Write an announcement mail to the hadoop mailing lists

Include general + user + all the dev mailing list

  • No labels