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

dacort pushed a commit to branch fix/update-release-script
in repository https://gitbox.apache.org/repos/asf/incubator-livy.git

commit 3ec0f13ef959607df1fb5d3c2c900a6c7c2b6002
Author: Damon P. Cortesi <[email protected]>
AuthorDate: Fri Oct 24 11:25:49 2025 -0700

    [LIVY-980] Update release script with modern commands
---
 dev/release-build.sh | 48 +++++++++++++++++++++++++++---------------------
 1 file changed, 27 insertions(+), 21 deletions(-)

diff --git a/dev/release-build.sh b/dev/release-build.sh
index 5c3bbc2a0..e9eeede29 100755
--- a/dev/release-build.sh
+++ b/dev/release-build.sh
@@ -81,11 +81,16 @@ if [ -z "$ASF_PASSWORD" ]; then
   echo
 fi
 
+if [ -z "$GPG_PASSPHRASE" ]; then
+  read -s -p "GPG passphrase: " GPG_PASSPHRASE
+  echo
+fi
+
 # Destination directory on remote server
 
RELEASE_STAGING_LOCATION="https://dist.apache.org/repos/dist/dev/incubator/livy";
 
 LIVY_REPO=${LIVY_REPO:-https://gitbox.apache.org/repos/asf/incubator-livy.git}
-GPG="gpg --no-tty --batch"
+GPG="gpg --no-tty --batch --pinentry-mode loopback"
 NEXUS_ROOT=https://repository.apache.org/service/local/staging
 NEXUS_PROFILE=91529f2f65d84e # Profile for Livy staging uploads
 BASE_DIR=$(pwd)
@@ -115,41 +120,49 @@ cd ..
 
 ARCHIVE_NAME_PREFIX="apache-livy-$LIVY_VERSION"
 SRC_ARCHIVE="$ARCHIVE_NAME_PREFIX-src.zip"
-BIN_ARCHIVE="$ARCHIVE_NAME_PREFIX-bin.zip"
+BIN_ARCHIVE="${ARCHIVE_NAME_PREFIX}-bin.zip"
+SCALA_2_12_PROFILES="-Pscala-2.12"
+SCALA_2_11_PROFILES="-Pscala-2.11"
 
 if [[ "$1" == "package" ]]; then
   # Source and binary tarballs
   echo "Packaging release tarballs"
   cp -r incubator-livy $ARCHIVE_NAME_PREFIX
   zip -r $SRC_ARCHIVE $ARCHIVE_NAME_PREFIX
-  echo "" | $GPG --passphrase-fd 0 --armour --output $SRC_ARCHIVE.asc 
--detach-sig $SRC_ARCHIVE
-  echo "" | $GPG --passphrase-fd 0 --print-md SHA512 $SRC_ARCHIVE > 
$SRC_ARCHIVE.sha512
+  echo $GPG_PASSPHRASE | $GPG --passphrase-fd 0 --armour --output 
$SRC_ARCHIVE.asc --detach-sig $SRC_ARCHIVE
+  shasum -a 512 $SRC_ARCHIVE > $SRC_ARCHIVE.sha512
   rm -rf $ARCHIVE_NAME_PREFIX
 
   # Updated for binary build
   make_binary_release() {
+    BIN_ARCHIVE="${ARCHIVE_NAME_PREFIX}_$1-bin.zip"
+    MVN_FLAGS="clean package -DskipITs -DskipTests -Dgenerate-third-party -e 
$2"
+
     cp -r incubator-livy $ARCHIVE_NAME_PREFIX-bin
     cd $ARCHIVE_NAME_PREFIX-bin
 
-    $MVN clean package -DskipTests -Dgenerate-third-party
+    $MVN $MVN_FLAGS
 
     echo "Copying and signing regular binary distribution"
     cp assembly/target/$BIN_ARCHIVE .
-    echo "" | $GPG --passphrase-fd 0 --armour --output $BIN_ARCHIVE.asc 
--detach-sig $BIN_ARCHIVE
-    echo "" | $GPG --passphrase-fd 0 --print-md SHA512 $BIN_ARCHIVE > 
$BIN_ARCHIVE.sha512
+    echo $GPG_PASSPHRASE | $GPG --passphrase-fd 0 --armour --output 
$BIN_ARCHIVE.asc --detach-sig $BIN_ARCHIVE
+    shasum -a 512 $BIN_ARCHIVE > $BIN_ARCHIVE.sha512
 
     cp $BIN_ARCHIVE* ../
     cd ..
   }
 
-  make_binary_release
+  # Package both scala 2.11 and scala 2.12 packages
+  make_binary_release "2.11" $SCALA_2_11_PROFILES
+  make_binary_release "2.12" $SCALA_2_12_PROFILES
+
+  rm -rf ${ARCHIVE_NAME_PREFIX}-bin/
 
   svn co --depth=empty $RELEASE_STAGING_LOCATION svn-livy
   mkdir -p svn-livy/$LIVY_VERSION-$RELEASE_RC
 
   echo "Copying release tarballs to local svn directory"
-  cp ./$SRC_ARCHIVE* svn-livy/$LIVY_VERSION-$RELEASE_RC/
-  cp ./$BIN_ARCHIVE* svn-livy/$LIVY_VERSION-$RELEASE_RC/
+  cp "${ARCHIVE_NAME_PREFIX}"* svn-livy/$LIVY_VERSION-$RELEASE_RC/
 
   cd svn-livy
   svn add $LIVY_VERSION-$RELEASE_RC
@@ -182,7 +195,8 @@ if [[ "$1" == "publish-release" ]]; then
   staged_repo_id=$(echo $out | sed -e "s/.*\(orgapachelivy-[0-9]\{4\}\).*/\1/")
   echo "Created Nexus staging repository: $staged_repo_id"
 
-  $MVN -Dmaven.repo.local=$tmp_repo -DskipTests -DskipITs clean install
+  $MVN -Dmaven.repo.local=$tmp_repo -DskipTests -DskipITs $SCALA_2_11_PROFILES 
clean install
+  $MVN -Dmaven.repo.local=$tmp_repo -DskipTests -DskipITs $SCALA_2_12_PROFILES 
install
 
   pushd $tmp_repo/org/apache/livy
 
@@ -192,16 +206,8 @@ if [[ "$1" == "publish-release" ]]; then
   echo "Creating hash and signature files"
   for file in $(find . -type f)
   do
-    echo "" | $GPG --passphrase-fd 0 --output $file.asc \
-      --detach-sig --armour $file;
-    if [ $(command -v md5) ]; then
-      # Available on OS X; -q to keep only hash
-      md5 -q $file > $file.md5
-    else
-      # Available on Linux; cut to keep only hash
-      md5sum $file | cut -f1 -d' ' > $file.md5
-    fi
-    sha1sum $file | cut -f1 -d' ' > $file.sha1
+    echo $GPG_PASSPHRASE | $GPG --passphrase-fd 0 --armour --output $file.asc 
--detach-sig $file
+    shasum -a 512 $file > $file.sha512
   done
 
   nexus_upload=$NEXUS_ROOT/deployByRepositoryId/$staged_repo_id

Reply via email to