Last active
February 22, 2022 07:50
-
-
Save ndimiduk/924db7f5ee75baa67802 to your computer and use it in GitHub Desktop.
queue sheet for creating HBase release candidates from branch-1.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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