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 d0ef3106d1 Update release instructions to not push tags until release 
is approved (#7754)
d0ef3106d1 is described below

commit d0ef3106d1f217a2502634559881f879fedc0f27
Author: Andrew Lamb <[email protected]>
AuthorDate: Tue Jul 1 06:19:07 2025 -0400

    Update release instructions to not push tags until release is approved 
(#7754)
    
    # Which issue does this PR close?
    
    - Closes https://github.com/apache/arrow-rs/issues/7753
    
    # Rationale for this change
    
    When we push a tag like `55.2.0` to github it now makes a github
    'release' (thanks to @kou )
    
    https://github.com/apache/arrow-rs/relea
    
    However we shouldn't make a release until it is officially approved per
    ASF guidelines to avoid confusion about what constitutes an official
    release
    
    # What changes are included in this PR?
    
    1. Update release instructions and scripts to postpone pushing the
    release tag until the release is approved
    2. Update `dev/release/create-tarball.sh` to use new scheme
    
    # Are there any user-facing changes?
    
    Hopefully next release we'll only see releases after the release is
    approved.
    
    # Are the changes tested?
    
    I tested this manually locally and it seems to work well
    
    ---------
    
    Co-authored-by: Ed Seidl <[email protected]>
    Co-authored-by: Sutou Kouhei <[email protected]>
---
 dev/release/README.md         | 25 ++++++++++++++++---------
 dev/release/create-tarball.sh | 37 ++++++++++++++++++-------------------
 2 files changed, 34 insertions(+), 28 deletions(-)

diff --git a/dev/release/README.md b/dev/release/README.md
index 74f723d356..046cdf853c 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -105,25 +105,25 @@ create a release candidate using the following steps. 
Note you need to
 be a committer to run these scripts as they upload to the apache `svn`
 distribution servers.
 
+### Pick a Release Candidate (RC) number
+
+Pick numbers in sequential order, with `1` for `rc1`, `2` for `rc2`, etc.
+
 ### Create git tag for the release:
 
 While the official release artifact is a signed tarball, we also tag the 
commit it was created for convenience and code archaeology.
 
 Use a string such as `43.0.0` as the `<version>`.
 
-Create and push the tag thusly:
+Create and push the tag thusly (for example, for version `4.1.0` and `rc2` 
would be `4.1.0-rc2`):
 
 ```shell
 git fetch apache
-git tag <version> apache/main
+git tag <version>-<rc> apache/main
 # push tag to apache
-git push apache <version>
+git push apache <version>-<rc>
 ```
 
-### Pick an Release Candidate (RC) number
-
-Pick numbers in sequential order, with `1` for `rc1`, `2` for `rc2`, etc.
-
 ### Create, sign, and upload tarball
 
 Run `create-tarball.sh` with the `<version>` tag and `<rc>` and you found in 
previous steps.
@@ -191,9 +191,16 @@ If the release is not approved, fix whatever the problem 
is and try again with t
 
 ### If the release is approved,
 
-Move tarball to the release location in SVN, e.g. 
https://dist.apache.org/repos/dist/release/arrow/arrow-4.1.0/, using the 
`release-tarball.sh` script:
+Then, create a new release on GitHub using the tag `<version>` (e.g. `4.1.0`).
 
-Rust Arrow Crates:
+Push the release tag to github
+
+```shell
+git tag <version> <version>-<rc>
+git push apache <version>
+```
+
+Move tarball to the release location in SVN, e.g. 
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-4.1.0/, using the 
`release-tarball.sh` script:
 
 ```shell
 ./dev/release/release-tarball.sh 4.1.0 2
diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh
index 8b92509104..b75313b6f0 100755
--- a/dev/release/create-tarball.sh
+++ b/dev/release/create-tarball.sh
@@ -45,13 +45,14 @@ SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)"
 
 if [ "$#" -ne 2 ]; then
-    echo "Usage: $0 <tag> <rc>"
+    echo "Usage: $0 <version> <rc>"
     echo "ex. $0 4.1.0 2"
   exit
 fi
 
-tag=$1
+version=$1
 rc=$2
+tag="${version}-rc${rc}"
 
 
 # mac tar doesn't have --delete, so use gnutar
@@ -64,9 +65,12 @@ else
     tar=tar
 fi
 
-release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag})
+if ! git -C "${SOURCE_TOP_DIR}" rev-list --max-count=1 ${tag}; then
+    echo "Cannot continue: unknown git tag: $tag"
+fi
+
 
-release=apache-arrow-rs-${tag}
+release=apache-arrow-rs-${version}
 distdir=${SOURCE_TOP_DIR}/dev/dist/${release}-rc${rc}
 tarname=${release}.tar.gz
 tarball=${distdir}/${tarname}
@@ -75,22 +79,18 @@ 
url="https://dist.apache.org/repos/dist/dev/arrow/${release}-rc${rc}";
 echo "Attempting to create ${tarball} from tag ${tag}"
 
 
-if [ -z "$release_hash" ]; then
-    echo "Cannot continue: unknown git tag: $tag"
-fi
-
 echo "Draft email for [email protected] mailing list"
 echo ""
 echo "---------------------------------------------------------"
 cat <<MAIL
 To: [email protected]
-Subject: [VOTE][RUST] Release Apache Arrow Rust ${tag} RC${rc}
+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}.
 
-This release candidate is based on commit: ${release_hash} [1]
+This release candidate is based on commit: ${tag} [1]
 
 The proposed release tarball and signatures are hosted at [2].
 
@@ -106,22 +106,21 @@ 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/${release_hash}
+[1]: https://github.com/apache/arrow-rs/tree/${tag}
 [2]: ${url}
-[3]: https://github.com/apache/arrow-rs/blob/${release_hash}/CHANGELOG.md
-[4]: 
https://github.com/apache/arrow-rs/blob/main/dev/release/verify-release-candidate.sh
+[3]: https://github.com/apache/arrow-rs/blob/${tag}/CHANGELOG.md
+[4]: 
https://github.com/apache/arrow-rs/blob/master/dev/release/verify-release-candidate.sh
 MAIL
 echo "---------------------------------------------------------"
 
 
 
-# create <tarball> containing the files in git at $release_hash
-# the files in the tarball are prefixed with {tag} (e.g. 4.0.1)
-# use --delete to filter out `object_store` files
+# 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 ${release_hash} --prefix ${release}/ \
-         | $tar --delete ${release}/'object_store' \
+     git archive ${tag} --prefix ${release}/ \
          | gzip > ${tarball})
 
 echo "Running rat license checker on ${tarball}"
@@ -138,4 +137,4 @@ gpg --armor --output ${tarball}.asc --detach-sig ${tarball}
 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 ${tag} ${rc}" ${distdir}
+svn ci -m "Apache Arrow Rust ${version} ${rc}" ${distdir}
\ No newline at end of file

Reply via email to