You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2015/06/11 02:57:36 UTC

[03/10] accumulo git commit: ACCUMULO-3843 Add email template to build.sh

ACCUMULO-3843 Add email template to build.sh

* Adds an email template and options to build.sh to generate a release candidate
  email after prompting for some basic information.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8782a014
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8782a014
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8782a014

Branch: refs/heads/1.7
Commit: 8782a014370a6e5a8703a234bc20176f949f7d47
Parents: 0b0e8eb
Author: Christopher Tubbs <ct...@apache.org>
Authored: Wed Jun 10 19:36:25 2015 -0400
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Wed Jun 10 20:49:00 2015 -0400

----------------------------------------------------------------------
 assemble/build.sh | 85 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 84 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8782a014/assemble/build.sh
----------------------------------------------------------------------
diff --git a/assemble/build.sh b/assemble/build.sh
index 425c825..f2c9474 100755
--- a/assemble/build.sh
+++ b/assemble/build.sh
@@ -61,6 +61,87 @@ setupRPM() {
   fi
 }
 
+createEmail() {
+  read -p 'Enter the staging repository number: ' stagingrepo
+  read -p 'Enter the version to be released (eg. x.y.z): ' tag
+  read -p 'Enter the release candidate number (eg. 1, 2, etc.): ' rc
+
+  commit=$(git show $tag -n1 --pretty=raw --no-color | head -1 | awk '{print $2}')
+  branch=$tag-rc$rc
+  echo
+  echo    "IMPORTANT!! IMPORTANT!! IMPORTANT!! IMPORTANT!! IMPORTANT!! IMPORTANT!!"
+  echo
+  echo    "    Don't forget to push a branch named $branch with"
+  echo    "    its head at ${commit:0:7} so people can review!"
+  echo
+  echo    "    However, do *NOT* push the $tag tag until after the vote"
+  echo    "    passes and the tag is re-made with a gpg signature using"
+  echo    "    \`git tag -f -m 'Apache Accumulo $tag' -s $tag ${commit:0:7}\`"
+  echo
+  echo    "IMPORTANT!! IMPORTANT!! IMPORTANT!! IMPORTANT!! IMPORTANT!! IMPORTANT!!"
+  echo
+  read -p 'Press Enter to generate the [VOTE] email...' rc
+
+  # compute the date with a buffer of 30 minutes
+  votedate=$(date -d "+3 days 30 minutes" "+%s")
+  # round back to the previous half-hour
+  halfhour=$(($votedate - ($votedate % 1800)))
+  votedate=$(date -u -d"1970-01-01 $halfhour seconds UTC")
+  export TZ="America/New_York"
+  edtvotedate=$(date -d"1970-01-01 $halfhour seconds UTC")
+  export TZ="America/Los_Angeles"
+  pdtvotedate=$(date -d"1970-01-01 $halfhour seconds UTC")
+
+  cat <<EOF
+============================================================
+Subject: [VOTE] Accumulo $branch
+============================================================
+
+Accumulo Developers,
+
+Please consider the following candidate for Accumulo $tag.
+
+Git Commit:
+    $commit
+Branch:
+    $branch
+
+If this vote passes, a gpg-signed tag will be created using:
+    git tag -f -m 'Apache Accumulo $tag' -s $tag $commit
+
+Staging repo: https://repository.apache.org/content/repositories/orgapacheaccumulo-$stagingrepo
+Source (official release artifact): https://repository.apache.org/content/repositories/orgapacheaccumulo-$stagingrepo/org/apache/accumulo/accumulo/$tag/accumulo-$tag-src.tar.gz
+Binary: https://repository.apache.org/content/repositories/orgapacheaccumulo-$stagingrepo/org/apache/accumulo/accumulo/$tag/accumulo-$tag-bin.tar.gz
+(Append ".sha1", ".md5", or ".asc" to download the signature/hash for a given artifact.)
+
+All artifacts were built and staged with:
+    mvn release:prepare && mvn release:perform
+
+Signing keys are available at https://www.apache.org/dist/accumulo/KEYS
+(Expected fingerprint: $(gpg --list-secret-keys --with-colons --with-fingerprint | awk -F: '$1 == "fpr" {print $10}'))
+
+Release notes (in progress) can be found at https://accumulo.apache.org/release_notes/$tag
+
+Please vote one of:
+[ ] +1 - I have verified and accept...
+[ ] +0 - I have reservations, but not strong enough to vote against...
+[ ] -1 - Because..., I do not accept...
+... these artifacts as the $tag release of Apache Accumulo.
+
+This vote will end on $votedate
+($edtvotedate / $pdtvotedate)
+
+Thanks!
+
+P.S. Hint: downlaod the whole staging repo with
+    wget -erobots=off -r -l inf -np -nH \\
+    https://repository.apache.org/content/repositories/orgapacheaccumulo-$stagingrepo/
+    # note the trailing slash is needed
+
+============================================================
+EOF
+}
+
 if [[ $1 = '--create-release-candidate' ]]; then
   cacheGPG; setupRPM
   # create a release candidate from a branch
@@ -75,7 +156,9 @@ elif [[ $1 = '--test' ]]; then
   # build a tag, but with tests
   run mvn clean compile javadoc:aggregate install \
    -P apache-release,check-licenses,thrift,native,assemble,docs,rpm,deb
+elif [[ $1 = '--create-email' ]]; then
+  createEmail
 else
-  fail "Missing one of: --create-release-candidate, --test, --seal-jars"
+  fail "Missing one of: --create-release-candidate, --test, --seal-jars, --create-email"
 fi