Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ndimiduk
Last active February 22, 2022 07:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ndimiduk/924db7f5ee75baa67802 to your computer and use it in GitHub Desktop.
Save ndimiduk/924db7f5ee75baa67802 to your computer and use it in GitHub Desktop.
queue sheet for creating HBase release candidates from branch-1.1
# in local sandbox:
## check compatibility report
git checkout master
GETOPT=/usr/local/Cellar/gnu-getopt/1.1.6/bin/getopt ./dev-support/check_compatibility.sh -r https://git-wip-us.apache.org/repos/asf/hbase.git 1.1.0 branch-1.1
open open dev-support/target/compatibility/report/1.1.0_branch-1.1_compat_report.html
## verify src tgz builds (this one is fragile)
git checkout branch-1.1
mvn clean install -DskipTests assembly:single -Dassembly.file=hbase-assembly/src/main/assembly/src.xml
pushd /tmp
tar xvzf ~/repos/hbase/hbase-assembly/target/hbase-1.1.2-src.tar.gz
cd hbase-1.1.2
mvn clean package -DskipTests
## bump version number
mvn clean org.codehaus.mojo:versions-maven-plugin:1.3.1:set -DnewVersion=1.1.2 -DgenerateBackupPoms=false
git status
git add .
git commit -m "bump version to 1.1.2"
## bring back docs from master
git checkout apache-rw/master -- src/main/asciidoc
git add .
mvn clean install -DskipTests -Dcheckstyle.skip
mvn clean site -DskipTests -Dcheckstyle.skip -Dmaven.javadoc.skip=true
open target/site/index.html # verify it all looks good
git commit -m "updating docs from master"
git push
## update CHANGES.txt from JIRA
TODO: MANUAL PROCESS
git push
## note sha for build in cleanroom
SHA=$(git rev-parse HEAD)
# build RC
## create a case-sensitive workspace
hdiutil create -type SPARSE -fs JHFS+X -size 10g -volname hbase-$VERSION hbase-${VERSION}RC0
open hbase-${VERSION}RC0.sparseimage
cd /Volumes/hbase-$VERSION
## to sign tags, you need to configure a signing key, verify it's set
git config --get user.signingkey
## clean workspace in case-sensitive filesystem
# git clone https://git-wip-us.apache.org/repos/asf/hbase.git hbase
git clone --branch branch-1.1 --single-branch --depth 1 https://git-wip-us.apache.org/repos/asf/hbase.git hbase
cd hbase
git checkout $SHA
git clean -dfx
## uncomment apache server from ~/.m2/settings.xml
## build release candidate
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
export MAVEN_OPTS="-Xmx3g -XX:MaxPermSize=256m"
./dev-support/make_rc.sh
## generate signatures (generally follow instructions printed by make_rc.sh
# 2017-08-21 wake up ssh-agent following HBASE-18585 / MGPG-59
gpg --use-agent --armor --detach-sign --output $(mktemp) pom.xml
cd ../$(ls -1 ../ | grep make_rc | sort -r | head -n 1)
for i in *.tar.gz ; do echo $i ; gpg --print-mds $i > $i.mds ; done
for i in *.tar.gz; do echo $i; gpg --print-md MD5 $i > $i.md5 ; done
for i in *.tar.gz; do echo $i; gpg --print-md SHA512 $i > $i.sha ; done
for i in *.tar.gz ; do echo $i ; gpg -u 0xAD9039071C3489BD --armor --output $i.asc --detach-sig $i ; done
# verify candidate
## unpack and build and verify src tgz
cd /tmp
tar xvzf /Volumes/hbase-1.1.2RC1/$(ls -1 /Volumes/hbase-1.1.2RC1 | grep make_rc | sort -r | head -n 1)/hbase-1.1.2-src.tar.gz
cd hbase-1.1.2
## assert no stray artifacts in src
find . -iname *.orig
find . -iname *.class
find . -iname *.jar
## verify build
mvn clean package -DskipTests
## launch standalone mode, verify UI
## unpack and verify bin tgz
cd ../
rm -rf hbase-1.1.2
tar xvzf /Volumes/hbase-1.1.2RC1/$(ls -1 /Volumes/hbase-1.1.2RC1 | grep make_rc | sort -r | head -n 1)/hbase-1.1.2-bin.tar.gz
cd hbase-1.1.2
open docs/index.html
## assert no stray source code
find . -iname *.java
find . -iname *.scala
## launch standalone mode, verify UI
## verify signatures
mkdir -p /tmp/gpgtmp
curl -s https://people.apache.org/keys/committer/ndimiduk.asc | gpg --homedir /tmp/gpgtmp --import
gpg --homedir /tmp/gpgtmp --verify hbase-1.1.2-bin.tar.gz.asc
gpg --homedir /tmp/gpgtmp --verify hbase-1.1.2-src.tar.gz.asc
# distribute release candidate artifacts
## in maven
https://repository.apache.org
verify, close staging repo
## in svn/dist
cd ~/repos/apache-hbase-dist-dev
svn up
mkdir hbase-$VERSION
rsync -aHv --exclude=repository /Volumes/hbase-1.1.2RC1/$(ls -1 /Volumes/hbase-1.1.2RC1 | grep make_rc | sort -r | head -n 1)/* ./hbase-$VERSION/
svn add hbase-$VERSION
svn st
svn commit -m "HBase-1.1.2 RC0 artifacts"
## tag release
git tag -s 1.1.2RC1 -m "Tag 1.1.2RC1"
git show 1.1.2RC1
git push apache-rw 1.1.2RC1
## build and publish compatibility report
git checkout master
GETOPT=/usr/local/Cellar/gnu-getopt/1.1.6/bin/getopt ./dev-support/check_compatibility.sh -r https://git-wip-us.apache.org/repos/asf/hbase.git 1.1.0 1.1.2RC1
scp dev-support/target/compatibility/report/1.1.0_1.1.2RC1_compat_report.html people.apache.org:public_html/
open http://people.apache.org/~ndimiduk/1.1.0_1.1.2RC1_compat_report.html
# send VOTE thread with
- svn dist path
- maven repo
- your signing key
- tag in git
- compat report
- release notes in JIRA
- notible JIRAs
# promote release
- "release" the staging repo in Nexus
- move RC bits to releases in svn
svn mv https://dist.apache.org/repos/dist/dev/hbase/hbase-1.1.10RC0 https://dist.apache.org/repos/dist/release/hbase/1.1.10 -m "publish HBase 1.1.10"
- retire old release
svn rm https://dist.apache.org/repos/dist/release/hbase/1.1.9
- add, publish release tag
# 2017-08-21 wake up ssh-agent following HBASE-18585 / MGPG-59
gpg --use-agent --armor --detach-sign --output $(mktemp) pom.xml
git tag -s rel/1.1.10 1.1.10RC0 -u 0xAD9039071C3489BD -m "Tag 1.1.10"
git push apache-rw rel/1.1.10
# Tag the commit, not the RC tag.
git tag -s rel/2.3.7 2.3.7RC0^{} -u 0xAD9039071C3489BD -m "Apache HBase release 2.3.7"
- inc version
mvn clean org.codehaus.mojo:versions-maven-plugin:1.3.1:set -DnewVersion=1.1.12-SNAPSHOT -DgenerateBackupPoms=false
mvn clean package -DskipTests
- wait 24 hours for bits to propigate
- send [ANNOUNCE] mail
- 'release' version in JIRA
- update reporter.apache.org
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment