This document describe the process to release apache Hadoop Ozone. The process is not yet scripted and the documentation is work in progress
Pre-Requisite
Release manager should have a gpg key setup to sign the artifacts. For more details refer below link.
https://www.apache.org/dev/new-committers-guide.html#set-up-security-and-pgp-keys
Pre-Vote
Set up environment variables
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | 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
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | 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".
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Update the Versions (Linux) |
---|
|
find . -name pom.xml -type f | xargs sed -i 's/0.4.0-SNAPSHOT/0.4.0-alpha/g' |
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | 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
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Commit the version changes |
---|
|
git commit -am "commit updated ozone version" |
Tag the repository
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Tag the Release |
---|
|
git tag -s ozone-$VERSION-RC0 |
Create the release artifacts
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Run RAT Check |
---|
|
./hadoop-ozone/dev-support/checks/rat.sh |
- Clean the Repo of all Rat output
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Reset the Git Repo |
---|
|
git reset --hard
git clean -dfx |
- Build the Release Tarballs.
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Build Ozone |
---|
|
mvn clean install -f pom.ozone.xml -Dmaven.javadoc.skip=true -DskipTests -Psign,dist,src -Dtar -Dgpg.keyname=$CODESIGNINGKEY |
- Now that we have build the release artifacts, we will copy them to the release directory.
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Copy to Release Directory |
---|
|
cp hadoop-ozone/dist/target/hadoop-ozone-*.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
cd $RELEASE_DIR |
Calculate the checksum and sign the artifacts
Code Block |
---|
|
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
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | FTP to the apache server |
---|
|
sftp home.apache.org |
- Create a directory called "public_html" if it does not exist.
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Create public_html |
---|
|
mkdir public_html |
- Create the Release Directory
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Create the Release Directory under public_html |
---|
|
mkdir public_html/ozone-0.4.0-alpha-rc0/ |
- Change directory into the new release directory
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Move into the release directory |
---|
|
cd public_html/ozone-0.4.0-alpha-rc0 |
- Upload the release artifacts to this release directory
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | 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
Code Block |
---|
<settings>
<server>
<id>apache.snapshots.https</id>
<username>your_apache_id</username>
<password>your_apache_password</password>
</server>
<!-- To stage a release of some part of Maven -->
<server>
<id>apache.releases.https</id>
<username>your_apache_id</username>
<password>your_apache_password</password>
</server>
</settings> |
Do a maven deploy from the ozone and hdds projects
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Upload Release Artifacts |
---|
|
mvn deploy -f pom.ozone.xml
|
Go the the https://repository.apache.org and close the newly created hadoop repository (select the latest one which contains the hadoop in the name)
Image Removed
Push the tag to github
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | 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
- Hadoop Common <common-dev@hadoop.apache.org>
- Hdfs-dev <hdfs-dev@hadoop.apache.org>
- yarn-dev@hadoop.apache.org <yarn-dev@hadoop.apache.org>
- mapreduce-dev@hadoop.apache.org <mapreduce-dev@hadoop.apache.org>
Vote
After-Vote
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: https://dist.apache.org/repos/dist/dev/hadoop
And commit the artifacts to a new directory.
PMC members can move it to the final location:
Code Block |
---|
svn mv https://dist.apache.org/repos/dist/dev/hadoop/ozone-0.3.0-alpha https://dist.apache.org/repos/dist/release/hadoop/ozone/ozone-0.3.0-alpha |
To publish the artifacts to the central maven, login to the https://repository.apache.org, 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:
- You need a new page like ozone/src/release/0.3.0-alpha.md
- You put the photo with the haiku to ozone/static/releases/
- Regenerate the site: cd ozone && hugo
- Create a shorter announcement to the hadoop site, such as src/news/2018-11-22-ozone-0.3.0-alpha.md
- Execute hugo on the root dir of the repository
- 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 listSee: Ozone Release Guideline