You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemall.apache.org by my...@apache.org on 2018/02/14 07:41:43 UTC
incubator-hivemall git commit: Update release guide
Repository: incubator-hivemall
Updated Branches:
refs/heads/master 040cec76a -> c119e7929
Update release guide
Project: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/commit/c119e792
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/tree/c119e792
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/diff/c119e792
Branch: refs/heads/master
Commit: c119e79295d03e6b8ee6b855c34846bbf53fcaad
Parents: 040cec7
Author: Makoto Yui <my...@apache.org>
Authored: Wed Feb 14 16:41:29 2018 +0900
Committer: Makoto Yui <my...@apache.org>
Committed: Wed Feb 14 16:41:29 2018 +0900
----------------------------------------------------------------------
src/site/markdown/release-guide.md | 92 +++++++++++++++++-------
src/site/markdown/verify_howto.md | 121 ++++++++++++++++++++++++++++++++
2 files changed, 188 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/c119e792/src/site/markdown/release-guide.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/release-guide.md b/src/site/markdown/release-guide.md
index e800308..b263371 100644
--- a/src/site/markdown/release-guide.md
+++ b/src/site/markdown/release-guide.md
@@ -76,8 +76,6 @@ git pull # or, git reset --hard asf/master
```sh
version=X.Y.Z
-# RC should start at 1 and increment if early release candidates fail to release
-rc=1
# echo "${version}-incubating-SNAPSHOT"
./bin/set_version.sh --pom --version "${version}-incubating-SNAPSHOT"
@@ -99,15 +97,17 @@ rc=1
next_version=X.(Y+1).Z
# Confirm that version and rc is defined.
-echo "Release version: ${version}-incubating-rc${rc}"
+echo "Release version: ${version}-incubating"
echo "Development version: ${next_version}-incubating-SNAPSHOT"
mvn -Papache-release release:prepare \
-DautoVersionSubmodules=true -DdryRun=true \
-Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \
- -Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating-rc${rc} -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT
+ -Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT
```
+**Note:** `-rcX` is only used for git tag. Release candidates do NOT have `-rcX` for artifact versions in pom. Release candidates are just for voting.
+
### PUBLISH A SNAPSHOT
```sh
@@ -155,18 +155,18 @@ rc=1
next_version=X.(Y+1).Z
# Confirm that version and rc is defined.
-echo ${version}-incubating-rc${rc}
-# X.Y.Z-incubating-rc1
+echo "${version}-incubating (Release Candidates ${rc})"
+# 0.5.0-incubating (Release Candidates 3)
```
**2)** Update version strings in source codes.
```sh
-./bin/set_version.sh --version "${version}-incubating-rc${rc}"
+./bin/set_version.sh --version "${version}-incubating"
# Check list of files to be committed.
-git stauts
-git commit -a -m "Bumped version string to ${version}-incubating-rc${rc}"
+git status
+git commit -a -m "Bumped version string to ${version}-incubating"
```
**3)** Prepare sets the version numbers in POM and creates a tag.
@@ -175,7 +175,7 @@ git commit -a -m "Bumped version string to ${version}-incubating-rc${rc}"
mvn -Papache-release release:clean release:prepare \
-DautoVersionSubmodules=true -DdryRun=false \
-Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \
- -Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating-rc${rc} -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT
+ -Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT
```
**4)** Update version strings for the development iteration
@@ -254,7 +254,10 @@ cd hivemall
# Download release artifacts
wget -e robots=off --no-check-certificate \
-r -np --reject=html,txt,tmp -nH --cut-dirs=7 \
- https://repository.apache.org/content/repositories/orgapachehivemall-1001/org/apache/hivemall/hivemall/${version}-incubating-rc${rc}/
+ https://repository.apache.org/content/repositories/orgapachehivemall-1001/org/apache/hivemall/hivemall/${version}-incubating/
+
+# Rename directory for RC
+mv ${version}-incubating ${version}-incubating-rc${rc}
# Put ChangeLog
cd ${version}-incubating-rc${rc}
@@ -282,16 +285,16 @@ svn commit -m "Put hivemall version ${version}-incubating-rc${rc} artifacts"
## PPMC voting
-Create a VOTE email thread on `dev@hivemall.i.a.o` to record votes as replies.
+Create a VOTE email thread on [dev@hivemall.incubator.apache.org](mailto:dev@hivemall.incubator.apache.org) to record votes as replies.
```
To: dev@hivemall.incubator.apache.org
CC: private@hivemall.incubator.apache.org
-Subject: [VOTE] Release Apache Hivemall (Incubating) <release version>
+Subject: [VOTE] Release Apache Hivemall (Incubating) v0.5.0 Release Candidate #3
Hi all,
-Apache Hivmeall 0.5.0 release candidate #1 (the first Apache release!) is now available for a vote within dev community.
+Apache Hivmeall 0.5.0 release candidate #1 is now available for a vote within dev community.
Links to various release artifacts are given below. Please review and cast your vote.
@@ -331,42 +334,81 @@ Regards,
Makoto
```
+Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and pronouncing the release candidate a success.
+
+```
+To: dev@hivemall.incubator.apache.org
+Subject: [RESULT][VOTE]: Release Apache Hivemall (Incubating) <release version>
+
+Hi all,
+
+The Apache Hivemall <release version> vote is now closed and has passed as follows:
+
+From PPMC members:
++1 myui (Makoto)
++1 maropu (Takeshi)
++1 lewuathe (Kai)
++1 takuti (Takuya)
++1 ozawa (Tsuyoshi)
+
+From Mentors:
++1 daniel (IPMC)
+
+Other non-binding votes:
++1 Kento (committer)
+
+I will send a vote mail to incubator-general mail list to collect three IPMC +1's votes.
+https://incubator.apache.org/policy/incubation.html#releases.
+
+If voting succeeds, v0.5.0 will be released based on v0.5.0-rc2 with removing rc2.
+
+Thanks all of the voters.
+
+Thanks,
+Makoto
+on behalf of Apache Hivemall PPMC
+```
+
## IPMC Voting
-What if vote succeed, then vote in `general@incubator.apache.org`.
+What if vote succeed, then vote in [general@incubator.apache.org](mailto:general@incubator.apache.org).
+Three +1 Incubator PMC votes are required as described in [this page](https://incubator.apache.org/policy/incubation.html#releases).
```
To: general@incubator.apache.org
-Subject: [VOTE] Release Apache Hivemall (Incubating) <release version>
+Subject: [VOTE] Release Apache Hivemall (Incubating) v0.5.0-RC2
Hi all,
-The Apache Hivemall community has voted on and approved a proposal to release Apache Hivemall 0.5.0-rc1 (the first Apache release). Apache Hivemall is a library for machine learning for Apache Hive/Spark/Pig, incubating since 2016-09-13.
+The Apache Hivemall community has approved a proposal to release Apache Hivemall v0.5.0 by v0.5.0-RC2.
We now kindly request that the Incubator PMC members review and vote on this incubator release candidate.
The PPMC vote thread is located here:
- <link to the dev voting thread>
+ https://www.mail-archive.com/dev@hivemall.incubator.apache.org/msg00450.html (vote)
+ https://www.mail-archive.com/dev@hivemall.incubator.apache.org/msg00460.html (vote result)
Links to various release artifacts are given below.
- The source tarball, including signatures, digests, ChangeLog, etc.:
- https://dist.apache.org/repos/dist/dev/incubator/hivemall/0.5.0-incubating-rc1/
- - KEYS file for verification:
- https://dist.apache.org/repos/dist/dev/incubator/hivemall/KEYS
+ https://dist.apache.org/repos/dist/dev/incubator/hivemall/0.5.0-incubating-rc2/
+ - Sources for the release:
+ https://dist.apache.org/repos/dist/dev/incubator/hivemall/0.5.0-incubating-rc2/hivemall-0.5.0-incubating-rc2-source-release.zip
- Git tag for the release:
- https://git-wip-us.apache.org/repos/asf?p=incubator-hivemall.git;a=shortlog;h=refs/tags/v0.5.0-rc1
+ https://git-wip-us.apache.org/repos/asf?p=incubator-hivemall.git;a=shortlog;h=refs/tags/v0.5.0-rc2
- The Nexus Staging URL:
- https://repository.apache.org/content/repositories/orgapachehivemall-1001/
+ https://repository.apache.org/content/repositories/orgapachehivemall-1002/
+ - KEYS file for verification:
+ https://dist.apache.org/repos/dist/dev/incubator/hivemall/KEYS
- For information about the contents of this release, see:
- https://dist.apache.org/repos/dist/dev/incubator/hivemall/0.5.0-incubating-rc1/ChangeLog.html
+ https://dist.apache.org/repos/dist/dev/incubator/hivemall/0.5.0-incubating-rc2/ChangeLog.html
Artifacts verification how-to can be found in
http://hivemall.incubator.apache.org/verify_artifacts.html
Please vote accordingly:
-[ ] +1 approve (Release this package as Apache Hivemall 0.5.0-incubating-rc1)
+[ ] +1 approve
[ ] -1 disapprove (and reason why)
The vote will be open for at least 72 hours.
http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/c119e792/src/site/markdown/verify_howto.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/verify_howto.md b/src/site/markdown/verify_howto.md
new file mode 100644
index 0000000..f5226f0
--- /dev/null
+++ b/src/site/markdown/verify_howto.md
@@ -0,0 +1,121 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<!-- toc -->
+
+# 1. Preparation
+
+## Install required softwares
+
+GPG and Maven, JDK 7 is mandatory for verification.
+
+```sh
+brew install gpg gpg-agent pinentry-mac
+brew install maven
+brew install md5sha1sum
+```
+
+## Import GPG KEYS
+
+```sh
+# Download GPG KEYS
+wget https://dist.apache.org/repos/dist/dev/incubator/hivemall/KEYS
+
+# import KEYS for GPG verification
+gpg --import KEYS
+```
+
+# 2. Download all release artifacts
+
+```sh
+VERSION=0.5.0
+RC_NUMBER=3
+
+wget -e robots=off --no-check-certificate \
+ -r -np --reject=html,txt,tmp -nH --cut-dirs=5 \
+ https://dist.apache.org/repos/dist/dev/incubator/hivemall/${VERSION}-incubating-rc${RC_NUMBER}/
+```
+
+# 3. Verify SHA1, MD5, and GPG signatures.
+
+```sh
+cd ${VERSION}-incubating-rc${RC_NUMBER}/
+
+for f in `find . -type f -iname '*.sha1'`; do
+ echo -n "Verifying ${f%.*} ... "
+ sha1sum ${f%.*} | cut -f1 -d' ' | diff -Bw - ${f}
+ if [ $? -eq 0 ]; then
+ echo 'Valid'
+ else
+ echo "SHA1 is Invalid: ${f}" >&2
+ exit 1
+ fi
+done
+echo
+for f in `find . -type f -iname '*.md5'`; do
+ echo -n "Verifying ${f%.*} ... "
+ md5sum ${f%.*} | cut -f1 -d' ' | diff -Bw - ${f}
+ if [ $? -eq 0 ]; then
+ echo 'Valid'
+ else
+ echo "MD5 is Invalid: ${f%.*}" >&2
+ exit 1
+ fi
+done
+echo
+for f in `find . -type f -iname '*.asc'`; do
+ gpg --verify ${f}
+ if [ $? -eq 0 ]; then
+ echo "GPG signature is correct: ${f%.*}"
+ else
+ echo "GPG signature is Invalid: ${f%.*}" >&2
+ exit 1
+ fi
+ echo
+done
+```
+
+# 4. Build, Test, and Verify source
+
+```sh
+unzip hivemall-${VERSION}-incubating-source-release.zip
+cd hivemall-${VERSION}-incubating
+
+# workaround for Maven sign-release-artifacts plugin
+export GPG_TTY=$(tty)
+
+# JDK 7 is required for packaging
+export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
+
+# Java 8 is required for building Spark 2.2 module
+export JAVA8_HOME=`/usr/libexec/java_home -v 1.8`
+
+# Try to create artifacts
+export MAVEN_OPTS=-XX:MaxPermSize=256m
+
+# Try to create artifacts
+# RAT license check and unit tests will be issued
+mvn -Papache-release clean install
+
+# Verify Signatures of Release Artifacts
+cd target/
+for file in `find . -type f -iname '*.asc'`; do
+ gpg --verify ${file}
+done
+```
\ No newline at end of file