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
Start with this query and verify:
| project in (SUBMARINE) AND "Target Version/s" = 0.2.0 and statusCategory != Done |
|---|
<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> |
|---|
To release Submarine-X.Y.Z, following branch changes are required.
For Major release (i.e., Y = 0 and Z = 0)
Update the Versions (Linux)
| find . -name pom.xml -type f | xargs sed -i 's/0.2.0-SNAPSHOT/1.0.0-SNAPSHOT/g' |
|---|
Update the Versions (Mac)
| find . -name pom.xml -type f -print0 | xargs -0 sed -i '' 's/0.2.0-SNAPSHOT/1.0.0-SNAPSHOT/g' |
|---|
| git commit -m "Preparing for submarine-1.0.0 development" |
|---|
For Minor release (i.e., Z = 0)
Update the Versions (Linux)
| find . -name pom.xml -type f | xargs sed -i 's/0.2.0-SNAPSHOT/0.3.0-SNAPSHOT/g' |
|---|
Update the Versions (Mac)
| find . -name pom.xml -type f -print0 | xargs -0 sed -i '' 's/0.2.0-SNAPSHOT/0.3.0-SNAPSHOT/g' |
|---|
| git commit -m "Preparing for submarine-0.3.0 development" |
|---|
For eg;, this step can be done from submarine-0.2 branch and change all pom.xml of submarine as per above steps.
For Point release (i.e., always)
Update the Versions (Linux)
| find . -name pom.xml -type f | xargs sed -i 's/0.2.0-SNAPSHOT/0.2.1-SNAPSHOT/g' |
|---|
Update the Versions (Mac)
| find . -name pom.xml -type f -print0 | xargs -0 sed -i '' 's/0.2.0-SNAPSHOT/0.2.1-SNAPSHOT/g' |
|---|
| git commit -m "Preparing for submarine-0.2.1 development" |
|---|
Release branch (branch-X.Y.Z) updates
Update the version on submarine-X.Y.Z TO X.Y.Z
Update the Versions (Linux)'
| find . -name pom.xml -type f | xargs sed -i 's/0.2.0-SNAPSHOT/0.2.0/g' |
|---|
Update the Versions (Mac)
| find . -name pom.xml -type f -print0 | xargs -0 sed -i '' 's/0.2.0-SNAPSHOT/0.2.0/g' |
|---|
Now, for any branches in {trunk, submarine-X, submarine-X.Y, submarine-X.Y.Z} that have changed, push them to the remote repo taking care of any conflicts.
| git push <remote> <branch> |
|---|
Set below env variables
export VERSION=0.2.0 export RELEASE_DIR=~/submarine-release/ export CODESIGNINGKEY=your_gpg_key_id |
|---|
Build the release tar balls.
| mvn clean; mvn install -Dmaven.javadoc.skip=true -Psign,dist,src,submarine,submarine-src -Dgpg.useagent=true -Dgpg.executable=gpg -Dtar -DskipTests -DskipShade -Dgpg.keyname=$CODESIGNINGKEY |
|---|
Run rat check against submarine source code. If there are issues, double check the rat log to find and fix any potential licensing issues.
Run RAT Check
| ./hadoop-submarine/dev-support/checks/rat.sh |
|---|
Tag the release. Do it from the release branch and push the created tag to the remote repository:
git tag -s submarine-$VERSION-RC0 -m "Submarine ${VERSION} release" git push origin submarine-$VERSION-RC0 |
|---|
Copy to all relevant artifacts to Release Directory. (Define RELEASE_DIR in local machine)
cp hadoop-submarine/hadoop-submarine-dist/target/hadoop-submarine-dist-$VERSION-hadoop-3.1.tar.gz $RELEASE_DIR/hadoop-submarine-$VERSION.tar.gz cp hadoop-dist/target/hadoop-submarine-3.3.0-SNAPSHOT-src.tar.gz $RELEASE_DIR/hadoop-submarine-$VERSION-src.tar.gz cd $RELEASE_DIR |
|---|
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 |
|---|
FTP to the apache server
| sftp home.apache.org |
|---|
Create public_html
| mkdir public_html |
|---|
Create the Release Directory under public_html
| mkdir public_html/submarine-0.X.0-rc0/ |
|---|
Move into the release directory
| cd public_html/submarine-0.X.0-alpha-rc0 |
|---|
Upload Release Artifacts
mput * |
|---|
Upload Release Artifacts
cd hadoop-submarine mvn deploy -Psign -Dgpg.keyname=$CODESIGNINGKEY |
|---|