From 10526c4a5fe409dc427448d6b69b73546011b40c Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Mon, 23 Jun 2025 17:21:37 -0400 Subject: [PATCH 1/7] Update release instructions to not push tags until release is approved --- dev/release/README.md | 24 +++++++++++++++--------- dev/release/create-tarball.sh | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/dev/release/README.md b/dev/release/README.md index 5b521368ea44..515272f2c22e 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -109,21 +109,21 @@ distribution servers. While the official release artifact is a signed tarball, we also tag the commit it was created for convenience and code archaeology. +### Pick an Release Candidate (RC) number + +Pick numbers in sequential order, with `1` for `rc1`, `2` for `rc2`, etc. + Use a string such as `43.0.0` as the ``. -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 apache/main +git tag - apache/main # push tag to apache -git push apache +git push apache - ``` -### 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 `` tag and `` and you found in previous steps. @@ -191,9 +191,15 @@ 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 `` (e.g. `4.1.0`). -Rust Arrow Crates: +Push the release tag to github +```shell +git tag - +git push apache +``` + +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: ```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 8b92509104c8..0d8d6651197c 100755 --- a/dev/release/create-tarball.sh +++ b/dev/release/create-tarball.sh @@ -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}) release=apache-arrow-rs-${tag} distdir=${SOURCE_TOP_DIR}/dev/dist/${release}-rc${rc} From ebdc81caea2b848f06da88f3b632c98258a0d270 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Tue, 24 Jun 2025 05:53:00 -0400 Subject: [PATCH 2/7] Update dev/release/README.md Co-authored-by: Ed Seidl --- dev/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/README.md b/dev/release/README.md index 515272f2c22e..d819c2290ad1 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -109,7 +109,7 @@ distribution servers. While the official release artifact is a signed tarball, we also tag the commit it was created for convenience and code archaeology. -### Pick an Release Candidate (RC) number +### Pick a Release Candidate (RC) number Pick numbers in sequential order, with `1` for `rc1`, `2` for `rc2`, etc. From e9e8cb41d22dd1f8e41f05fb929fdbadaa700ea4 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Tue, 24 Jun 2025 17:55:38 -0400 Subject: [PATCH 3/7] revert changes to create-tarball.sh --- dev/release/create-tarball.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh index 0d8d6651197c..8b92509104c8 100755 --- a/dev/release/create-tarball.sh +++ b/dev/release/create-tarball.sh @@ -64,7 +64,7 @@ else tar=tar fi -release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag}-rc${rc}) +release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag}) release=apache-arrow-rs-${tag} distdir=${SOURCE_TOP_DIR}/dev/dist/${release}-rc${rc} From 3084469e6d08514490b3d9454e9f22d3a81abf5e Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Tue, 24 Jun 2025 18:00:07 -0400 Subject: [PATCH 4/7] Update create release candidate script --- dev/release/create-tarball.sh | 37 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh index 8b92509104c8..b75313b6f0d6 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 " + echo "Usage: $0 " 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 dev@arrow.apache.org mailing list" echo "" echo "---------------------------------------------------------" cat < 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 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 From c7866e9de8fb7d0ca756fecfa86c748ace5c04d6 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Tue, 24 Jun 2025 18:03:41 -0400 Subject: [PATCH 5/7] prettier --- dev/release/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/release/README.md b/dev/release/README.md index d819c2290ad1..7b2d4f175f81 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -194,6 +194,7 @@ If the release is not approved, fix whatever the problem is and try again with t Then, create a new release on GitHub using the tag `` (e.g. `4.1.0`). Push the release tag to github + ```shell git tag - git push apache From 8068e96d826be1497539f70cacb926513209f209 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 25 Jun 2025 15:37:52 -0400 Subject: [PATCH 6/7] Update dev/release/README.md Co-authored-by: Sutou Kouhei --- dev/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/README.md b/dev/release/README.md index 7b2d4f175f81..2fe2d0b35758 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -200,7 +200,7 @@ git tag - git push apache ``` -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: +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 From 597a8c3f16bd438241653ea09a515d6e66a965f0 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 25 Jun 2025 15:38:19 -0400 Subject: [PATCH 7/7] move order --- dev/release/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev/release/README.md b/dev/release/README.md index 7b2d4f175f81..e2257b69c2a8 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -105,14 +105,14 @@ 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. -### 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. - ### 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 ``. Create and push the tag thusly (for example, for version `4.1.0` and `rc2` would be `4.1.0-rc2`):