You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by on...@apache.org on 2019/08/30 18:11:28 UTC

[geode] branch release/1.10.0 updated: auto-stage to nexus and output next steps and script to commit the RC

This is an automated email from the ASF dual-hosted git repository.

onichols pushed a commit to branch release/1.10.0
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/release/1.10.0 by this push:
     new effe86b  auto-stage to nexus and output next steps and script to commit the RC
effe86b is described below

commit effe86beb3eaea878f966088785c5f74750a95b6
Author: Owen Nichols <on...@pivotal.io>
AuthorDate: Fri Aug 30 09:44:05 2019 -0700

    auto-stage to nexus and output next steps and script to commit the RC
    
    [skip ci]
    
    (cherry picked from commit 49db9dac4ecd2f6c7a11255def66324fe769c03e)
---
 dev-tools/release/commit_rc.sh  | 101 ++++++++++++++++++++++++++++++++++++++++
 dev-tools/release/prepare_rc.sh |  33 +++++++++----
 2 files changed, 125 insertions(+), 9 deletions(-)

diff --git a/dev-tools/release/commit_rc.sh b/dev-tools/release/commit_rc.sh
new file mode 100755
index 0000000..a91e4b3
--- /dev/null
+++ b/dev-tools/release/commit_rc.sh
@@ -0,0 +1,101 @@
+#!/usr/bin/env bash
+#
+# 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.
+
+set -e
+
+usage() {
+      echo "Usage: print_rc_email.sh -v version_number -m maven_repo_id"
+      echo "  -v   The #.#.#.RC# version number"
+      echo "  -m   The 4 digit id of the nexus maven repo"
+      exit 1
+}
+
+FULL_VERSION=""
+SIGNING_KEY=""
+
+while getopts ":v:m:" opt; do
+  case ${opt} in
+    v )
+      FULL_VERSION=$OPTARG
+      ;;
+    m )
+      MAVEN=$OPTARG
+      ;;
+    \? )
+      usage
+      ;;
+  esac
+done
+
+if [[ ${FULL_VERSION} == "" ]] || [[ ${MAVEN} == "" ]]; then
+  usage
+fi
+
+if [[ $FULL_VERSION =~ ([0-9]+\.[0-9]+\.[0-9]+)\.(RC[0-9]+) ]]; then
+    VERSION=${BASH_REMATCH[1]}
+    RC=${BASH_REMATCH[2]}
+else
+    echo "Malformed version number ${FULL_VERSION}. Example valid number - 1.9.0.RC1"
+    exit 1
+fi
+
+GEODE=$PWD/build/geode
+GEODE_EXAMPLES=$PWD/build/geode-examples
+GEODE_NATIVE=$PWD/build/geode-native
+SVN_DIR=$PWD/build/dist/dev/geode
+
+echo "============================================================"
+echo "Publishing artifacts to apache release location..."
+echo "============================================================"
+cd ${SVN_DIR}
+svn commit -m "Releasing Apache Geode ${FULL_VERSION} distribution"
+
+
+echo "============================================================"
+echo "Pushing tags..."
+echo "============================================================"
+
+cd ${GEODE}
+git push origin rel/v${FULL_VERSION}
+cd ${GEODE_EXAMPLES}
+git push origin rel/v${FULL_VERSION}
+cd ${GEODE_NATIVE}
+git push origin rel/v${FULL_VERSION}
+
+
+echo "============================================================"
+echo "Adding temporary commit for geode-examples to build against staged ${FULL_VERSION}..."
+echo "============================================================"
+cd ${GEODE_EXAMPLES}
+sed -e 's#^geodeRepositoryUrl *=.*#geodeRepositoryUrl = https://repository.apache.org/content/repositories/orgapachegeode-'"${MAVEN}#" \
+    -e 's#^geodeReleaseUrl *=.*#geodeReleaseUrl = https://dist.apache.org/repos/dist/dev/geode/'"${FULL_VERSION}#" -i.bak gradle.properties
+rm gradle.properties.bak
+git add gradle.properties
+git diff --staged
+git commit -m "temporarily point to staging repo for CI purposes"
+git push
+
+
+echo "============================================================"
+echo "Done publishing the release!  Send the email below to announce it:"
+echo "============================================================"
+echo "To: dev@geode.apache.org"
+echo "Subject: [VOTE] Apache Geode ${FULL_VERSION}"
+cd ${GEODE}/../..
+${0%/*}/print_rc_email.sh -v ${FULL_VERSION} -m ${MAVEN}
+echo ""
+which pbcopy >/dev/null && ${0%/*}/print_rc_email.sh -v ${FULL_VERSION} -m ${MAVEN} | pbcopy && echo "(copied to clipboard)"
diff --git a/dev-tools/release/prepare_rc.sh b/dev-tools/release/prepare_rc.sh
index 0bd580d..c5ff8b2 100755
--- a/dev-tools/release/prepare_rc.sh
+++ b/dev-tools/release/prepare_rc.sh
@@ -18,9 +18,10 @@
 set -e
 
 usage() {
-      echo "Usage: prepare_rc -v version_number -k signing_key"
+      echo "Usage: prepare_rc -v version_number -k signing_key -a apache_ldap_username"
       echo "  -v   The #.#.#.RC# version number"
       echo "  -k   Your 8 digit PGP key id. Must be 8 digits. Also the last 8 digits of your gpg fingerprint"
+      echo "  -a   Your apache LDAP username (that you use to log in to https://id.apache.org)"
       exit 1
 }
 
@@ -35,7 +36,7 @@ checkCommand() {
 FULL_VERSION=""
 SIGNING_KEY=""
 
-while getopts ":v:k:" opt; do
+while getopts ":v:k:a:" opt; do
   case ${opt} in
     v )
       FULL_VERSION=$OPTARG
@@ -43,13 +44,16 @@ while getopts ":v:k:" opt; do
     k )
       SIGNING_KEY=$OPTARG
       ;;
+    a )
+      APACHE_USERNAME=$OPTARG
+      ;;
     \? )
       usage
       ;;
   esac
 done
 
-if [[ ${FULL_VERSION} == "" ]] || [[ ${SIGNING_KEY} == "" ]]; then
+if [[ ${FULL_VERSION} == "" ]] || [[ ${SIGNING_KEY} == "" ]] || [[ ${APACHE_USERNAME} == "" ]]; then
   usage
 fi
 
@@ -108,16 +112,13 @@ svn update --set-depth infinity --parents dist/dev/geode
 
 set +x
 echo "============================================================"
-echo "Building projects..."
-echo "============================================================"
-
-echo "============================================================"
 echo "Building geode..."
 echo "============================================================"
 
 cd ${GEODE}
+svn rm ${VERSION}.RC* || true
 set -x
-git clean -fdx && ./gradlew build publishToMavenLocal -Paskpass -Psigning.keyId=${SIGNING_KEY} -Psigning.secretKeyRingFile=${HOME}/.gnupg/secring.gpg
+git clean -fdx && ./gradlew build -x test publishToMavenLocal -Paskpass -Psigning.keyId=${SIGNING_KEY} -Psigning.secretKeyRingFile=${HOME}/.gnupg/secring.gpg
 set +x
 
 
@@ -169,5 +170,19 @@ cp ${GEODE_NATIVE}/build/apache-geode-native-${VERSION}* ${FULL_VERSION}
 svn add ${FULL_VERSION}
 
 echo "============================================================"
-echo "Done preparing the release! Please review the artifacts and publish them."
+echo "Publishing artifacts to nexus staging manager..."
 echo "============================================================"
+cd ${GEODE}
+./gradlew publish -Paskpass -Psigning.keyId=${SIGNING_KEY} -Psigning.secretKeyRingFile=${HOME}/.gnupg/secring.gpg -PmavenUsername=${APACHE_USERNAME}
+
+echo "============================================================"
+echo "Done preparing the release and staging to nexus! Next steps:"
+echo "============================================================"
+echo "1. Go to https://repository.apache.org, login as ${APACHE_USERNAME}, and click on Staging Repositories"
+echo "2. If there is a prior ${VERSION} RC, select it and click Drop."
+echo '3. Make a note of the 4-digit ID of the current ("implicitly created") staging repo.'
+echo '4. Select the current staging repo and click Close.'
+echo '5. Wait ~15 minutes for status to become "Closed"'
+echo "6. Run ${0%/*}/commit_rc.sh -v ${FULL_VERSION} -m <4-DIGIT-ID-NOTED-ABOVE>"
+
+cd ${GEODE}/../..