-
Notifications
You must be signed in to change notification settings - Fork 958
Update release instructions to not push tags until release is approved #7754
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
dev/release/README.md
Outdated
### Pick an Release Candidate (RC) number | ||
|
||
Pick numbers in sequential order, with `1` for `rc1`, `2` for `rc2`, etc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we move this before ### Create git tag for the release:
?
@@ -64,7 +64,7 @@ else | |||
tar=tar | |||
fi | |||
|
|||
release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag}) | |||
release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag}-rc${rc}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems that we need more changes in this file.
How about the following? It seems that we don't need release_hash
anymore because we don't re-tag with the X.Y.Z-rcN
approach.
diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh
index a77ddbe757..2b5071d35b 100755
--- a/dev/release/create-tarball.sh
+++ b/dev/release/create-tarball.sh
@@ -45,14 +45,16 @@ 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
# e.g. brew install gtar
@@ -64,9 +66,12 @@ else
tar=tar
fi
-release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag})
+if ! gic -C "${SORUCE_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 +80,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 dev@arrow.apache.org mailing list"
echo ""
echo "---------------------------------------------------------"
cat <<MAIL
To: dev@arrow.apache.org
-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,21 +107,22 @@ 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
+[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)
+# 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)
# use --delete to filter out `object_store` files
mkdir -p ${distdir}
(cd "${SOURCE_TOP_DIR}" && \
- git archive ${release_hash} --prefix ${release}/ \
+ git archive ${tag} --prefix ${release}/ \
| $tar --delete ${release}/'object_store' \
| gzip > ${tarball})
@@ -138,4 +140,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}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me -- thanks @kou
Co-authored-by: Ed Seidl <etseidl@users.noreply.github.com>
Which issue does this PR close?
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?
Update release instructions and scripts to postpone pushing the release tag until the release is approved
Are there any user-facing changes?
Hopefully next release we'll only see releases after the release is approved.