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

alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/main by this push:
     new 6c39797768 Improve email created by create_tarball.sh script (#9944)
6c39797768 is described below

commit 6c397977687380f5e3d13d3d061b0369fe31cb3a
Author: Andrew Lamb <[email protected]>
AuthorDate: Wed Jun 3 09:38:18 2026 -0400

    Improve email created by create_tarball.sh script (#9944)
    
    # Which issue does this PR close?
    
    
    # Rationale for this change
    
    There are several issues I found with the email template created by the
    current template:
    1. It uses links to tags (rather than git shas) which can potentially be
    changed
    2. It does not include the actual SHA values (only a link to a place to
    download the sha values) which means in theory it is not clear what
    exact artifact is being voted on
    3. It does not include a link to the issue used to do release
    coordiation
    
    # What changes are included in this PR?
    
    Fix the above issues
    
    Example new output:
    ```
    ---------------------------------------------------------
    To: [email protected]
    Subject: [VOTE][RUST] Release Apache Arrow Rust 57.3.1 RC1
    
    Hi,
    
    I would like to propose a release of Apache Arrow Rust Implementation, 
version 57.3.1.
    
    This release candidate is based on commit: 
da8975cfacdf8623892a7937dc5c5e6515a05483 [1].
    The SHA256 of the release candidate is: 
067a4c47c515d57b283f431d426c46c0f48601a2017202a490d2a234e0cd2fb4
    
    The proposed release tarball and signatures are hosted at [2].
    
    The changelog is located at [3].
    
    The release tracking issue is: [4]
    
    Please download, verify checksums and signatures, run the unit tests,
    and vote on the release. There is a script [4] that automates some of
    the verification.
    
    The vote will be open for at least 72 hours.
    
    [ ] +1 Release this as Apache Arrow Rust 57.3.1
    [ ] +0
    [ ] -1 Do not release this as Apache Arrow Rust 57.3.1 because...
    
    [1]: 
https://github.com/apache/arrow-rs/tree/da8975cfacdf8623892a7937dc5c5e6515a05483
    [2]: https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-rs-57.3.1-rc1
    [3]: 
https://github.com/apache/arrow-rs/blob/da8975cfacdf8623892a7937dc5c5e6515a05483/CHANGELOG.md
    [4]: 
https://github.com/apache/arrow-rs/blob/master/dev/release/verify-release-candidate.sh
    [5]: RELEASE_ISSUE
    ```
    # Are these changes tested?
    
    I tested this script while creating release candidates for 57.3.1 and
    56.2.1 and it worked well
    - https://github.com/apache/arrow-rs/issues/9858
    - https://github.com/apache/arrow-rs/issues/9857
    
    # Are there any user-facing changes?
    
    <!--
    If there are user-facing changes then we may require documentation to be
    updated before approving the PR.
    
    If there are any breaking changes to public APIs, please call them out.
    -->
---
 dev/release/create-tarball.sh | 58 +++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 27 deletions(-)

diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh
index b75313b6f0..332de47715 100755
--- a/dev/release/create-tarball.sh
+++ b/dev/release/create-tarball.sh
@@ -65,8 +65,9 @@ else
     tar=tar
 fi
 
-if ! git -C "${SOURCE_TOP_DIR}" rev-list --max-count=1 ${tag}; then
+if ! commit_sha=$(git -C "${SOURCE_TOP_DIR}" rev-list --max-count=1 "${tag}"); 
then
     echo "Cannot continue: unknown git tag: $tag"
+    exit 1
 fi
 
 
@@ -79,6 +80,26 @@ 
url="https://dist.apache.org/repos/dist/dev/arrow/${release}-rc${rc}";
 echo "Attempting to create ${tarball} from tag ${tag}"
 
 
+# create <tarball> containing the files in git at $tag
+# the files in the tarball are prefixed with {release}
+# (e.g. apache-arrow-rs-4.0.1)
+mkdir -p ${distdir}
+(cd "${SOURCE_TOP_DIR}" && \
+     git archive ${tag} --prefix ${release}/ \
+         | gzip > ${tarball})
+
+echo "Running rat license checker on ${tarball}"
+${SOURCE_DIR}/run-rat.sh ${tarball}
+
+echo "Signing tarball and creating checksums"
+gpg --armor --output ${tarball}.asc --detach-sig ${tarball}
+# create signing with relative path of tarball
+# so that they can be verified with a command such as
+#  shasum --check apache-arrow-rs-4.1.0-rc2.tar.gz.sha512
+(cd ${distdir} && shasum -a 256 ${tarname}) > ${tarball}.sha256
+(cd ${distdir} && shasum -a 512 ${tarname}) > ${tarball}.sha512
+sha256=$(cut -d ' ' -f 1 "${tarball}.sha256")
+
 echo "Draft email for [email protected] mailing list"
 echo ""
 echo "---------------------------------------------------------"
@@ -88,14 +109,17 @@ Subject: [VOTE][RUST] Release Apache Arrow Rust ${version} 
RC${rc}
 
 Hi,
 
-I would like to propose a release of Apache Arrow Rust Implementation, version 
${tag}.
+I would like to propose a release of Apache Arrow Rust Implementation, version 
${version}.
 
-This release candidate is based on commit: ${tag} [1]
+This release candidate is based on commit: ${commit_sha} [1].
+The SHA256 of the release candidate is: ${sha256}
 
 The proposed release tarball and signatures are hosted at [2].
 
 The changelog is located at [3].
 
+The release tracking issue is: [4]
+
 Please download, verify checksums and signatures, run the unit tests,
 and vote on the release. There is a script [4] that automates some of
 the verification.
@@ -106,35 +130,15 @@ The vote will be open for at least 72 hours.
 [ ] +0
 [ ] -1 Do not release this as Apache Arrow Rust ${version} because...
 
-[1]: https://github.com/apache/arrow-rs/tree/${tag}
+[1]: https://github.com/apache/arrow-rs/tree/${commit_sha}
 [2]: ${url}
-[3]: https://github.com/apache/arrow-rs/blob/${tag}/CHANGELOG.md
+[3]: https://github.com/apache/arrow-rs/blob/${commit_sha}/CHANGELOG.md
 [4]: 
https://github.com/apache/arrow-rs/blob/master/dev/release/verify-release-candidate.sh
+[5]: RELEASE_ISSUE
 MAIL
 echo "---------------------------------------------------------"
 
-
-
-# create <tarball> containing the files in git at $tag
-# the files in the tarball are prefixed with {release}
-# (e.g. apache-arrow-rs-4.0.1)
-mkdir -p ${distdir}
-(cd "${SOURCE_TOP_DIR}" && \
-     git archive ${tag} --prefix ${release}/ \
-         | gzip > ${tarball})
-
-echo "Running rat license checker on ${tarball}"
-${SOURCE_DIR}/run-rat.sh ${tarball}
-
-echo "Signing tarball and creating checksums"
-gpg --armor --output ${tarball}.asc --detach-sig ${tarball}
-# create signing with relative path of tarball
-# so that they can be verified with a command such as
-#  shasum --check apache-arrow-rs-4.1.0-rc2.tar.gz.sha512
-(cd ${distdir} && shasum -a 256 ${tarname}) > ${tarball}.sha256
-(cd ${distdir} && shasum -a 512 ${tarname}) > ${tarball}.sha512
-
 echo "Uploading to apache dist/dev to ${url}"
 svn co --depth=empty https://dist.apache.org/repos/dist/dev/arrow 
${SOURCE_TOP_DIR}/dev/dist
 svn add ${distdir}
-svn ci -m "Apache Arrow Rust ${version} ${rc}" ${distdir}
\ No newline at end of file
+svn ci -m "Apache Arrow Rust ${version} ${rc}" ${distdir}

Reply via email to