Github user tgravescs commented on a diff in the pull request:
https://github.com/apache/spark/pull/21515#discussion_r196137687
--- Diff: dev/create-release/release-util.sh ---
@@ -0,0 +1,219 @@
+#!/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.
+#
+
+DRY_RUN=${DRY_RUN:-0}
+GPG="gpg --no-tty --batch"
+ASF_REPO="https://git-wip-us.apache.org/repos/asf/spark.git"
+ASF_REPO_WEBUI="https://git-wip-us.apache.org/repos/asf?p=spark.git"
+
+function error {
+ echo "$*"
+ exit 1
+}
+
+function read_config {
+ local PROMPT="$1"
+ local DEFAULT="$2"
+ local REPLY=
+
+ read -p "$PROMPT [$DEFAULT]: " REPLY
+ local RETVAL="${REPLY:-$DEFAULT}"
+ if [ -z "$RETVAL" ]; then
+ error "$PROMPT is must be provided."
+ fi
+ echo "$RETVAL"
+}
+
+function parse_version {
+ grep -e '<version>.*</version>' | \
+ head -n 2 | tail -n 1 | cut -d'>' -f2 | cut -d '<' -f1
+}
+
+function run_silent {
+ local BANNER="$1"
+ local LOG_FILE="$2"
+ shift 2
+
+ echo "========================"
+ echo "= $BANNER"
+ echo "Command: $@"
+ echo "Log file: $LOG_FILE"
+
+ "$@" 1>"$LOG_FILE" 2>&1
+
+ local EC=$?
+ if [ $EC != 0 ]; then
+ echo "Command FAILED. Check full logs for details."
+ tail "$LOG_FILE"
+ exit $EC
+ fi
+}
+
+function maybe_run {
+ if is_dry_run; then
+ local BANNER="$1"
+ local LOG_FILE="$2"
+ shift 2
+ echo "======= DRY RUN ======="
+ echo "= $BANNER"
+ echo "Command: $@"
+ echo "Log file: $LOG_FILE"
+ else
+ run_silent "$@"
+ fi
+}
+
+function fcreate_secure {
+ local FPATH="$1"
+ rm -f "$FPATH"
+ touch "$FPATH"
+ chmod 600 "$FPATH"
+}
+
+function check_for_tag {
+ curl -s --head --fail "$ASF_REPO_WEBUI;a=commit;h=$1" >/dev/null
+}
+
+function get_release_info {
+ if [ -z "$GIT_BRANCH" ]; then
+ # If no branch is specified, found out the latest branch from the repo.
+ GIT_BRANCH=$(git ls-remote --heads "$ASF_REPO" |
+ grep -v refs/heads/master |
+ awk '{print $2}' |
+ sort -r |
+ head -n 1 |
+ cut -d/ -f3)
+ fi
+
+ export GIT_BRANCH=$(read_config "Branch" "$GIT_BRANCH")
+
+ # Find the current version for the branch.
+ local VERSION=$(curl -s
"$ASF_REPO_WEBUI;a=blob_plain;f=pom.xml;hb=refs/heads/$GIT_BRANCH" |
+ parse_version)
+ echo "Current branch version is $VERSION."
+
+ if [[ ! $VERSION =~ .*-SNAPSHOT ]]; then
+ error "Not a SNAPSHOT version: $VERSION"
+ fi
+
+ NEXT_VERSION="$VERSION"
+ RELEASE_VERSION="${VERSION/-SNAPSHOT/}"
+ SHORT_VERSION=$(echo "$VERSION" | cut -d . -f 1-2)
+ local REV=$(echo "$VERSION" | cut -d . -f 3)
+
+ # Find out what rc is being prepared.
+ # - If the current version is "x.y.0", then this is rc1 of the "x.y.0"
release.
+ # - If not, need to check whether the previous version has been already
released or not.
+ # - If it has, then we're building rc1 of the current version.
+ # - If it has not, we're building the next RC of the previous version.
+ local RC_COUNT
+ if [ $REV != 0 ]; then
+ local PREV_REL_REV=$((REV - 1))
+ local PREV_REL_TAG="v${SHORT_VERSION}.${PREV_REL_REV}"
+ if check_for_tag "$PREV_REL_TAG"; then
+ RC_COUNT=1
+ REV=$((REV + 1))
+ NEXT_VERSION="${SHORT_VERSION}-${REV}-SNAPSHOT"
+ else
+ RELEASE_VERSION="${SHORT_VERSION}.${PREV_REL_REV}"
+ RC_COUNT=$(git ls-remote --tags "$ASF_REPO"
"v${RELEASE_VERSION}-rc*" | wc -l)
+ RC_COUNT=$((RC_COUNT + 1))
+ fi
+ else
+ REV=$((REV + 1))
+ NEXT_VERSION="${SHORT_VERSION}-${REV}-SNAPSHOT"
+ RC_COUNT=1
+ fi
+
+ export NEXT_VERSION
+ export RELEASE_VERSION=$(read_config "Release" "$RELEASE_VERSION")
+
+ RC_COUNT=$(read_config "RC #" "$RC_COUNT")
+
+ # Check if the RC already exists, and if re-creating the RC, skip tag
creation.
+ RELEASE_TAG="v${RELEASE_VERSION}-rc${RC_COUNT}"
+ SKIP_TAG=0
+ if check_for_tag "RELEASE_TAG"; then
--- End diff --
this needs to be $RELEASE_TAG
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]