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

kou pushed a commit to branch maint-21.0.0
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/maint-21.0.0 by this push:
     new 60c7cfe336 GH-47092: [Release] Fix errors in APT/Yum previous version 
verification (#47093)
60c7cfe336 is described below

commit 60c7cfe33600fa736ee501469da0bae89934dc28
Author: Sutou Kouhei <[email protected]>
AuthorDate: Mon Jul 14 11:44:36 2025 +0900

    GH-47092: [Release] Fix errors in APT/Yum previous version verification 
(#47093)
    
    ### Rationale for this change
    
    There are some problems in APT/Yum previous version verification:
    
    * There are some typos
    * Can't reuse `dev/release/verify-release-candidate.sh` for the previous 
version verification
    
    ### What changes are included in this PR?
    
    * Fix typos
    * Reuse `dev/release/verify-release-candidate.sh` for the previous version 
verification
    * Ignore the previous version verification result for now
      * We may revisit this once we can fix the current problems. See the added 
comments for details.
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #47092
    
    Authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 .github/workflows/verify_rc.yml         | 52 +++++++++++++++++++++++++++++----
 dev/release/verify-release-candidate.sh | 12 ++++++--
 2 files changed, 56 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/verify_rc.yml b/.github/workflows/verify_rc.yml
index f2e17af4ba..6eefcaf8b9 100644
--- a/.github/workflows/verify_rc.yml
+++ b/.github/workflows/verify_rc.yml
@@ -91,16 +91,37 @@ jobs:
       VERSION: ${{ needs.target.outputs.version }}
     steps:
       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
v4.2.2
+        with:
+          fetch-depth: 0
       - name: Run
         run: |
           dev/release/verify-release-candidate.sh ${VERSION} ${RC}
       - name: Verify the previous version
+        # TODO: We may re-enable this in the future.
+        # There are some problems for now:
+        # * We need to specify the previous versions for all
+        #   dependencies explicitly. For example, "apt install
+        #   libarrow-glib-dev=20.0.0-1" doesn't work. We need "apt
+        #   install libarrow-glib-dev=20.0.0-1
+        #   libarrow-acero-dev=20.0.0-1 libparquet-dev=20.0.0-1
+        #   gir1.2-arrow-1.0=20.0.0-1 libparquet-dev=20.0.0-1
+        #   libarrow-dev=20.0.0-1"
+        continue-on-error: true
         run: |
           major_version=${VERSION%%.*}
-          previous_major_version$((major_version - 1))
+          previous_major_version=$((major_version - 1))
           previous_version=${previous_major_version}.0.0
-          rc=0 # This number isn't used for APT verification
-          dev/release/verify-release-candidate.sh ${previous_version} ${rc}
+          previous_tag=apache-arrow-${previous_version}
+          git checkout ${previous_tag}
+          # This is workaround. dev/release/verify-release-candidate.sh
+          # in < 21.0.0 doesn't accept 20.0.0 as the VERSION argument.
+          # We can remove this workaround after 21.0.0 release.
+          sed \
+            -i \
+            -e 's/^\(ensure_source_directory\)$/# \1/' \
+            -e 's/^\(test_source_distribution\)$/# \1/' \
+            dev/release/verify-release-candidate.sh
+          dev/release/verify-release-candidate.sh ${previous_version}
 
   binary:
     name: Binary
@@ -234,13 +255,32 @@ jobs:
       VERSION: ${{ needs.target.outputs.version }}
     steps:
       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
v4.2.2
+        with:
+          fetch-depth: 0
       - name: Run
         run: |
           dev/release/verify-release-candidate.sh ${VERSION} ${RC}
       - name: Verify the previous version
+        # TODO: We may re-enable this in the future.
+        # There are some problems for now:
+        # * x86_64: libLLVM.so.18.1 needed by gandiva2000-libs on AlmaLinux 9
+        # * arm64: libarrow.so.2000.0.0: refers the
+        #   
"std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30"
+        #   (not "...@@GLIBCXX_3.4.30" nor "...@GLIBCXX_3.4.11") symbol on
+        #   AmazonLinux 2023.
+        continue-on-error: true
         run: |
           major_version=${VERSION%%.*}
-          previous_major_version$((major_version - 1))
+          previous_major_version=$((major_version - 1))
           previous_version=${previous_major_version}.0.0
-          rc=0 # This number isn't used for Yum verification
-          dev/release/verify-release-candidate.sh ${previous_version} ${rc}
+          previous_tag=apache-arrow-${previous_version}
+          git checkout ${previous_tag}
+          # This is workaround. dev/release/verify-release-candidate.sh
+          # in < 21.0.0 doesn't accept 20.0.0 as the VERSION argument.
+          # We can remove this workaround after 21.0.0 release.
+          sed \
+            -i \
+            -e 's/^\(ensure_source_directory\)$/# \1/' \
+            -e 's/^\(test_source_distribution\)$/# \1/' \
+            dev/release/verify-release-candidate.sh
+          dev/release/verify-release-candidate.sh ${previous_version}
diff --git a/dev/release/verify-release-candidate.sh 
b/dev/release/verify-release-candidate.sh
index b38da36c38..6d2a18ae5d 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -776,11 +776,19 @@ ensure_source_directory() {
   elif [ "${SOURCE_KIND}" = "git" ]; then
     # Remote arrow repository, testing repositories must be cloned
     : ${SOURCE_REPOSITORY:="https://github.com/apache/arrow"}
-    echo "Verifying Arrow repository ${SOURCE_REPOSITORY} with revision 
checkout ${VERSION}"
+    case "${VERSION}" in
+      *.*.*)
+        revision="apache-arrow-${VERSION}"
+        ;;
+      *)
+        revision="${VERSION}"
+        ;;
+    esac
+    echo "Verifying Arrow repository ${SOURCE_REPOSITORY} with revision 
checkout ${revision}"
     export ARROW_SOURCE_DIR="${ARROW_TMPDIR}/arrow"
     if [ ! -d "${ARROW_SOURCE_DIR}" ]; then
       git clone --recurse-submodules $SOURCE_REPOSITORY $ARROW_SOURCE_DIR
-      git -C $ARROW_SOURCE_DIR checkout $VERSION
+      git -C $ARROW_SOURCE_DIR checkout "${revision}"
     fi
   else
     # Release tarball, testing repositories must be cloned separately

Reply via email to