From 96ef703a003c5ad8d7c032d4ffe4699629e57f76 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 14:04:09 -0400 Subject: [PATCH 001/120] Modified 01-prepare.sh to create a release-candidate tag instead of a generic release tag --- dev/release/01-prepare.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dev/release/01-prepare.sh b/dev/release/01-prepare.sh index e4c62e6323c23..23ab30f235f7b 100755 --- a/dev/release/01-prepare.sh +++ b/dev/release/01-prepare.sh @@ -33,7 +33,7 @@ next_version=$2 next_version_snapshot="${next_version}-SNAPSHOT" rc_number=$3 -release_tag="apache-arrow-${version}" +release_candidate_tag="apache-arrow-${version}-rc${rc_number}" release_branch="release-${version}" release_candidate_branch="release-${version}-rc${rc_number}" @@ -46,9 +46,9 @@ release_candidate_branch="release-${version}-rc${rc_number}" : ${PREPARE_TAG:=${PREPARE_DEFAULT}} if [ ${PREPARE_TAG} -gt 0 ]; then - if [ $(git tag -l "${release_tag}") ]; then - echo "Delete existing git tag $release_tag" - git tag -d "${release_tag}" + if [ $(git tag -l "${release_candidate_tag}") ]; then + echo "Delete existing git tag $release_candidate_tag" + git tag -d "${release_candidate_tag}" fi fi @@ -88,7 +88,7 @@ if [ ${PREPARE_LINUX_PACKAGES} -gt 0 ]; then fi if [ ${PREPARE_VERSION_PRE_TAG} -gt 0 ]; then - echo "Prepare release ${version} on tag ${release_tag} then reset to version ${next_version_snapshot}" + echo "Prepare release ${version} on tag ${release_candidate_tag} then reset to version ${next_version_snapshot}" update_versions "${version}" "${next_version}" "release" git commit -m "MINOR: [Release] Update versions for ${version}" @@ -97,5 +97,5 @@ fi ############################## Tag the Release ############################## if [ ${PREPARE_TAG} -gt 0 ]; then - git tag -a "${release_tag}" -m "[Release] Apache Arrow Release ${version}" + git tag -a "${release_candidate_tag}" -m "[Release] Apache Arrow Release ${version}" fi From 905c72f22546c2f73199fb11d53a9bda31a4c19f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 14:08:30 -0400 Subject: [PATCH 002/120] Update release candidate tag name to push in instructions --- docs/source/developers/release.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index d903cc71bd5c4..e79027968c12d 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -190,7 +190,7 @@ Create the Release Candidate branch from the updated maintenance branch dev/release/01-prepare.sh # Push the release tag (for RC1 or later the --force flag is required) - git push -u apache apache-arrow- + git push -u apache apache-arrow-rc # Push the release candidate branch in order to trigger verification jobs later git push -u apache release--rc From b2539bbbe47460133a33da5932a45a1bd4eecddf Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 14:20:51 -0400 Subject: [PATCH 003/120] Update tag name in release documentation --- docs/source/developers/release.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index e79027968c12d..9f0e1746e79b2 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -188,8 +188,8 @@ Create the Release Candidate branch from the updated maintenance branch # starts at 0 and increments every time the Release Candidate is burned # so for the first RC this would be: dev/release/01-prepare.sh 4.0.0 5.0.0 0 dev/release/01-prepare.sh - - # Push the release tag (for RC1 or later the --force flag is required) + + # Push the release candidate tag git push -u apache apache-arrow-rc # Push the release candidate branch in order to trigger verification jobs later git push -u apache release--rc From e0698a9c05a567d8f1459c412b9b665530281db9 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 14:21:16 -0400 Subject: [PATCH 004/120] Update tag name in 02-source.sh script --- dev/release/02-source.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 1bd3c0e19e04e..7f2c12541cc86 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -37,11 +37,10 @@ fi version=$1 rc=$2 -tag=apache-arrow-${version} +tag=apache-arrow-${version}-rc${rc} maint_branch=maint-${version} rc_branch="release-${version}-rc${rc}" -tagrc=${tag}-rc${rc} -rc_url="https://dist.apache.org/repos/dist/dev/arrow/${tagrc}" +rc_url="https://dist.apache.org/repos/dist/dev/arrow/${tag}" echo "Preparing source for tag ${tag}" @@ -109,14 +108,14 @@ if [ ${SOURCE_UPLOAD} -gt 0 ]; then svn co --depth=empty https://dist.apache.org/repos/dist/dev/arrow tmp # add the release candidate for the tag - mkdir -p tmp/${tagrc} + mkdir -p tmp/${tag} # copy the rc tarball into the tmp dir - cp ${tarball}* tmp/${tagrc} + cp ${tarball}* tmp/${tag} # commit to svn - svn add tmp/${tagrc} - svn ci -m "Apache Arrow ${version} RC${rc}" tmp/${tagrc} + svn add tmp/${tag} + svn ci -m "Apache Arrow ${version} RC${rc}" tmp/${tag} # clean up rm -rf tmp From dde3fd7382dcf53952cfb5cdf180f402e122a948 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 14:25:46 -0400 Subject: [PATCH 005/120] Update tag name in 03-binary-submit.sh --- dev/release/03-binary-submit.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/03-binary-submit.sh b/dev/release/03-binary-submit.sh index d65b4e97c5fc2..0dc63aa7089d1 100755 --- a/dev/release/03-binary-submit.sh +++ b/dev/release/03-binary-submit.sh @@ -28,7 +28,7 @@ version=$1 rc=$2 version_with_rc="${version}-rc${rc}" crossbow_job_prefix="release-${version_with_rc}" -release_tag="apache-arrow-${version}" +release_tag="apache-arrow-${version}-rc${rc}" rc_branch="release-${version_with_rc}" : ${ARROW_REPOSITORY:="apache/arrow"} From 4027976eed3d4159571ed8094d135f6a4d5e1db6 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 14:32:47 -0400 Subject: [PATCH 006/120] Update tag name in 02-source-test.rb --- dev/release/02-source-test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index 149a2b27ac94a..6ca464ab7ab23 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -22,7 +22,7 @@ class SourceTest < Test::Unit::TestCase def setup @current_commit = git_current_commit detect_versions - @tag_name = "apache-arrow-#{@release_version}" + @tag_name = "apache-arrow-#{@release_version}-rc0" @script = File.expand_path("dev/release/02-source.sh") Dir.mktmpdir do |dir| From 0fb6c7dd7043ca547970688e85a63b7d4f8379c0 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 15:50:41 -0400 Subject: [PATCH 007/120] Add publish-release workflow --- .github/workflows/publish_release.yml | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/publish_release.yml diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml new file mode 100644 index 0000000000000..16ed7f200b62e --- /dev/null +++ b/.github/workflows/publish_release.yml @@ -0,0 +1,60 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Publish Release + +on: + push: + branches: + - "!**" + tags: + # Only trigger workflow when a tag whose name matches + # the pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. + - "*" + - "!*-rc*" + +permissions: + contents: write + +jobs: + publish-release: + name: Publish Release + runs-on: ubuntu-latest + timeout-minutes: 5 + if: github.ref_type == 'tag' + steps: + - name: Create GitHub Release + uses: actions/checkout@v4 + run: | + rc_tag=$(gh release list --repo ${{github.repository}} | \ + cut -f3 | \ + grep -F "${GITHUB_REF_NAME}-rc" | \ + head -n1) + title=$(gh release view ${ARROW_RC_TAG} --json name --jq .name | \ + sed -E -e 's/ RC[0-9]+$//') + version=${GITHUB_REF_NAME#apache-arrow-} + release_note_url="https://arrow.apache.org/release/${version}.html" + mkdir release_candidate_artifacts + gh release download ${rc_tag} --dir release_candidate_artifacts + gh release create ${GITHUB_REF_NAME} \ + --title "${title}" \ + --verify-tag \ + --notes "Release Notes: ${release_note_url}" \ + --repo ${{github.repository}} \ + release_candidate_artifacts/* + env: + GH_TOKEN: ${{ github.token }} \ No newline at end of file From 605ef8620206355326cfd529282c43c05ecff363 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 9 Apr 2024 15:54:03 -0400 Subject: [PATCH 008/120] Add workflow to publish release candidate --- .../workflows/publish_release_candidate.yml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/publish_release_candidate.yml diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml new file mode 100644 index 0000000000000..c9cf1b34375b0 --- /dev/null +++ b/.github/workflows/publish_release_candidate.yml @@ -0,0 +1,69 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Package + +on: + push: + tags: + # A release candidate should be published whenever a tag with + # the name below is pushed to the apache/arrow repository. + - "apache-arrow-*-rc*" + +jobs: + publish-release-candidate: + name: Publish Release Candidate to GitHub Releases + runs-on: ubuntu-latest + if: github.ref_type == 'tag' + steps: + - name: Checkout apache/arrow + uses: actions/checkout@v4 + with: + path: arrow + fetch-depth: 0 + - name: Store Release Tag Name as Environment Variable + # For convenience, store the release tag name as an environment + # variable for use in subsequent steps. + run: | + echo "ARROW_RELEASE_TAG_NAME=${{github.ref_name}}" >> "$GITHUB_ENV" + - name: Store Version and Release Candidate Number as Environment Variables + # From environment variable ARROW_RELEASE_TAG_NAME, extract the version and + # release candidate number. Store these values as environment variables. + run: | + version_with_rc=${ARROW_RELEASE_TAG_NAME#apache-arrow-} + version=${version_with_rc%-rc*} + rc_num=${version_with_rc#${version}-rc} + echo "ARROW_VERSION_WITH_RC=${version_with_rc}" >> "${GITHUB_ENV}" + echo "ARROW_VERSION=${version}" >> ${GITHUB_ENV} + echo "ARROW_RC_NUM=${rc_num}" >> ${GITHUB_ENV} + - name: Create GitHub Release for Release Candidate + # Create a pre-release in apache/arrow's GitHub Releases area. + # Attach the release candidate MLTBX file as an asset. + run: | + target_branch=release-${ARROW_VERSION_WITH_RC} + title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" + repository=${{github.repository}} + release_notes="Release Candidate: ${ARROW_VERSION} RC${ARROW_RC_NUM}" + gh release create \ + ${ARROW_RELEASE_TAG_NAME} \ + --prerelease \ + --target ${target_branch} \ + --notes "${release_notes}" \ + --title "${title}" \ + --repo ${repository} + env: + GH_TOKEN: ${{ github.token }} \ No newline at end of file From 07437d2a97e06a6f8025e4daf9c1edff3a551d51 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 10:34:17 -0400 Subject: [PATCH 009/120] Refactor publish_release.yml --- .github/workflows/publish_release.yml | 37 +++++++++++++++++++-------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 16ed7f200b62e..d370f6cb3f3fa 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -36,25 +36,42 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 if: github.ref_type == 'tag' - steps: - - name: Create GitHub Release + steps: + - name: Checkout Arrow uses: actions/checkout@v4 + with: + path: arrow + fetch-depth: 0 + - name: Get Tag of Latest Release Candidate run: | rc_tag=$(gh release list --repo ${{github.repository}} | \ cut -f3 | \ grep -F "${GITHUB_REF_NAME}-rc" | \ head -n1) - title=$(gh release view ${ARROW_RC_TAG} --json name --jq .name | \ - sed -E -e 's/ RC[0-9]+$//') + echo "Latest Release Candidate Tag: ${rc_tag}" + echo "ARROW_RELEASE_CANDIDATE_TAG=${rc_tag}" >> ${GITHUB_ENV} + env: + GH_TOKEN: ${{ github.token }} + - name: Create Relese Title + run: | + title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --json name --jq .name | \ + sed -E -e 's/ RC[0-9]+$//') + echo "Release Title: ${title}" + echo "ARROW_RELEASE_TITLE=${title}" >> ${GITHUB_ENV} + env: + GH_TOKEN: ${{ github.token }} + - name: Create Release Notes URL + run: | version=${GITHUB_REF_NAME#apache-arrow-} release_note_url="https://arrow.apache.org/release/${version}.html" - mkdir release_candidate_artifacts - gh release download ${rc_tag} --dir release_candidate_artifacts + echo "Release Notes URL: ${release_note_url}" + echo "ARROW_RELEASE_NOTES_URL=${release_note_url}" >> ${GITHUB_ENV} + - name: Create GitHub Release + run: | gh release create ${GITHUB_REF_NAME} \ - --title "${title}" \ + --title "${ARROW_RELEASE_TITLE}" \ --verify-tag \ - --notes "Release Notes: ${release_note_url}" \ - --repo ${{github.repository}} \ - release_candidate_artifacts/* + --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" \ + --repo ${{github.repository}} env: GH_TOKEN: ${{ github.token }} \ No newline at end of file From c924cc89cc0b0fd74e8c3a3dd67350297e4916b8 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 10:35:22 -0400 Subject: [PATCH 010/120] Delete obsolete comment --- .github/workflows/publish_release_candidate.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index c9cf1b34375b0..a1ef8d2e8b879 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -52,7 +52,6 @@ jobs: echo "ARROW_RC_NUM=${rc_num}" >> ${GITHUB_ENV} - name: Create GitHub Release for Release Candidate # Create a pre-release in apache/arrow's GitHub Releases area. - # Attach the release candidate MLTBX file as an asset. run: | target_branch=release-${ARROW_VERSION_WITH_RC} title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" From 9e9dc8c098beaad1b51f2e5cf8222b02cb2a04d8 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 10:38:55 -0400 Subject: [PATCH 011/120] Set env variable GH_TOKEN at the top --- .github/workflows/publish_release.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index d370f6cb3f3fa..7c76153970e36 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -30,6 +30,9 @@ on: permissions: contents: write +env: + GH_TOKEN: ${{ github.token }} + jobs: publish-release: name: Publish Release @@ -50,16 +53,12 @@ jobs: head -n1) echo "Latest Release Candidate Tag: ${rc_tag}" echo "ARROW_RELEASE_CANDIDATE_TAG=${rc_tag}" >> ${GITHUB_ENV} - env: - GH_TOKEN: ${{ github.token }} - - name: Create Relese Title + - name: Create Release Title run: | title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --json name --jq .name | \ sed -E -e 's/ RC[0-9]+$//') echo "Release Title: ${title}" echo "ARROW_RELEASE_TITLE=${title}" >> ${GITHUB_ENV} - env: - GH_TOKEN: ${{ github.token }} - name: Create Release Notes URL run: | version=${GITHUB_REF_NAME#apache-arrow-} @@ -73,5 +72,3 @@ jobs: --verify-tag \ --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" \ --repo ${{github.repository}} - env: - GH_TOKEN: ${{ github.token }} \ No newline at end of file From 7d2e6ed0ccebff8aa81db908032a594b6dff0a90 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 10:40:50 -0400 Subject: [PATCH 012/120] Update step name in publish_release.yml --- .github/workflows/publish_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 7c76153970e36..a6185b55056c0 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -45,7 +45,7 @@ jobs: with: path: arrow fetch-depth: 0 - - name: Get Tag of Latest Release Candidate + - name: Get Latest Release Candidate's Git Tag run: | rc_tag=$(gh release list --repo ${{github.repository}} | \ cut -f3 | \ From 7d43aa568965da6cf9b030969b61154876c8a320 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 11:12:16 -0400 Subject: [PATCH 013/120] Add --repo flag --- .github/workflows/publish_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index a6185b55056c0..7e6460f2e2b25 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -55,7 +55,7 @@ jobs: echo "ARROW_RELEASE_CANDIDATE_TAG=${rc_tag}" >> ${GITHUB_ENV} - name: Create Release Title run: | - title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --json name --jq .name | \ + title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --repo ${{github.repository}} --json name --jq .name | \ sed -E -e 's/ RC[0-9]+$//') echo "Release Title: ${title}" echo "ARROW_RELEASE_TITLE=${title}" >> ${GITHUB_ENV} From 5036ca6a1a09cf4ca8de765503d046543dfb717b Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 11:12:36 -0400 Subject: [PATCH 014/120] Remove --target flag and add --verify-tag flag to gh release create --- .github/workflows/publish_release_candidate.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index a1ef8d2e8b879..605a25d0e36fd 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -53,16 +53,15 @@ jobs: - name: Create GitHub Release for Release Candidate # Create a pre-release in apache/arrow's GitHub Releases area. run: | - target_branch=release-${ARROW_VERSION_WITH_RC} title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" repository=${{github.repository}} release_notes="Release Candidate: ${ARROW_VERSION} RC${ARROW_RC_NUM}" gh release create \ ${ARROW_RELEASE_TAG_NAME} \ --prerelease \ - --target ${target_branch} \ --notes "${release_notes}" \ --title "${title}" \ - --repo ${repository} + --repo ${repository} \ + --verify-tag env: GH_TOKEN: ${{ github.token }} \ No newline at end of file From 15f54506cf973ada8d2e2f169416942e14b04724 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 11:16:23 -0400 Subject: [PATCH 015/120] Update publish_release_candidate.yml name from Package to Publish Release Candidate --- .github/workflows/publish_release_candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index 605a25d0e36fd..ec0e532e40e15 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -name: Package +name: Publish Release Candidate on: push: From 30d2ac5daa572bb3a18f62bc57e9f194c9736fd9 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 11:17:37 -0400 Subject: [PATCH 016/120] Update comments about workflow trigger --- .github/workflows/publish_release.yml | 4 ++-- .github/workflows/publish_release_candidate.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 7e6460f2e2b25..7081a1e768637 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -22,8 +22,8 @@ on: branches: - "!**" tags: - # Only trigger workflow when a tag whose name matches - # the pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. + # Trigger workflow when a tag whose name matches the pattern + # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. - "*" - "!*-rc*" diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index ec0e532e40e15..b8ee6b0e1184e 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -20,8 +20,8 @@ name: Publish Release Candidate on: push: tags: - # A release candidate should be published whenever a tag with - # the name below is pushed to the apache/arrow repository. + # Rrigger workflow when a tag whose name matches the pattern + # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. - "apache-arrow-*-rc*" jobs: From fd2e92b58378aaad6e808c4f56b3c44ded8de400 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 11:43:07 -0400 Subject: [PATCH 017/120] Update post-02-binary.sh to create the release git tag --- dev/release/post-02-binary.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dev/release/post-02-binary.sh b/dev/release/post-02-binary.sh index 980f6e3c19a6a..986fcc6dde5a4 100755 --- a/dev/release/post-02-binary.sh +++ b/dev/release/post-02-binary.sh @@ -108,3 +108,10 @@ docker_run \ VERBOSE=${VERBOSE:-no} \ VERSION=${version} \ YUM_TARGETS=$(IFS=,; echo "${yum_targets[*]}") + +# Create the release tag and trigger the +# workflow to create the GitHub Release. +release_candidate_tag=apache-arrow-${version}-rc${num} +release_tag=apache-arrow-${version} +git tag -a ${release_tag} ${release_candidate_tag}^{} -m "[Release] Apache Arrow Release ${version}" +git push origin ${release_tag} \ No newline at end of file From e894af718779a0e8990dcd9e5dd321272a8c8655 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 12:51:14 -0400 Subject: [PATCH 018/120] Wait for Publish Release Workflow to finish --- dev/release/post-02-binary.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dev/release/post-02-binary.sh b/dev/release/post-02-binary.sh index 986fcc6dde5a4..a6ed2ca82ee4f 100755 --- a/dev/release/post-02-binary.sh +++ b/dev/release/post-02-binary.sh @@ -109,9 +109,13 @@ docker_run \ VERSION=${version} \ YUM_TARGETS=$(IFS=,; echo "${yum_targets[*]}") -# Create the release tag and trigger the -# workflow to create the GitHub Release. +# Create the release tag and trigger the Publish Release workflow. release_candidate_tag=apache-arrow-${version}-rc${num} release_tag=apache-arrow-${version} git tag -a ${release_tag} ${release_candidate_tag}^{} -m "[Release] Apache Arrow Release ${version}" -git push origin ${release_tag} \ No newline at end of file +git push origin ${release_tag} + +# Wait for the Publish Release workflow to finish. +sleep 2s +workflow_id=$(gh run list --repo apache/arrow --workflow "Publish Release" | cut -f7 | head -n1) +gh run watch 8633539220 --repo apache/arrow From 720da3472956b95b43f9a054e8fe79fa48e8278a Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 13:11:54 -0400 Subject: [PATCH 019/120] Replace hard-coded workflow id value passed to gh run watch with variable --- dev/release/post-02-binary.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/post-02-binary.sh b/dev/release/post-02-binary.sh index a6ed2ca82ee4f..2e7481cf4ef3e 100755 --- a/dev/release/post-02-binary.sh +++ b/dev/release/post-02-binary.sh @@ -118,4 +118,4 @@ git push origin ${release_tag} # Wait for the Publish Release workflow to finish. sleep 2s workflow_id=$(gh run list --repo apache/arrow --workflow "Publish Release" | cut -f7 | head -n1) -gh run watch 8633539220 --repo apache/arrow +gh run watch ${workflow_id} --repo apache/arrow From e8ec1c1e3b628855e6efc322c297eaf9f220c09d Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 14:06:19 -0400 Subject: [PATCH 020/120] Add script to delete release candidates once the release is published --- .../post-16-delete-release-candidates.sh | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 dev/release/post-16-delete-release-candidates.sh diff --git a/dev/release/post-16-delete-release-candidates.sh b/dev/release/post-16-delete-release-candidates.sh new file mode 100755 index 0000000000000..67bd9ff545ba4 --- /dev/null +++ b/dev/release/post-16-delete-release-candidates.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + + +set -e +set -u +set -o pipefail + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit +fi + +version=$1 + +repo=apache/arrow +tags=$(gh release list --repo ${repo} | cut -f3 | grep -F "apache-arrow-${version}-rc") +tags_with_spaces=$(echo ${tags}) +for tag in ${tags_with_spaces} +do + # TODO: Should we supply --yes to skip the confirmation prompt? + gh release delete ${tag} --cleanup-tag --repo ${repo} +done + From 5031ef6509d7b6e9653ab7ebf8accc1708a9a4a9 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 14:12:57 -0400 Subject: [PATCH 021/120] Add step deleting for deleting the release candidates to the release documentation --- docs/source/developers/release.rst | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 9f0e1746e79b2..beeefe44aecc1 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -279,6 +279,7 @@ Be sure to go through on the following checklist: #. Publish release blog posts #. Announce the release on Twitter #. Remove old artifacts +#. Remove old release candidates .. dropdown:: Mark the released version as "RELEASED" on JIRA :animate: fade-in-slide-down @@ -342,13 +343,15 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md - A committer must upload the binary release artifacts to Artifactory: + A committer must upload the binary release artifacts to Artifactory and create the GitHub Release: .. code-block:: Bash # dev/release/post-02-binary.sh 0.1.0 0 dev/release/post-02-binary.sh + Note: You must have GitHub CLI installed locally. + .. dropdown:: Update website :animate: fade-in-slide-down :class-title: sd-fs-5 @@ -687,3 +690,17 @@ Be sure to go through on the following checklist: .. code-block:: Bash dev/release/post-07-remove-old-artifacts.sh + +.. dropdown:: Remove old release candidates + :animate: fade-in-slide-down + :class-title: sd-fs-5 + :class-container: sd-shadow-md + + Delete the release candidate artifacts from apache/arrow's GitHub Releases area: + + .. code-block:: Bash + + # dev/release/post-16-delete-release-candidates.sh 15.0.2 + dev/release/post-16-delete-release-candidates.sh + + Note: You must have GitHub CLI installed locally. \ No newline at end of file From 9fa02c9c1157d07049d7f817550e22f8c9455b41 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 10 Apr 2024 14:53:22 -0400 Subject: [PATCH 022/120] Update git tag message to include release candidate number --- dev/release/01-prepare.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/01-prepare.sh b/dev/release/01-prepare.sh index 23ab30f235f7b..779348f036f02 100755 --- a/dev/release/01-prepare.sh +++ b/dev/release/01-prepare.sh @@ -97,5 +97,5 @@ fi ############################## Tag the Release ############################## if [ ${PREPARE_TAG} -gt 0 ]; then - git tag -a "${release_candidate_tag}" -m "[Release] Apache Arrow Release ${version}" + git tag -a "${release_candidate_tag}" -m "[Release] Apache Arrow Release ${version} RC${rc_number}" fi From cf733ab4dac0b7d5ff56a548629de234c4a15c8d Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:00:04 -0400 Subject: [PATCH 023/120] Update docs/source/developers/release.rst Co-authored-by: Sutou Kouhei --- docs/source/developers/release.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index beeefe44aecc1..35db2b19310c3 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -188,7 +188,7 @@ Create the Release Candidate branch from the updated maintenance branch # starts at 0 and increments every time the Release Candidate is burned # so for the first RC this would be: dev/release/01-prepare.sh 4.0.0 5.0.0 0 dev/release/01-prepare.sh - + # Push the release candidate tag git push -u apache apache-arrow-rc # Push the release candidate branch in order to trigger verification jobs later From e941f1956ec8a466ccfc9171de79ec87c2363f84 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:00:39 -0400 Subject: [PATCH 024/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 7081a1e768637..a84f2f917be60 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -24,8 +24,8 @@ on: tags: # Trigger workflow when a tag whose name matches the pattern # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. - - "*" - - "!*-rc*" + - "apache-arrow-*" + - "!apache-arrow-*-rc*" permissions: contents: write From 1bfa56ec9f94f4bfaa1d1265a54b5dfb98de4c93 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:00:58 -0400 Subject: [PATCH 025/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index a84f2f917be60..90d96523a43ef 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -22,8 +22,8 @@ on: branches: - "!**" tags: - # Trigger workflow when a tag whose name matches the pattern - # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. + # Trigger workflow when a tag whose name matches the pattern + # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. - "apache-arrow-*" - "!apache-arrow-*-rc*" From 0425eed4995595b73bb0aff4a74187845c4c6de3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:01:10 -0400 Subject: [PATCH 026/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 90d96523a43ef..a9c5a97466614 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -34,8 +34,8 @@ env: GH_TOKEN: ${{ github.token }} jobs: - publish-release: - name: Publish Release + publish: + name: Publish runs-on: ubuntu-latest timeout-minutes: 5 if: github.ref_type == 'tag' From 6952fa2fe8edabe5a061b78cd0d643fb202f8aee Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:00 -0400 Subject: [PATCH 027/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index a9c5a97466614..8ed078401d77e 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -name: Publish Release +name: Release on: push: From 8c72987542c86be9f7e953fa649e9b6221953a1f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:12 -0400 Subject: [PATCH 028/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 8ed078401d77e..6835d1279ca7d 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -38,7 +38,6 @@ jobs: name: Publish runs-on: ubuntu-latest timeout-minutes: 5 - if: github.ref_type == 'tag' steps: - name: Checkout Arrow uses: actions/checkout@v4 From 13d1bec96336961617ed324a507b084814a04a6f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:20 -0400 Subject: [PATCH 029/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 6835d1279ca7d..37dd16a95194d 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -42,7 +42,6 @@ jobs: - name: Checkout Arrow uses: actions/checkout@v4 with: - path: arrow fetch-depth: 0 - name: Get Latest Release Candidate's Git Tag run: | From d6e28e99d2c5ae800e6894182e8808f9aad6e129 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:30 -0400 Subject: [PATCH 030/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 37dd16a95194d..3e6d355553c3d 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -68,5 +68,4 @@ jobs: gh release create ${GITHUB_REF_NAME} \ --title "${ARROW_RELEASE_TITLE}" \ --verify-tag \ - --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" \ - --repo ${{github.repository}} + --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" From 95c1b7ade995826d29d53df2fb8369ff5ab02baa Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:38 -0400 Subject: [PATCH 031/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 3e6d355553c3d..c6cee7aaa95bd 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -45,7 +45,7 @@ jobs: fetch-depth: 0 - name: Get Latest Release Candidate's Git Tag run: | - rc_tag=$(gh release list --repo ${{github.repository}} | \ + rc_tag=$(gh release list | \ cut -f3 | \ grep -F "${GITHUB_REF_NAME}-rc" | \ head -n1) From 7791d41c3ce9252bc70fc3181ce7380c5eca9e9c Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:51 -0400 Subject: [PATCH 032/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index b8ee6b0e1184e..b648ef69174e4 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -name: Publish Release Candidate +name: Release Candidate on: push: From 454665d6996be1f06ab996f5446560a4416a47fe Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:02:59 -0400 Subject: [PATCH 033/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index b648ef69174e4..5bf4de9e01480 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -20,8 +20,8 @@ name: Release Candidate on: push: tags: - # Rrigger workflow when a tag whose name matches the pattern - # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. + # Trigger workflow when a tag whose name matches the pattern + # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. - "apache-arrow-*-rc*" jobs: From 93bf93ec42d067b20109dcfc11233bfa73b7d802 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:03:11 -0400 Subject: [PATCH 034/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index 5bf4de9e01480..886fd11fba0e1 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -25,8 +25,8 @@ on: - "apache-arrow-*-rc*" jobs: - publish-release-candidate: - name: Publish Release Candidate to GitHub Releases + publish: + name: Publish to GitHub Releases runs-on: ubuntu-latest if: github.ref_type == 'tag' steps: From 397f534be7cd7cf5935df9db01f82a9d7f3dbc02 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:03:17 -0400 Subject: [PATCH 035/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index 886fd11fba0e1..f6824d660fb78 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -28,7 +28,6 @@ jobs: publish: name: Publish to GitHub Releases runs-on: ubuntu-latest - if: github.ref_type == 'tag' steps: - name: Checkout apache/arrow uses: actions/checkout@v4 From d706fdfbccf945e5e96b0281aa4e1407e6e871ac Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:03:32 -0400 Subject: [PATCH 036/120] Update .github/workflows/publish_release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index c6cee7aaa95bd..aaea638213aee 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -53,7 +53,7 @@ jobs: echo "ARROW_RELEASE_CANDIDATE_TAG=${rc_tag}" >> ${GITHUB_ENV} - name: Create Release Title run: | - title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --repo ${{github.repository}} --json name --jq .name | \ + title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --json name --jq .name | \ sed -E -e 's/ RC[0-9]+$//') echo "Release Title: ${title}" echo "ARROW_RELEASE_TITLE=${title}" >> ${GITHUB_ENV} From 2941b9e7d46857e834cc89d1171a42928d948cc3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:03:42 -0400 Subject: [PATCH 037/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index f6824d660fb78..9785f3745bf2f 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -32,7 +32,6 @@ jobs: - name: Checkout apache/arrow uses: actions/checkout@v4 with: - path: arrow fetch-depth: 0 - name: Store Release Tag Name as Environment Variable # For convenience, store the release tag name as an environment From 1e87df1b26052a664fa811168f243f7b78b96e91 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:03:50 -0400 Subject: [PATCH 038/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index 9785f3745bf2f..4583ec5013ec1 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -52,7 +52,6 @@ jobs: # Create a pre-release in apache/arrow's GitHub Releases area. run: | title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" - repository=${{github.repository}} release_notes="Release Candidate: ${ARROW_VERSION} RC${ARROW_RC_NUM}" gh release create \ ${ARROW_RELEASE_TAG_NAME} \ From afc0c95a617b0232efb7702b0393abe08d776676 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:03:55 -0400 Subject: [PATCH 039/120] Update .github/workflows/publish_release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/publish_release_candidate.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml index 4583ec5013ec1..48b356dbcb60f 100644 --- a/.github/workflows/publish_release_candidate.yml +++ b/.github/workflows/publish_release_candidate.yml @@ -58,7 +58,6 @@ jobs: --prerelease \ --notes "${release_notes}" \ --title "${title}" \ - --repo ${repository} \ --verify-tag env: GH_TOKEN: ${{ github.token }} \ No newline at end of file From 759a41510ee93a455d27eeb9428009034c602408 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 12:19:52 -0400 Subject: [PATCH 040/120] Update comment about workflow trigger --- .github/workflows/publish_release.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index aaea638213aee..5e9a0b119ee85 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -22,8 +22,9 @@ on: branches: - "!**" tags: - # Trigger workflow when a tag whose name matches the pattern - # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. + # Trigger workflow when a tag whose name matches either + # pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" or pattern + # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. - "apache-arrow-*" - "!apache-arrow-*-rc*" From f0e7664cbc1e1227db651a39f3c82d6d0f7a169e Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 12:20:07 -0400 Subject: [PATCH 041/120] Rename publish_release.yml to release.yml --- .github/workflows/{publish_release.yml => release.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{publish_release.yml => release.yml} (100%) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/release.yml similarity index 100% rename from .github/workflows/publish_release.yml rename to .github/workflows/release.yml From bfebafb7a0ffb9f9c2a0b7e952e02fc603ae6efd Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 12:24:31 -0400 Subject: [PATCH 042/120] Update tag patterns that trigger the release workflow --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5e9a0b119ee85..cb67584a1373d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,8 +25,8 @@ on: # Trigger workflow when a tag whose name matches either # pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" or pattern # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. - - "apache-arrow-*" - - "!apache-arrow-*-rc*" + - "apache-arrow-[0-9]+.[0-9]+.[0-9]+" + - "apache-arrow-[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" permissions: contents: write From 4e0a2b6338aadd9bfbb680d36e8650dadf0b647a Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:05:10 -0400 Subject: [PATCH 043/120] Merge workflows creating release and release candidates into one workflow --- .../workflows/publish_release_candidate.yml | 63 ------------------- .github/workflows/release.yml | 57 +++++++++++++---- 2 files changed, 45 insertions(+), 75 deletions(-) delete mode 100644 .github/workflows/publish_release_candidate.yml diff --git a/.github/workflows/publish_release_candidate.yml b/.github/workflows/publish_release_candidate.yml deleted file mode 100644 index 48b356dbcb60f..0000000000000 --- a/.github/workflows/publish_release_candidate.yml +++ /dev/null @@ -1,63 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -name: Release Candidate - -on: - push: - tags: - # Trigger workflow when a tag whose name matches the pattern - # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. - - "apache-arrow-*-rc*" - -jobs: - publish: - name: Publish to GitHub Releases - runs-on: ubuntu-latest - steps: - - name: Checkout apache/arrow - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Store Release Tag Name as Environment Variable - # For convenience, store the release tag name as an environment - # variable for use in subsequent steps. - run: | - echo "ARROW_RELEASE_TAG_NAME=${{github.ref_name}}" >> "$GITHUB_ENV" - - name: Store Version and Release Candidate Number as Environment Variables - # From environment variable ARROW_RELEASE_TAG_NAME, extract the version and - # release candidate number. Store these values as environment variables. - run: | - version_with_rc=${ARROW_RELEASE_TAG_NAME#apache-arrow-} - version=${version_with_rc%-rc*} - rc_num=${version_with_rc#${version}-rc} - echo "ARROW_VERSION_WITH_RC=${version_with_rc}" >> "${GITHUB_ENV}" - echo "ARROW_VERSION=${version}" >> ${GITHUB_ENV} - echo "ARROW_RC_NUM=${rc_num}" >> ${GITHUB_ENV} - - name: Create GitHub Release for Release Candidate - # Create a pre-release in apache/arrow's GitHub Releases area. - run: | - title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" - release_notes="Release Candidate: ${ARROW_VERSION} RC${ARROW_RC_NUM}" - gh release create \ - ${ARROW_RELEASE_TAG_NAME} \ - --prerelease \ - --notes "${release_notes}" \ - --title "${title}" \ - --verify-tag - env: - GH_TOKEN: ${{ github.token }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cb67584a1373d..acbd39fabd2a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,28 +45,61 @@ jobs: with: fetch-depth: 0 - name: Get Latest Release Candidate's Git Tag + # Only run when a release tag is pushed + if: !contains(${GITHUB_REF_NAME}, 'rc') run: | rc_tag=$(gh release list | \ cut -f3 | \ grep -F "${GITHUB_REF_NAME}-rc" | \ head -n1) echo "Latest Release Candidate Tag: ${rc_tag}" - echo "ARROW_RELEASE_CANDIDATE_TAG=${rc_tag}" >> ${GITHUB_ENV} + echo "ARROW_RELEASE_CANDIDATE_TAG_NAME=${rc_tag}" >> ${GITHUB_ENV} + - name: Store Release Candidate Tag Name as Environment Variable + # Only run when a release candidate tag is pushed + if: contains(${GITHUB_REF_NAME}, 'rc') + run: | + echo "ARROW_RELEASE_CANDIDATE_TAG_NAME=${GITHUB_REF_NAME}" >> "$GITHUB_ENV" + - name: Store Version and Release Candidate Number as Environment Variables + run: | + version_with_rc=${ARROW_RELEASE_CANDIDATE_TAG_NAME#apache-arrow-} + version=${version_with_rc%-rc*} + rc_num=${version_with_rc#${version}-rc} + echo "ARROW_VERSION_WITH_RC=${version_with_rc}" >> "${GITHUB_ENV}" + echo "ARROW_VERSION=${version}" >> ${GITHUB_ENV} + echo "ARROW_RC_NUM=${rc_num}" >> ${GITHUB_ENV} - name: Create Release Title + # Only run when a release tag is pushed + if: !contains(${GITHUB_REF_NAME}, 'rc') run: | - title=$(gh release view ${ARROW_RELEASE_CANDIDATE_TAG} --json name --jq .name | \ - sed -E -e 's/ RC[0-9]+$//') - echo "Release Title: ${title}" + title="Apache Arrow ${ARROW_VERSION}" echo "ARROW_RELEASE_TITLE=${title}" >> ${GITHUB_ENV} - - name: Create Release Notes URL + - name: Create Release Candidate Title + # Only run when a release candidate tag is pushed + if: contains(${GITHUB_REF_NAME}, 'rc') + run: | + title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" + - name: Create Release Notes + # Only run when a release tag is pushed + if: !contains(${GITHUB_REF_NAME}, 'rc') + run: | + release_notes="https://arrow.apache.org/release/${ARROW_VERSION}.html" + echo "Release Notes URL: ${release_notes}" + echo "ARROW_RELEASE_NOTES=${release_notes}" >> ${GITHUB_ENV} + - name: Create Release Candidate Notes + # Only run when a release candidate tag is pushed + if: contains(${GITHUB_REF_NAME}, 'rc') run: | - version=${GITHUB_REF_NAME#apache-arrow-} - release_note_url="https://arrow.apache.org/release/${version}.html" - echo "Release Notes URL: ${release_note_url}" - echo "ARROW_RELEASE_NOTES_URL=${release_note_url}" >> ${GITHUB_ENV} + release_notes="Release Candidate: ${ARROW_VERSION} RC${ARROW_RC_NUM}" + echo "ARROW_RELEASE_NOTES=${release_notes}" >> ${GITHUB_ENV} - name: Create GitHub Release run: | - gh release create ${GITHUB_REF_NAME} \ + is_prerelease=$(echo ${GITHUB_REF_NAME} | grep -E "rc[0-9]+$") + if [ -n $is_prerelease ] then + prerelease_flag=--prerelease + else + prerelease_flag= + fi + gh release create ${GITHUB_REF_NAME} ${prerelease_flag} \ --title "${ARROW_RELEASE_TITLE}" \ - --verify-tag \ - --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" + --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" \ + --verify-tag \ No newline at end of file From b2113ab1374d376214528d58b882bececb9399ec Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:07:32 -0400 Subject: [PATCH 044/120] Add newline to end of file --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index acbd39fabd2a1..734396bcaac3c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -102,4 +102,4 @@ jobs: gh release create ${GITHUB_REF_NAME} ${prerelease_flag} \ --title "${ARROW_RELEASE_TITLE}" \ --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" \ - --verify-tag \ No newline at end of file + --verify-tag From a677e22d7d0bee4db7470b36eb2957c23a8f4a65 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:12:15 -0400 Subject: [PATCH 045/120] Use apache-arrow-X.Y.Z.tar.gz instead of apache-arrow-X.Y.Z.-rcN.tar.gz as the archive name --- dev/release/02-source.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 7f2c12541cc86..27ca67a76e26c 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -55,7 +55,7 @@ fi echo "Using commit $release_hash" -tarball=${tag}.tar.gz +tarball=apache-arrow-${version}.tar.gz rm -rf ${tag} # be conservative and use the release hash, even though git produces the same From 0752d4ded1e362d0be8ef70615f8c2e88bf22cb3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:15:29 -0400 Subject: [PATCH 046/120] Delete dev/release/post-16-delete-release-candidates.sh --- .../post-16-delete-release-candidates.sh | 40 ------------------- docs/source/developers/release.rst | 17 +------- 2 files changed, 1 insertion(+), 56 deletions(-) delete mode 100755 dev/release/post-16-delete-release-candidates.sh diff --git a/dev/release/post-16-delete-release-candidates.sh b/dev/release/post-16-delete-release-candidates.sh deleted file mode 100755 index 67bd9ff545ba4..0000000000000 --- a/dev/release/post-16-delete-release-candidates.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - - -set -e -set -u -set -o pipefail - -if [ "$#" -ne 1 ]; then - echo "Usage: $0 " - exit -fi - -version=$1 - -repo=apache/arrow -tags=$(gh release list --repo ${repo} | cut -f3 | grep -F "apache-arrow-${version}-rc") -tags_with_spaces=$(echo ${tags}) -for tag in ${tags_with_spaces} -do - # TODO: Should we supply --yes to skip the confirmation prompt? - gh release delete ${tag} --cleanup-tag --repo ${repo} -done - diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 35db2b19310c3..aec956a230859 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -279,7 +279,6 @@ Be sure to go through on the following checklist: #. Publish release blog posts #. Announce the release on Twitter #. Remove old artifacts -#. Remove old release candidates .. dropdown:: Mark the released version as "RELEASED" on JIRA :animate: fade-in-slide-down @@ -689,18 +688,4 @@ Be sure to go through on the following checklist: .. code-block:: Bash - dev/release/post-07-remove-old-artifacts.sh - -.. dropdown:: Remove old release candidates - :animate: fade-in-slide-down - :class-title: sd-fs-5 - :class-container: sd-shadow-md - - Delete the release candidate artifacts from apache/arrow's GitHub Releases area: - - .. code-block:: Bash - - # dev/release/post-16-delete-release-candidates.sh 15.0.2 - dev/release/post-16-delete-release-candidates.sh - - Note: You must have GitHub CLI installed locally. \ No newline at end of file + dev/release/post-07-remove-old-artifacts.sh \ No newline at end of file From c24aa88c1c8c0bf41c1a5a32cf90aea8e15e7504 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:35:27 -0400 Subject: [PATCH 047/120] Fix archive name in 02-source-test.rb --- dev/release/02-source-test.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index 6ca464ab7ab23..cb2336dbea0ed 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -23,6 +23,7 @@ def setup @current_commit = git_current_commit detect_versions @tag_name = "apache-arrow-#{@release_version}-rc0" + @archive_name = "apache-arrow-#{@release_version}.tar.gz" @script = File.expand_path("dev/release/02-source.sh") Dir.mktmpdir do |dir| @@ -41,7 +42,7 @@ def source(*targets) env["SOURCE_#{target}"] = "1" end output = sh(env, @script, @release_version, "0") - sh("tar", "xf", "#{@tag_name}.tar.gz") + sh("tar", "xf", @archive_name) output end From 5591fc979805ded34062bb187320a15446c610d3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:47:10 -0400 Subject: [PATCH 048/120] 1. Added dev/release/post-01-tag.sh 2. Incremented all existing dev/release/post-*.sh scripts by one --- dev/release/post-01-tag.sh | 37 +++++++++++++++++++ .../{post-01-upload.sh => post-02-upload.sh} | 0 .../{post-02-binary.sh => post-03-binary.sh} | 11 ------ ...{post-03-website.sh => post-04-website.sh} | 0 .../{post-04-ruby.sh => post-05-ruby.sh} | 0 dev/release/{post-05-js.sh => post-06-js.sh} | 0 .../{post-06-csharp.sh => post-07-csharp.sh} | 0 ...cts.sh => post-08-remove-old-artifacts.sh} | 0 .../{post-08-docs.sh => post-09-docs.sh} | 0 .../{post-09-python.sh => post-10-python.sh} | 0 dev/release/{post-10-go.sh => post-11-go.sh} | 0 ...-test.rb => post-12-bump-versions-test.rb} | 4 +- ...p-versions.sh => post-12-bump-versions.sh} | 0 .../{post-12-msys2.sh => post-13-mysys2.sh} | 0 ...ost-13-homebrew.sh => post-14-homebrew.sh} | 0 .../{post-14-vcpkg.sh => post-15-vcpkg.sh} | 0 .../{post-15-conan.sh => post-16-conan.sh} | 0 17 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 dev/release/post-01-tag.sh rename dev/release/{post-01-upload.sh => post-02-upload.sh} (100%) rename dev/release/{post-02-binary.sh => post-03-binary.sh} (85%) rename dev/release/{post-03-website.sh => post-04-website.sh} (100%) rename dev/release/{post-04-ruby.sh => post-05-ruby.sh} (100%) rename dev/release/{post-05-js.sh => post-06-js.sh} (100%) rename dev/release/{post-06-csharp.sh => post-07-csharp.sh} (100%) rename dev/release/{post-07-remove-old-artifacts.sh => post-08-remove-old-artifacts.sh} (100%) rename dev/release/{post-08-docs.sh => post-09-docs.sh} (100%) rename dev/release/{post-09-python.sh => post-10-python.sh} (100%) rename dev/release/{post-10-go.sh => post-11-go.sh} (100%) rename dev/release/{post-11-bump-versions-test.rb => post-12-bump-versions-test.rb} (99%) rename dev/release/{post-11-bump-versions.sh => post-12-bump-versions.sh} (100%) rename dev/release/{post-12-msys2.sh => post-13-mysys2.sh} (100%) rename dev/release/{post-13-homebrew.sh => post-14-homebrew.sh} (100%) rename dev/release/{post-14-vcpkg.sh => post-15-vcpkg.sh} (100%) rename dev/release/{post-15-conan.sh => post-16-conan.sh} (100%) diff --git a/dev/release/post-01-tag.sh b/dev/release/post-01-tag.sh new file mode 100644 index 0000000000000..d07fe5affec58 --- /dev/null +++ b/dev/release/post-01-tag.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -e +set -o pipefail + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit +fi + +# Create the release tag and trigger the Publish Release workflow. +release_candidate_tag=apache-arrow-${version}-rc${num} +release_tag=apache-arrow-${version} +git tag -a ${release_tag} ${release_candidate_tag}^{} -m "[Release] Apache Arrow Release ${version}" +git push origin ${release_tag} + +# Wait for the Publish Release workflow to finish. +sleep 2s +workflow_id=$(gh run list --repo apache/arrow --workflow "Publish Release" | cut -f7 | head -n1) +gh run watch ${workflow_id} --repo apache/arrow diff --git a/dev/release/post-01-upload.sh b/dev/release/post-02-upload.sh similarity index 100% rename from dev/release/post-01-upload.sh rename to dev/release/post-02-upload.sh diff --git a/dev/release/post-02-binary.sh b/dev/release/post-03-binary.sh similarity index 85% rename from dev/release/post-02-binary.sh rename to dev/release/post-03-binary.sh index 2e7481cf4ef3e..980f6e3c19a6a 100755 --- a/dev/release/post-02-binary.sh +++ b/dev/release/post-03-binary.sh @@ -108,14 +108,3 @@ docker_run \ VERBOSE=${VERBOSE:-no} \ VERSION=${version} \ YUM_TARGETS=$(IFS=,; echo "${yum_targets[*]}") - -# Create the release tag and trigger the Publish Release workflow. -release_candidate_tag=apache-arrow-${version}-rc${num} -release_tag=apache-arrow-${version} -git tag -a ${release_tag} ${release_candidate_tag}^{} -m "[Release] Apache Arrow Release ${version}" -git push origin ${release_tag} - -# Wait for the Publish Release workflow to finish. -sleep 2s -workflow_id=$(gh run list --repo apache/arrow --workflow "Publish Release" | cut -f7 | head -n1) -gh run watch ${workflow_id} --repo apache/arrow diff --git a/dev/release/post-03-website.sh b/dev/release/post-04-website.sh similarity index 100% rename from dev/release/post-03-website.sh rename to dev/release/post-04-website.sh diff --git a/dev/release/post-04-ruby.sh b/dev/release/post-05-ruby.sh similarity index 100% rename from dev/release/post-04-ruby.sh rename to dev/release/post-05-ruby.sh diff --git a/dev/release/post-05-js.sh b/dev/release/post-06-js.sh similarity index 100% rename from dev/release/post-05-js.sh rename to dev/release/post-06-js.sh diff --git a/dev/release/post-06-csharp.sh b/dev/release/post-07-csharp.sh similarity index 100% rename from dev/release/post-06-csharp.sh rename to dev/release/post-07-csharp.sh diff --git a/dev/release/post-07-remove-old-artifacts.sh b/dev/release/post-08-remove-old-artifacts.sh similarity index 100% rename from dev/release/post-07-remove-old-artifacts.sh rename to dev/release/post-08-remove-old-artifacts.sh diff --git a/dev/release/post-08-docs.sh b/dev/release/post-09-docs.sh similarity index 100% rename from dev/release/post-08-docs.sh rename to dev/release/post-09-docs.sh diff --git a/dev/release/post-09-python.sh b/dev/release/post-10-python.sh similarity index 100% rename from dev/release/post-09-python.sh rename to dev/release/post-10-python.sh diff --git a/dev/release/post-10-go.sh b/dev/release/post-11-go.sh similarity index 100% rename from dev/release/post-10-go.sh rename to dev/release/post-11-go.sh diff --git a/dev/release/post-11-bump-versions-test.rb b/dev/release/post-12-bump-versions-test.rb similarity index 99% rename from dev/release/post-11-bump-versions-test.rb rename to dev/release/post-12-bump-versions-test.rb index 8ad404ef33202..2bd14587461cc 100644 --- a/dev/release/post-11-bump-versions-test.rb +++ b/dev/release/post-12-bump-versions-test.rb @@ -63,12 +63,12 @@ def bump_versions(*targets) previous_version_components[2].succ! end sh(env, - "dev/release/post-11-bump-versions.sh", + "dev/release/post-12-bump-versions.sh", previous_version_components.join("."), @release_version) else sh(env, - "dev/release/post-11-bump-versions.sh", + "dev/release/post-12-bump-versions.sh", @release_version, @next_version) end diff --git a/dev/release/post-11-bump-versions.sh b/dev/release/post-12-bump-versions.sh similarity index 100% rename from dev/release/post-11-bump-versions.sh rename to dev/release/post-12-bump-versions.sh diff --git a/dev/release/post-12-msys2.sh b/dev/release/post-13-mysys2.sh similarity index 100% rename from dev/release/post-12-msys2.sh rename to dev/release/post-13-mysys2.sh diff --git a/dev/release/post-13-homebrew.sh b/dev/release/post-14-homebrew.sh similarity index 100% rename from dev/release/post-13-homebrew.sh rename to dev/release/post-14-homebrew.sh diff --git a/dev/release/post-14-vcpkg.sh b/dev/release/post-15-vcpkg.sh similarity index 100% rename from dev/release/post-14-vcpkg.sh rename to dev/release/post-15-vcpkg.sh diff --git a/dev/release/post-15-conan.sh b/dev/release/post-16-conan.sh similarity index 100% rename from dev/release/post-15-conan.sh rename to dev/release/post-16-conan.sh From dc48f7e8ab2c41bf1a5ead46f11156bb1966842f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 14:54:05 -0400 Subject: [PATCH 049/120] Update script names in release.rst --- docs/source/developers/release.rst | 73 ++++++++++++++++++------------ 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index aec956a230859..f0c48b5ec0912 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -257,6 +257,7 @@ Be sure to go through on the following checklist: #. Start the new version on JIRA for the related CPP PARQUET version #. Merge changes on release branch to maintenance branch for patch releases #. Add the new release to the Apache Reporter System +#. Push release tag #. Upload source #. Upload binaries #. Update website @@ -325,6 +326,20 @@ Be sure to go through on the following checklist: Add relevant release data for Arrow to `Apache reporter `_. +.. dropdown:: Push release tag and create GitHub Release + :animate: fade-in-slide-down + :class-title: sd-fs-5 + :class-container: sd-shadow-md + + .. code-block:: Bash + + A committer push the release tag to GitHub to create the GitHub Release: + + # dev/release/post-01-tag.sh 0.1.0 0 + dev/release/post-01-tag.sh + + Note: You must have GitHub CLI installed locally. + .. dropdown:: Upload source release artifacts to Subversion :animate: fade-in-slide-down :class-title: sd-fs-5 @@ -334,8 +349,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-01-upload.sh 0.1.0 0 - dev/release/post-01-upload.sh + # dev/release/post-02-upload.sh 0.1.0 0 + dev/release/post-02-upload.sh .. dropdown:: Upload binary release artifacts to Artifactory :animate: fade-in-slide-down @@ -346,8 +361,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-02-binary.sh 0.1.0 0 - dev/release/post-02-binary.sh + # dev/release/post-03-binary.sh 0.1.0 0 + dev/release/post-03-binary.sh Note: You must have GitHub CLI installed locally. @@ -371,8 +386,8 @@ Be sure to go through on the following checklist: ## Generate a release note for the new version, update the ## latest release information automatically. - # dev/release/post-03-website.sh 9.0.0 10.0.0 - dev/release/post-03-website.sh OLD_X.OLD_Y.OLD_Z X.Y.Z + # dev/release/post-04-website.sh 9.0.0 10.0.0 + dev/release/post-04-website.sh OLD_X.OLD_Y.OLD_Z X.Y.Z This script pushes a ``release-note-X.Y.Z`` branch to your ``apache/arrow-site`` fork. You need to open a pull request from the ``release-note-X.Y.Z`` branch on your Web browser. @@ -397,8 +412,8 @@ Be sure to go through on the following checklist: git remote add git@github.com:/homebrew-core.git cd - - # dev/release/post-13-homebrew.sh 10.0.0 kou - dev/release/post-13-homebrew.sh X.Y.Z + # dev/release/post-14-homebrew.sh 10.0.0 kou + dev/release/post-14-homebrew.sh X.Y.Z This script pushes a ``apache-arrow-X.Y.Z`` branch to your ``Homebrew/homebrew-core`` fork. You need to create a pull request from the ``apache-arrow-X.Y.Z`` branch with ``apache-arrow, apache-arrow-glib: X.Y.Z`` title on your Web browser. @@ -423,8 +438,8 @@ Be sure to go through on the following checklist: git remote add upstream https://github.com/msys2/MINGW-packages.git cd - - # dev/release/post-12-msys2.sh 10.0.0 ../MINGW-packages - dev/release/post-12-msys2.sh X.Y.Z + # dev/release/post-13-msys2.sh 10.0.0 ../MINGW-packages + dev/release/post-13-msys2.sh X.Y.Z This script pushes a ``arrow-X.Y.Z`` branch to your ``msys2/MINGW-packages`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch with ``arrow: Update to X.Y.Z`` title on your Web browser. @@ -448,8 +463,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-04-ruby.sh 10.0.0 - dev/release/post-04-ruby.sh X.Y.Z + # dev/release/post-05-ruby.sh 10.0.0 + dev/release/post-05-ruby.sh X.Y.Z .. dropdown:: Update JavaScript packages :animate: fade-in-slide-down @@ -467,8 +482,8 @@ Be sure to go through on the following checklist: # Login to npmjs.com (You need to do this only for the first time) npm login --registry=https://registry.yarnpkg.com/ - # dev/release/post-05-js.sh 10.0.0 - dev/release/post-05-js.sh X.Y.Z + # dev/release/post-06-js.sh 10.0.0 + dev/release/post-06-js.sh X.Y.Z .. dropdown:: Update C# packages :animate: fade-in-slide-down @@ -483,8 +498,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # NUGET_API_KEY=YOUR_NUGET_API_KEY dev/release/post-06-csharp.sh 10.0.0 - NUGET_API_KEY= dev/release/post-06-csharp.sh X.Y.Z + # NUGET_API_KEY=YOUR_NUGET_API_KEY dev/release/post-07-csharp.sh 10.0.0 + NUGET_API_KEY= dev/release/post-07-csharp.sh X.Y.Z .. dropdown:: Upload wheels/sdist to PyPI :animate: fade-in-slide-down @@ -497,8 +512,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-09-python.sh 10.0.0 - dev/release/post-09-python.sh + # dev/release/post-10-python.sh 10.0.0 + dev/release/post-10-python.sh .. dropdown:: Publish Maven packages :animate: fade-in-slide-down @@ -570,8 +585,8 @@ Be sure to go through on the following checklist: git remote add upstream https://github.com/microsoft/vcpkg.git cd - - # dev/release/post-14-vcpkg.sh 10.0.0 ../vcpkg - dev/release/post-14-vcpkg.sh X.Y.Z + # dev/release/post-15-vcpkg.sh 10.0.0 ../vcpkg + dev/release/post-15-vcpkg.sh X.Y.Z This script pushes a ``arrow-X.Y.Z`` branch to your ``microsoft/vcpkg`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch with ``[arrow] Update to X.Y.Z`` title on your Web browser. @@ -596,8 +611,8 @@ Be sure to go through on the following checklist: git remote add upstream https://github.com/conan-io/conan-center-index.git cd - - # dev/release/post-15-conan.sh 10.0.1 ../conan-center-index - dev/release/post-15-conan.sh X.Y.Z + # dev/release/post-16-conan.sh 10.0.1 ../conan-center-index + dev/release/post-16-conan.sh X.Y.Z This script pushes a ``arrow-X.Y.Z`` branch to your ``conan-io/conan-center-index`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch on your Web browser. @@ -611,8 +626,8 @@ Be sure to go through on the following checklist: # You can run the script with BUMP_TAG=0 and BUMP_PUSH=0 # this will avoid default pushing to main and pushing the tag # but you will require to push manually after reviewing the commits. - # dev/release/post-11-bump-versions.sh 10.0.0 11.0.0 - dev/release/post-11-bump-versions.sh X.Y.Z NEXT_X.NEXT_Y.NEXT_Z + # dev/release/post-12-bump-versions.sh 10.0.0 11.0.0 + dev/release/post-12-bump-versions.sh X.Y.Z NEXT_X.NEXT_Y.NEXT_Z .. dropdown:: Update tags for Go modules :animate: fade-in-slide-down @@ -621,8 +636,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-10-go.sh 10.0.0 - dev/release/post-10-go.sh X.Y.Z + # dev/release/post-11-go.sh 10.0.0 + dev/release/post-11-go.sh X.Y.Z .. dropdown:: Update docs :animate: fade-in-slide-down @@ -642,8 +657,8 @@ Be sure to go through on the following checklist: git remote add apache git@github.com:apache/arrow-site.git cd - - # dev/release/post-08-docs.sh 10.0.0 9.0.0 - dev/release/post-08-docs.sh X.Y.Z PREVIOUS_X.PREVIOUS_Y.PREVIOUS_Z + # dev/release/post-09-docs.sh 10.0.0 9.0.0 + dev/release/post-09-docs.sh X.Y.Z PREVIOUS_X.PREVIOUS_Y.PREVIOUS_Z This script pushes a ``release-docs-X.Y.Z`` branch to your ``arrow-site`` fork. You need to create a Pull Request and use the ``asf-site`` branch as base for it. @@ -688,4 +703,4 @@ Be sure to go through on the following checklist: .. code-block:: Bash - dev/release/post-07-remove-old-artifacts.sh \ No newline at end of file + dev/release/post-08-remove-old-artifacts.sh \ No newline at end of file From b221ff6d9a2580d220ca6d253dbc2de56b754d21 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 15:11:05 -0400 Subject: [PATCH 050/120] Restrict workflow to maint-X.Y.Z, release-X.Y.Z, and release-X.Y.Z-rcN branches --- .github/workflows/release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 734396bcaac3c..05c164273145a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,9 @@ name: Release on: push: branches: - - "!**" + - "maint-[0-9]+.[0-9]+.[0-9]+" + - "release-[0-9]+.[0-9]+.[0-9]+" + - "release-[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" tags: # Trigger workflow when a tag whose name matches either # pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" or pattern From 772ac4480b128b314a5c83127f800da728fc18a0 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Thu, 11 Apr 2024 21:18:51 -0400 Subject: [PATCH 051/120] Update dev/release/post-01-tag.sh Co-authored-by: Sutou Kouhei --- dev/release/post-01-tag.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/post-01-tag.sh b/dev/release/post-01-tag.sh index d07fe5affec58..ac38a657bdd3e 100644 --- a/dev/release/post-01-tag.sh +++ b/dev/release/post-01-tag.sh @@ -29,7 +29,7 @@ fi release_candidate_tag=apache-arrow-${version}-rc${num} release_tag=apache-arrow-${version} git tag -a ${release_tag} ${release_candidate_tag}^{} -m "[Release] Apache Arrow Release ${version}" -git push origin ${release_tag} +git push apache ${release_tag} # Wait for the Publish Release workflow to finish. sleep 2s From bacf80dc63b42a4824c376adbaa35c8781fb2645 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 22:14:37 -0400 Subject: [PATCH 052/120] Split release and release candidate workflows into separate files --- .github/workflows/release.yml | 68 +++++++------------------ .github/workflows/release_candidate.yml | 65 +++++++++++++++++++++++ 2 files changed, 82 insertions(+), 51 deletions(-) create mode 100644 .github/workflows/release_candidate.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 05c164273145a..1bee5c01085b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,16 +19,10 @@ name: Release on: push: - branches: - - "maint-[0-9]+.[0-9]+.[0-9]+" - - "release-[0-9]+.[0-9]+.[0-9]+" - - "release-[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" tags: - # Trigger workflow when a tag whose name matches either - # pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" or pattern - # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. + # Trigger workflow when a tag whose name matches the pattern + # pattern "apache-arrow-{MAJOR}.{MINOR}.{PATCH}" is pushed. - "apache-arrow-[0-9]+.[0-9]+.[0-9]+" - - "apache-arrow-[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" permissions: contents: write @@ -46,62 +40,34 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Get Latest Release Candidate's Git Tag - # Only run when a release tag is pushed - if: !contains(${GITHUB_REF_NAME}, 'rc') + - name: Get Tag Name of Latest Release Candidate run: | rc_tag=$(gh release list | \ cut -f3 | \ grep -F "${GITHUB_REF_NAME}-rc" | \ head -n1) echo "Latest Release Candidate Tag: ${rc_tag}" - echo "ARROW_RELEASE_CANDIDATE_TAG_NAME=${rc_tag}" >> ${GITHUB_ENV} - - name: Store Release Candidate Tag Name as Environment Variable - # Only run when a release candidate tag is pushed - if: contains(${GITHUB_REF_NAME}, 'rc') + echo "RELEASE_CANDIDATE_TAG_NAME=${rc_tag}" >> ${GITHUB_ENV} + - name: Store Version and Release Candidate Number run: | - echo "ARROW_RELEASE_CANDIDATE_TAG_NAME=${GITHUB_REF_NAME}" >> "$GITHUB_ENV" - - name: Store Version and Release Candidate Number as Environment Variables - run: | - version_with_rc=${ARROW_RELEASE_CANDIDATE_TAG_NAME#apache-arrow-} + version_with_rc=${RELEASE_CANDIDATE_TAG_NAME#apache-arrow-} version=${version_with_rc%-rc*} rc_num=${version_with_rc#${version}-rc} - echo "ARROW_VERSION_WITH_RC=${version_with_rc}" >> "${GITHUB_ENV}" - echo "ARROW_VERSION=${version}" >> ${GITHUB_ENV} - echo "ARROW_RC_NUM=${rc_num}" >> ${GITHUB_ENV} + echo "VERSION_WITH_RC=${version_with_rc}" >> ${GITHUB_ENV} + echo "VERSION=${version}" >> ${GITHUB_ENV} + echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV} - name: Create Release Title - # Only run when a release tag is pushed - if: !contains(${GITHUB_REF_NAME}, 'rc') - run: | - title="Apache Arrow ${ARROW_VERSION}" - echo "ARROW_RELEASE_TITLE=${title}" >> ${GITHUB_ENV} - - name: Create Release Candidate Title - # Only run when a release candidate tag is pushed - if: contains(${GITHUB_REF_NAME}, 'rc') run: | - title="Apache Arrow ${ARROW_VERSION} RC${ARROW_RC_NUM}" + title="Apache Arrow ${VERSION}" + echo "RELEASE_TITLE=${title}" >> ${GITHUB_ENV} - name: Create Release Notes - # Only run when a release tag is pushed - if: !contains(${GITHUB_REF_NAME}, 'rc') run: | - release_notes="https://arrow.apache.org/release/${ARROW_VERSION}.html" + release_notes="https://arrow.apache.org/release/${VERSION}.html" echo "Release Notes URL: ${release_notes}" - echo "ARROW_RELEASE_NOTES=${release_notes}" >> ${GITHUB_ENV} - - name: Create Release Candidate Notes - # Only run when a release candidate tag is pushed - if: contains(${GITHUB_REF_NAME}, 'rc') - run: | - release_notes="Release Candidate: ${ARROW_VERSION} RC${ARROW_RC_NUM}" - echo "ARROW_RELEASE_NOTES=${release_notes}" >> ${GITHUB_ENV} + echo "RELEASE_NOTES=${release_notes}" >> ${GITHUB_ENV} - name: Create GitHub Release run: | - is_prerelease=$(echo ${GITHUB_REF_NAME} | grep -E "rc[0-9]+$") - if [ -n $is_prerelease ] then - prerelease_flag=--prerelease - else - prerelease_flag= - fi - gh release create ${GITHUB_REF_NAME} ${prerelease_flag} \ - --title "${ARROW_RELEASE_TITLE}" \ - --notes "Release Notes: ${ARROW_RELEASE_NOTES_URL}" \ - --verify-tag + gh release create ${GITHUB_REF_NAME} \ + --verify-tag \ + --title "${RELEASE_TITLE}" \ + --notes "Release Notes: ${RELEASE_NOTES}" \ No newline at end of file diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml new file mode 100644 index 0000000000000..0af6bfaa9ae77 --- /dev/null +++ b/.github/workflows/release_candidate.yml @@ -0,0 +1,65 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Release + +on: + push: + tags: + # Trigger workflow when a tag whose name matches the pattern + #"apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. + - "apache-arrow-[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" + +permissions: + contents: write + +env: + GH_TOKEN: ${{ github.token }} + +jobs: + publish: + name: Publish + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: Checkout Arrow + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Store Version and Release Candidate Number + run: | + version_with_rc=${GITHUB_REF_NAME#apache-arrow-} + version=${version_with_rc%-rc*} + rc_num=${version_with_rc#${version}-rc} + echo "VERSION_WITH_RC=${version_with_rc}" >> ${GITHUB_ENV} + echo "VERSION=${version}" >> ${GITHUB_ENV} + echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV} + - name: Create Release Candidate Title + run: | + title="Apache Arrow ${VERSION} RC${RC_NUM}" + echo "RELEASE_CANDIDATE_TITLE=${title}" >> ${GITHUB_ENV} + - name: Create Release Candidate Notes + run: | + release_notes="Release Candidate: ${VERSION} RC${RC_NUM}" + echo "RELEASE_CANDIDATE_NOTES=${release_notes}" >> ${GITHUB_ENV} + - name: Create GitHub Release + run: | + gh release create ${GITHUB_REF_NAME} \ + --verify-tag \ + --prerelease \ + --title "${RELEASE_CANDIDATE_TITLE}" \ + --notes "Release Notes: ${RELEASE_CANDIDATE_NOTES}" From 91bcac3533feff4f02bd6f85fc17841f7a32c918 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 11 Apr 2024 22:45:45 -0400 Subject: [PATCH 053/120] 1. Remove gh command to watching release workflow 2. Update release.rst --- dev/release/post-01-tag.sh | 5 ----- docs/source/developers/release.rst | 4 +--- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/dev/release/post-01-tag.sh b/dev/release/post-01-tag.sh index ac38a657bdd3e..df0f6756c0e7c 100644 --- a/dev/release/post-01-tag.sh +++ b/dev/release/post-01-tag.sh @@ -30,8 +30,3 @@ release_candidate_tag=apache-arrow-${version}-rc${num} release_tag=apache-arrow-${version} git tag -a ${release_tag} ${release_candidate_tag}^{} -m "[Release] Apache Arrow Release ${version}" git push apache ${release_tag} - -# Wait for the Publish Release workflow to finish. -sleep 2s -workflow_id=$(gh run list --repo apache/arrow --workflow "Publish Release" | cut -f7 | head -n1) -gh run watch ${workflow_id} --repo apache/arrow diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index f0c48b5ec0912..0ebffd1c6f0e0 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -333,13 +333,11 @@ Be sure to go through on the following checklist: .. code-block:: Bash - A committer push the release tag to GitHub to create the GitHub Release: + A committer must push the release tag to GitHub: # dev/release/post-01-tag.sh 0.1.0 0 dev/release/post-01-tag.sh - Note: You must have GitHub CLI installed locally. - .. dropdown:: Upload source release artifacts to Subversion :animate: fade-in-slide-down :class-title: sd-fs-5 From 60efd41f1f05077877c77c5db6ca5183c0610c04 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Mon, 15 Apr 2024 09:42:18 -0400 Subject: [PATCH 054/120] Update docs/source/developers/release.rst Co-authored-by: Sutou Kouhei --- docs/source/developers/release.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 0ebffd1c6f0e0..e063cb5141292 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -331,9 +331,10 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md + A committer must push the release tag to GitHub: + .. code-block:: Bash - A committer must push the release tag to GitHub: # dev/release/post-01-tag.sh 0.1.0 0 dev/release/post-01-tag.sh From e82fa6df20006d531d85597e59b2600b8ba3b259 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 14:38:24 -0400 Subject: [PATCH 055/120] Add logic to create release tarball to release_candidate.yml workflow file --- .github/workflows/release_candidate.yml | 32 ++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index 0af6bfaa9ae77..a83be62726803 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -48,6 +48,35 @@ jobs: echo "VERSION_WITH_RC=${version_with_rc}" >> ${GITHUB_ENV} echo "VERSION=${version}" >> ${GITHUB_ENV} echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV} + - name: Get Commit Associated with Release Candidate Tag + run: | + release_hash=$(git rev-list --max-count=1 ${GITHUB_REF_NAME}) + echo "Using commit ${release_hash}" + echo "RELEASE_HASH=${release_hash}" >> ${GITHUB_ENV} + - name: Download Archive From Release Hash + run: | + git archive ${RELEASE_HASH} --prefix ${GITHUB_REF_NAME}/ | tar xf - + - name: Resolve all hard and symbolic links + run: | + mv ${GITHUB_REF_NAME} ${GITHUB_REF_NAME}.tmp + cp -R -L ${GITHUB_REF_NAME}.tmp ${GITHUB_REF_NAME} + rm -rf ${GITHUB_REF_NAME}.tmp + - name: Add Source Link Support for C# Bindings + run: | + dummy_git=${GITHUB_REF_NAME}/csharp/dummy.git + mkdir ${dummy_git} + curr_dir=$(pwd) + cd ${dummy_git} && \ + echo ${RELEASE_HASH} > HEAD && \ + echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config && \ + mkdir objects refs && \ + cd ${curr_dir} + - name: Create Release Tarball + run: | + tarball=apache-arrow-${version}.tar.gz + tar czf ${tarball} ${GITHUB_REF_NAME} + rm -rf ${GITHUB_REF_NAME} + echo "RELEASE_TARBALL=${tarball}" >> ${GITHUB_ENV} - name: Create Release Candidate Title run: | title="Apache Arrow ${VERSION} RC${RC_NUM}" @@ -62,4 +91,5 @@ jobs: --verify-tag \ --prerelease \ --title "${RELEASE_CANDIDATE_TITLE}" \ - --notes "Release Notes: ${RELEASE_CANDIDATE_NOTES}" + --notes "Release Notes: ${RELEASE_CANDIDATE_NOTES}" \ + ${RELEASE_TARBALL} From 7e4f481bb38f6790d9ba214784653bf782419a7b Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 14:48:49 -0400 Subject: [PATCH 056/120] Fix reference to version env variable --- .github/workflows/release_candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index a83be62726803..ffe90ad205f45 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -73,7 +73,7 @@ jobs: cd ${curr_dir} - name: Create Release Tarball run: | - tarball=apache-arrow-${version}.tar.gz + tarball=apache-arrow-${VERSION}.tar.gz tar czf ${tarball} ${GITHUB_REF_NAME} rm -rf ${GITHUB_REF_NAME} echo "RELEASE_TARBALL=${tarball}" >> ${GITHUB_ENV} From 143bd4163ea89d2b8609b6e09219268b3dde4ab2 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 14:52:22 -0400 Subject: [PATCH 057/120] Download source tarball from release candidate instead in 02-source.sh --- dev/release/02-source.sh | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 27ca67a76e26c..6516f82d685b5 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -57,33 +57,13 @@ echo "Using commit $release_hash" tarball=apache-arrow-${version}.tar.gz -rm -rf ${tag} -# be conservative and use the release hash, even though git produces the same -# archive (identical hashes) using the scm tag -(cd "${SOURCE_TOP_DIR}" && \ - git archive ${release_hash} --prefix ${tag}/) | \ - tar xf - - -# Resolve all hard and symbolic links. -# If we change this, we must change ArrowSources.archive in -# dev/archery/archery/utils/source.py too. -rm -rf ${tag}.tmp -mv ${tag} ${tag}.tmp -cp -R -L ${tag}.tmp ${tag} -rm -rf ${tag}.tmp - -# Create a dummy .git/ directory to download the source files from GitHub with Source Link in C#. -dummy_git=${tag}/csharp/dummy.git -mkdir ${dummy_git} -pushd ${dummy_git} -echo ${release_hash} > HEAD -echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config -mkdir objects refs -popd - -# Create new tarball from modified source directory -tar czf ${tarball} ${tag} -rm -rf ${tag} +rm -f ${tarball} + +gh release download \ + ${tag} \ + --repo apache/arrow \ + --dir . \ + --pattern "${tarball}" if [ ${SOURCE_RAT} -gt 0 ]; then "${SOURCE_DIR}/run-rat.sh" ${tarball} From 648d2669c4c36debf279d22ac43e4257246eb4b8 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 15:00:22 -0400 Subject: [PATCH 058/120] Set GH_TOKEN env variable in "Run Release Test" step of the dev workflow --- .github/workflows/dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 1ea12b0a4d23d..878d5aeb5dcae 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -124,6 +124,7 @@ jobs: - name: Run Release Test env: ARROW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | ci/scripts/release_test.sh $(pwd) From 0d66b160095471ba83f13ca1f2c19bc6b66842fd Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:04:50 -0400 Subject: [PATCH 059/120] Add script to create release tarball --- dev/release/02-source.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 6516f82d685b5..4637d95493378 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -59,11 +59,17 @@ tarball=apache-arrow-${version}.tar.gz rm -f ${tarball} -gh release download \ - ${tag} \ - --repo apache/arrow \ - --dir . \ - --pattern "${tarball}" +if [${TEST_RELEASE_SCRIPT} -gt 0] ; then + gh workflow run -f release_hash=${release_hash} tarball_name=${tarball} -> workflow id + gh run watch --exit-status + gh run download {id} -- +; else + gh release download \ + ${tag} \ + --repo apache/arrow \ + --dir . \ + --pattern "${tarball}" +fi if [ ${SOURCE_RAT} -gt 0 ]; then "${SOURCE_DIR}/run-rat.sh" ${tarball} From 924e3732a10fa68bc2ce89816f7feb509d006831 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:08:06 -0400 Subject: [PATCH 060/120] Use utils-create-release-tarball in release_candidate workflow --- .github/workflows/release_candidate.yml | 33 +++---------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index ffe90ad205f45..d9ef3c734c4dc 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -48,35 +48,6 @@ jobs: echo "VERSION_WITH_RC=${version_with_rc}" >> ${GITHUB_ENV} echo "VERSION=${version}" >> ${GITHUB_ENV} echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV} - - name: Get Commit Associated with Release Candidate Tag - run: | - release_hash=$(git rev-list --max-count=1 ${GITHUB_REF_NAME}) - echo "Using commit ${release_hash}" - echo "RELEASE_HASH=${release_hash}" >> ${GITHUB_ENV} - - name: Download Archive From Release Hash - run: | - git archive ${RELEASE_HASH} --prefix ${GITHUB_REF_NAME}/ | tar xf - - - name: Resolve all hard and symbolic links - run: | - mv ${GITHUB_REF_NAME} ${GITHUB_REF_NAME}.tmp - cp -R -L ${GITHUB_REF_NAME}.tmp ${GITHUB_REF_NAME} - rm -rf ${GITHUB_REF_NAME}.tmp - - name: Add Source Link Support for C# Bindings - run: | - dummy_git=${GITHUB_REF_NAME}/csharp/dummy.git - mkdir ${dummy_git} - curr_dir=$(pwd) - cd ${dummy_git} && \ - echo ${RELEASE_HASH} > HEAD && \ - echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config && \ - mkdir objects refs && \ - cd ${curr_dir} - - name: Create Release Tarball - run: | - tarball=apache-arrow-${VERSION}.tar.gz - tar czf ${tarball} ${GITHUB_REF_NAME} - rm -rf ${GITHUB_REF_NAME} - echo "RELEASE_TARBALL=${tarball}" >> ${GITHUB_ENV} - name: Create Release Candidate Title run: | title="Apache Arrow ${VERSION} RC${RC_NUM}" @@ -85,6 +56,10 @@ jobs: run: | release_notes="Release Candidate: ${VERSION} RC${RC_NUM}" echo "RELEASE_CANDIDATE_NOTES=${release_notes}" >> ${GITHUB_ENV} + - name: Create Release tarball + run: | + dev/release/utils-create-release-tarball.sh ${VERSION} ${RC_NUM} + echo "RELEASE_TARBALL=apache-arrow-${VERSION}.tar.gz" >> ${GITHUB_ENV} - name: Create GitHub Release run: | gh release create ${GITHUB_REF_NAME} \ From 6235cc1335049bf75c7f0189876ce421ebdf57bc Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:12:53 -0400 Subject: [PATCH 061/120] Call utils-create-release-tarball in 02-source.sh is TEST_RELEASE_SCRIPT env variable is greater than 0 --- dev/release/02-source.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 4637d95493378..f1757738fac4b 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -59,11 +59,9 @@ tarball=apache-arrow-${version}.tar.gz rm -f ${tarball} -if [${TEST_RELEASE_SCRIPT} -gt 0] ; then - gh workflow run -f release_hash=${release_hash} tarball_name=${tarball} -> workflow id - gh run watch --exit-status - gh run download {id} -- -; else +if [ ${TEST_RELEASE_SCRIPT} -gt 0 ]; then + ./utils-create-release-tarball ${version} ${rc} +else gh release download \ ${tag} \ --repo apache/arrow \ From 9291890b3d97f694aadd180ad6d9c6b232b90f5b Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:15:12 -0400 Subject: [PATCH 062/120] Set TEST_RELEASE_SCRIPT env variable to 1 --- dev/release/02-source-test.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index cb2336dbea0ed..0c1e525249558 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -37,6 +37,7 @@ def source(*targets) env = { "SOURCE_DEFAULT" => "0", "release_hash" => @current_commit, + "TEST_RELEASE_SCRIPT" => "1", } targets.each do |target| env["SOURCE_#{target}"] = "1" From a0c73631c5fa335c738ba096f2a21d9b6ad457db Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:19:30 -0400 Subject: [PATCH 063/120] Fix path to utils-create-release-tarball.sh --- dev/release/02-source.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index f1757738fac4b..2a9cfd233bc50 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -60,7 +60,8 @@ tarball=apache-arrow-${version}.tar.gz rm -f ${tarball} if [ ${TEST_RELEASE_SCRIPT} -gt 0 ]; then - ./utils-create-release-tarball ${version} ${rc} + # Assume calling from arrow's source directory + ./dev/release/utils-create-release-tarball ${version} ${rc} else gh release download \ ${tag} \ From 4b016a179800c551b64efb21cb5329e3f13a048f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:23:37 -0400 Subject: [PATCH 064/120] Fix path to utils-create-release-tarball.sh --- dev/release/02-source.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 2a9cfd233bc50..f968e2a47dacf 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -61,7 +61,7 @@ rm -f ${tarball} if [ ${TEST_RELEASE_SCRIPT} -gt 0 ]; then # Assume calling from arrow's source directory - ./dev/release/utils-create-release-tarball ${version} ${rc} + "${SOURCE_DIR}/dev/release/utils-create-release-tarball.sh" ${version} ${rc} else gh release download \ ${tag} \ From 73a638ae6cd0b61276901503294ef0c87be90706 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:27:31 -0400 Subject: [PATCH 065/120] remove dev/release from path to utils-create-release-tarball.sh --- dev/release/02-source.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index f968e2a47dacf..2f0d280b1fd5c 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -61,7 +61,7 @@ rm -f ${tarball} if [ ${TEST_RELEASE_SCRIPT} -gt 0 ]; then # Assume calling from arrow's source directory - "${SOURCE_DIR}/dev/release/utils-create-release-tarball.sh" ${version} ${rc} + "${SOURCE_DIR}/utils-create-release-tarball.sh" ${version} ${rc} else gh release download \ ${tag} \ From 71ce7a323817561c8d739e365b1f43132f6c6ff3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:32:57 -0400 Subject: [PATCH 066/120] Add utils-create-release-tarball.sh --- dev/release/utils-create-release-tarball.sh | 55 +++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 dev/release/utils-create-release-tarball.sh diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh new file mode 100644 index 0000000000000..edada0d74cc1c --- /dev/null +++ b/dev/release/utils-create-release-tarball.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit +fi + +tag=apache-arrow-${version}-rc${rc} +tarball=apache-arrow-${version}.tar.gz + +: ${release_hash:=$(git rev-list --max-count=1 ${tag})} + +rm -rf ${tag} + +# be conservative and use the release hash, even though git produces the same +# archive (identical hashes) using the scm tag +git archive ${release_hash} --prefix ${tag}/ | tar xf - + +# Resolve symbolic and hard links +rm -rf ${tag}.tmp +mv ${tag} ${tag}.tmp +cp -R -L ${tag}.tmp ${tag} +rm -rf ${tag}.tmp + +# Create a dummy .git/ directory to download the source files from GitHub with Source Link in C#. +dummy_git=${GITHUB_REF_NAME}/csharp/dummy.git +mkdir ${dummy_git} +pushd ${dummy_git} +cd ${dummy_git} +echo ${RELEASE_HASH} > HEAD +echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config +mkdir objects refs +popd + +# Create new tarball from modified source directory +tar czf ${tarball} ${tag} +rm -rf ${tag} \ No newline at end of file From 410569ba51e8636d025d88c26bb0ebcd6cae9c76 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:36:25 -0400 Subject: [PATCH 067/120] Add +x permissions to utils-create-release-tarball.sh --- dev/release/utils-create-release-tarball.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 dev/release/utils-create-release-tarball.sh diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh old mode 100644 new mode 100755 From 8a3c18678b73eeb22e61cc67465e8646b6d10be5 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:46:06 -0400 Subject: [PATCH 068/120] Add SOURCE_TOP_DIR and SOURCE_DIR variables --- dev/release/utils-create-release-tarball.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh index edada0d74cc1c..34b34ba8ac0e6 100755 --- a/dev/release/utils-create-release-tarball.sh +++ b/dev/release/utils-create-release-tarball.sh @@ -18,11 +18,17 @@ # under the License. # +SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)" + if [ "$#" -ne 2 ]; then echo "Usage: $0 " exit fi +version=$1 +rc=$2 + tag=apache-arrow-${version}-rc${rc} tarball=apache-arrow-${version}.tar.gz @@ -32,7 +38,9 @@ rm -rf ${tag} # be conservative and use the release hash, even though git produces the same # archive (identical hashes) using the scm tag -git archive ${release_hash} --prefix ${tag}/ | tar xf - +(cd "${SOURCE_TOP_DIR}" && \ + git archive ${release_hash} --prefix ${tag}/) | \ + tar xf - # Resolve symbolic and hard links rm -rf ${tag}.tmp From 4ebd7cea0471f6cb29ac9255d8ccee9261dd5b55 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:50:46 -0400 Subject: [PATCH 069/120] GITHUB_REF_NAME -> tag --- dev/release/utils-create-release-tarball.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh index 34b34ba8ac0e6..a543a353017f0 100755 --- a/dev/release/utils-create-release-tarball.sh +++ b/dev/release/utils-create-release-tarball.sh @@ -49,7 +49,7 @@ cp -R -L ${tag}.tmp ${tag} rm -rf ${tag}.tmp # Create a dummy .git/ directory to download the source files from GitHub with Source Link in C#. -dummy_git=${GITHUB_REF_NAME}/csharp/dummy.git +dummy_git=${tag}/csharp/dummy.git mkdir ${dummy_git} pushd ${dummy_git} cd ${dummy_git} From daaff3cc8f4be06b3bb1ca604b8d797af4ca1c31 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 16:56:34 -0400 Subject: [PATCH 070/120] Remove extra cd call --- dev/release/utils-create-release-tarball.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh index a543a353017f0..baa180481cefe 100755 --- a/dev/release/utils-create-release-tarball.sh +++ b/dev/release/utils-create-release-tarball.sh @@ -52,7 +52,6 @@ rm -rf ${tag}.tmp dummy_git=${tag}/csharp/dummy.git mkdir ${dummy_git} pushd ${dummy_git} -cd ${dummy_git} echo ${RELEASE_HASH} > HEAD echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config mkdir objects refs From 046263ab2206b8ce0d0e04d5f7bb9b9ef978e686 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 17:01:56 -0400 Subject: [PATCH 071/120] RELEASE_HASH -> release_hash --- dev/release/utils-create-release-tarball.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh index baa180481cefe..e537fde8c1685 100755 --- a/dev/release/utils-create-release-tarball.sh +++ b/dev/release/utils-create-release-tarball.sh @@ -52,7 +52,7 @@ rm -rf ${tag}.tmp dummy_git=${tag}/csharp/dummy.git mkdir ${dummy_git} pushd ${dummy_git} -echo ${RELEASE_HASH} > HEAD +echo ${release_hash} > HEAD echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config mkdir objects refs popd From 52149ca0abad20fa47c39852b52d5c892733b63a Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 17:02:34 -0400 Subject: [PATCH 072/120] Call utils-create-release-tarball.sh from within dev/release directory --- .github/workflows/release_candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index d9ef3c734c4dc..8bb2f80f6d026 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -58,7 +58,7 @@ jobs: echo "RELEASE_CANDIDATE_NOTES=${release_notes}" >> ${GITHUB_ENV} - name: Create Release tarball run: | - dev/release/utils-create-release-tarball.sh ${VERSION} ${RC_NUM} + cd dev/release/ && ./utils-create-release-tarball.sh ${VERSION} ${RC_NUM} echo "RELEASE_TARBALL=apache-arrow-${VERSION}.tar.gz" >> ${GITHUB_ENV} - name: Create GitHub Release run: | From 00ee47d407c60c2910f1a024bcaf5eaaf4cc3c47 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 15 Apr 2024 22:19:20 -0400 Subject: [PATCH 073/120] fix path to release tarball --- .github/workflows/release_candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index 8bb2f80f6d026..3d5911609317b 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -67,4 +67,4 @@ jobs: --prerelease \ --title "${RELEASE_CANDIDATE_TITLE}" \ --notes "Release Notes: ${RELEASE_CANDIDATE_NOTES}" \ - ${RELEASE_TARBALL} + dev/release/${RELEASE_TARBALL} From ea2d008e0c911c71a20fd313361c8885d41c7235 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Tue, 16 Apr 2024 09:55:13 -0400 Subject: [PATCH 074/120] Update docs/source/developers/release.rst Co-authored-by: Sutou Kouhei --- docs/source/developers/release.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index e063cb5141292..5f7dcb86f4b18 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -335,7 +335,6 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-01-tag.sh 0.1.0 0 dev/release/post-01-tag.sh From c707d089e69e359521d8be209c060259049be039 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Tue, 16 Apr 2024 09:55:21 -0400 Subject: [PATCH 075/120] Update dev/release/utils-create-release-tarball.sh Co-authored-by: Sutou Kouhei --- dev/release/utils-create-release-tarball.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh index e537fde8c1685..d8f3388ce7c8c 100755 --- a/dev/release/utils-create-release-tarball.sh +++ b/dev/release/utils-create-release-tarball.sh @@ -39,7 +39,7 @@ rm -rf ${tag} # be conservative and use the release hash, even though git produces the same # archive (identical hashes) using the scm tag (cd "${SOURCE_TOP_DIR}" && \ - git archive ${release_hash} --prefix ${tag}/) | \ + git archive ${release_hash} --prefix ${tag}/) | \ tar xf - # Resolve symbolic and hard links From be681d1c9fb94410508b9ad4f1c9dd7c93edc248 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Tue, 16 Apr 2024 09:56:01 -0400 Subject: [PATCH 076/120] Update dev/release/02-source.sh Co-authored-by: Sutou Kouhei --- dev/release/02-source.sh | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 2f0d280b1fd5c..39315517f0c01 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -57,13 +57,9 @@ echo "Using commit $release_hash" tarball=apache-arrow-${version}.tar.gz -rm -f ${tarball} - -if [ ${TEST_RELEASE_SCRIPT} -gt 0 ]; then - # Assume calling from arrow's source directory - "${SOURCE_DIR}/utils-create-release-tarball.sh" ${version} ${rc} -else - gh release download \ +if [ ${SOURCE_DOWNLOAD} -gt 0 ]; then + rm -f ${tarball} + gh release download \ ${tag} \ --repo apache/arrow \ --dir . \ From b9065bc264874bd4eb638bef4cacaa370107ae29 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Tue, 16 Apr 2024 09:56:10 -0400 Subject: [PATCH 077/120] Update dev/release/02-source-test.rb Co-authored-by: Sutou Kouhei --- dev/release/02-source-test.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index 0c1e525249558..ce9cd86046df8 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -42,6 +42,7 @@ def source(*targets) targets.each do |target| env["SOURCE_#{target}"] = "1" end + sh(env, File.expand_path("dev/release/utils-create-release-tarball.sh", @release_version, "0") output = sh(env, @script, @release_version, "0") sh("tar", "xf", @archive_name) output From 3c189a0500753b80ef3491f238ec6472eaa7c246 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 09:57:50 -0400 Subject: [PATCH 078/120] Add newlien to end of file --- dev/release/utils-create-release-tarball.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/utils-create-release-tarball.sh b/dev/release/utils-create-release-tarball.sh index d8f3388ce7c8c..1a0ba83639b9a 100755 --- a/dev/release/utils-create-release-tarball.sh +++ b/dev/release/utils-create-release-tarball.sh @@ -59,4 +59,4 @@ popd # Create new tarball from modified source directory tar czf ${tarball} ${tag} -rm -rf ${tag} \ No newline at end of file +rm -rf ${tag} From 2e68629e9e299b5fc6be1e9ab6ba59be44e2199d Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:01:12 -0400 Subject: [PATCH 079/120] Add missing ) --- dev/release/02-source-test.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index ce9cd86046df8..e3602ceb62d15 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -37,12 +37,11 @@ def source(*targets) env = { "SOURCE_DEFAULT" => "0", "release_hash" => @current_commit, - "TEST_RELEASE_SCRIPT" => "1", } targets.each do |target| env["SOURCE_#{target}"] = "1" end - sh(env, File.expand_path("dev/release/utils-create-release-tarball.sh", @release_version, "0") + sh(env, File.expand_path("dev/release/utils-create-release-tarball.sh", @release_version, "0")) output = sh(env, @script, @release_version, "0") sh("tar", "xf", @archive_name) output From 2a38f599c7ca903104a8979683d91adc8e529258 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:08:17 -0400 Subject: [PATCH 080/120] Fix expand_path call --- dev/release/02-source-test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index e3602ceb62d15..c9c96c3300c32 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -41,7 +41,7 @@ def source(*targets) targets.each do |target| env["SOURCE_#{target}"] = "1" end - sh(env, File.expand_path("dev/release/utils-create-release-tarball.sh", @release_version, "0")) + sh(env, File.expand_path("dev/release/utils-create-release-tarball.sh"), @release_version, "0") output = sh(env, @script, @release_version, "0") sh("tar", "xf", @archive_name) output From 73b18b9a5654e443ebec24fb8a9727a556f79378 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:12:53 -0400 Subject: [PATCH 081/120] Add tarball_script variable --- dev/release/02-source-test.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb index c9c96c3300c32..eab95c798f284 100644 --- a/dev/release/02-source-test.rb +++ b/dev/release/02-source-test.rb @@ -25,6 +25,7 @@ def setup @tag_name = "apache-arrow-#{@release_version}-rc0" @archive_name = "apache-arrow-#{@release_version}.tar.gz" @script = File.expand_path("dev/release/02-source.sh") + @tarball_script = File.expand_path("dev/release/utils-create-release-tarball.sh") Dir.mktmpdir do |dir| Dir.chdir(dir) do @@ -41,7 +42,7 @@ def source(*targets) targets.each do |target| env["SOURCE_#{target}"] = "1" end - sh(env, File.expand_path("dev/release/utils-create-release-tarball.sh"), @release_version, "0") + sh(env, @tarball_script, @release_version, "0") output = sh(env, @script, @release_version, "0") sh("tar", "xf", @archive_name) output From a1423830fab1f343873b7348f9a2754632444fb3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:17:21 -0400 Subject: [PATCH 082/120] Initialize SOURCE_DOWNLOAD variable --- dev/release/02-source.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 39315517f0c01..d54ff99cfbb54 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -25,6 +25,7 @@ set -eu : ${SOURCE_UPLOAD:=${SOURCE_DEFAULT}} : ${SOURCE_PR:=${SOURCE_DEFAULT}} : ${SOURCE_VOTE:=${SOURCE_DEFAULT}} +: ${SOURCE_DOWNLOAD:=${SOURCE_DEFAULT}} SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)" From 844d6b29fbfdbc8220d26b9275bc2eafac995fbb Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:39:54 -0400 Subject: [PATCH 083/120] Add step to download release candidate artifacts in release workflow --- .github/workflows/release.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1bee5c01085b8..107be92f6d210 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,6 +56,11 @@ jobs: echo "VERSION_WITH_RC=${version_with_rc}" >> ${GITHUB_ENV} echo "VERSION=${version}" >> ${GITHUB_ENV} echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV} + - name: Download Release Candidate Artifacts + run: | + rc_tag=apache-arrow-${VERSION}-rc${RC_NUM} + mkdir release_candidate_artifacts + gh release download ${rc_tag} --dir release_candidate_artifacts - name: Create Release Title run: | title="Apache Arrow ${VERSION}" @@ -70,4 +75,5 @@ jobs: gh release create ${GITHUB_REF_NAME} \ --verify-tag \ --title "${RELEASE_TITLE}" \ - --notes "Release Notes: ${RELEASE_NOTES}" \ No newline at end of file + --notes "Release Notes: ${RELEASE_NOTES}" \ + release_candidate_artifacts/* \ No newline at end of file From 62168c74d06f2a8bbbd8d99539e645cacdfb7fe4 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:40:44 -0400 Subject: [PATCH 084/120] Add newline to end of file --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 107be92f6d210..6621958f0a6cb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,4 +76,5 @@ jobs: --verify-tag \ --title "${RELEASE_TITLE}" \ --notes "Release Notes: ${RELEASE_NOTES}" \ - release_candidate_artifacts/* \ No newline at end of file + release_candidate_artifacts/* + \ No newline at end of file From 269642df43e848a32829e30e5b78ce88695afbfe Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:52:49 -0400 Subject: [PATCH 085/120] Add script to sign and upload matlab artifacts to release candidate --- dev/release/07-matlab-upload.sh | 89 +++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 dev/release/07-matlab-upload.sh diff --git a/dev/release/07-matlab-upload.sh b/dev/release/07-matlab-upload.sh new file mode 100644 index 0000000000000..0cc3d91e84bf3 --- /dev/null +++ b/dev/release/07-matlab-upload.sh @@ -0,0 +1,89 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -e +set -u +set -o pipefail + +SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +if [ $# -ne 2 ]; then + echo "Usage: $0 " + exit +fi + +version=$1 +rc=$2 +version_with_rc=${version}-rc${rc} + +: ${UPLOAD_DEFAULT=1} +: ${UPLOAD_FORCE_SIGN=${UPLOAD_DEFAULT}} + +if [ ${UPLOAD_FORCE_SIGN} -gt 0 ]; then + pushd "${SOURCE_DIR}" + if [ ! -f .env ]; then + echo "You must create $(pwd)/.env" + echo "You can use $(pwd)/.env.example as template" + exit 1 + fi + . .env + popd +fi + +version_with_rc="${version}-rc${rc}" +crossbow_job_prefix="release-${version_with_rc}" +crossbow_package_dir="${SOURCE_DIR}/../../packages" + +: ${CROSSBOW_JOB_NUMBER:="0"} +: ${CROSSBOW_JOB_ID:="${crossbow_job_prefix}-${CROSSBOW_JOB_NUMBER}"} +: ${ARROW_ARTIFACTS_DIR:="${crossbow_package_dir}/${CROSSBOW_JOB_ID}/matlab"} + +if [ ! -e "${ARROW_ARTIFACTS_DIR}" ]; then + echo "${ARROW_ARTIFACTS_DIR} does not exist" + exit 1 +fi + +if [ ! -d "${ARROW_ARTIFACTS_DIR}" ]; then + echo "${ARROW_ARTIFACTS_DIR} is not a directory" + exit 1 +fi + +pushd "${ARROW_ARTIFACTS_DIR}" + +if [ ${UPLOAD_FORCE_SIGN} -gt 0 ]; then + # Upload the MATLAB MLTBX Release Candidate to the GitHub Releases + # area of the Apache Arrow GitHub project. + mltbx_file=matlab-arrow-${version_with_rc}.mltbx + mltbx_signature_gpg_ascii_armor=${mltbx_file}.asc + mltbx_checksum_sha512=${mltbx_file}.sha512 + + rm -rf ${mltbx_signature_gpg_ascii_armor} + rm -rf ${mltbx_checksum_sha512} + + # Sign the MLTBX file and create a detached (--deatch-sign) ASCII armor (--armor) GPG signature file. + gpg --detach-sign --local-user "${GPG_KEY_ID}" --armor ${mltbx_file} + + # Compute the SHA512 checksum of the MLTBX file. + shasum --algorithm 512 ${mltbx_file} > ${mltbx_checksum_sha512} +fi + +gh release upload ${tag} \ + --clobber \ + --repo apache/arrow \ + * + +popd \ No newline at end of file From 94e128af81d35d243bbdb6842f01cb4682adcb7f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 10:53:43 -0400 Subject: [PATCH 086/120] Add newline to end of file --- dev/release/07-matlab-upload.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/07-matlab-upload.sh b/dev/release/07-matlab-upload.sh index 0cc3d91e84bf3..a7ea3c1db6c0e 100644 --- a/dev/release/07-matlab-upload.sh +++ b/dev/release/07-matlab-upload.sh @@ -86,4 +86,4 @@ gh release upload ${tag} \ --repo apache/arrow \ * -popd \ No newline at end of file +popd From 0c8db099dcada40b6d6151fd7a9f936a8fa196f3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 11:45:37 -0400 Subject: [PATCH 087/120] Rename 07-matlab-upload.sh to 08-matlab-upload.sh --- dev/release/{07-matlab-upload.sh => 08-matlab-upload.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename dev/release/{07-matlab-upload.sh => 08-matlab-upload.sh} (100%) diff --git a/dev/release/07-matlab-upload.sh b/dev/release/08-matlab-upload.sh similarity index 100% rename from dev/release/07-matlab-upload.sh rename to dev/release/08-matlab-upload.sh From f2ce0df44ad5cdbb768327e5990fac252fd8b944 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 11:46:24 -0400 Subject: [PATCH 088/120] Make 08-matlab-upload executable --- dev/release/08-matlab-upload.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 dev/release/08-matlab-upload.sh diff --git a/dev/release/08-matlab-upload.sh b/dev/release/08-matlab-upload.sh old mode 100644 new mode 100755 From d89cf5ab1897f131a271eed033ff15a54ff99dfd Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 11:47:41 -0400 Subject: [PATCH 089/120] Add tag variable --- dev/release/08-matlab-upload.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev/release/08-matlab-upload.sh b/dev/release/08-matlab-upload.sh index a7ea3c1db6c0e..803ceadb35eaf 100755 --- a/dev/release/08-matlab-upload.sh +++ b/dev/release/08-matlab-upload.sh @@ -28,7 +28,6 @@ fi version=$1 rc=$2 -version_with_rc=${version}-rc${rc} : ${UPLOAD_DEFAULT=1} : ${UPLOAD_FORCE_SIGN=${UPLOAD_DEFAULT}} @@ -67,9 +66,9 @@ pushd "${ARROW_ARTIFACTS_DIR}" if [ ${UPLOAD_FORCE_SIGN} -gt 0 ]; then # Upload the MATLAB MLTBX Release Candidate to the GitHub Releases # area of the Apache Arrow GitHub project. - mltbx_file=matlab-arrow-${version_with_rc}.mltbx - mltbx_signature_gpg_ascii_armor=${mltbx_file}.asc - mltbx_checksum_sha512=${mltbx_file}.sha512 + mltbx_file="matlab-arrow-${version}.mltbx" + mltbx_signature_gpg_ascii_armor="${mltbx_file}.asc" + mltbx_checksum_sha512="${mltbx_file}.sha512" rm -rf ${mltbx_signature_gpg_ascii_armor} rm -rf ${mltbx_checksum_sha512} @@ -81,6 +80,7 @@ if [ ${UPLOAD_FORCE_SIGN} -gt 0 ]; then shasum --algorithm 512 ${mltbx_file} > ${mltbx_checksum_sha512} fi +tag="apache-arrow-${version_with_rc}" gh release upload ${tag} \ --clobber \ --repo apache/arrow \ From 3f5553f7dfa16164a0c95d691d9cf47ff6e7e56b Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 11:53:32 -0400 Subject: [PATCH 090/120] 1. Make logic extracting the MAJOR.MINOR.PATCH version string more robust in packafgeMatlabInterface.m, i.e. support extracting version string from ${version}.dev${num} and ${version}-rc${rc} 2. Change MLTBX file name from matlab-arrow-${version}-rc${rc}.mltx to matlab-arrow-${version}.mltbx --- matlab/tools/packageMatlabInterface.m | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/matlab/tools/packageMatlabInterface.m b/matlab/tools/packageMatlabInterface.m index 3d970002614ab..1d67a75bf6e0f 100644 --- a/matlab/tools/packageMatlabInterface.m +++ b/matlab/tools/packageMatlabInterface.m @@ -29,15 +29,10 @@ disp("Output Folder: " + outputFolder); disp("Toolbox Version Raw: " + toolboxVersionRaw); - -% Note: This string processing heuristic may not be robust to future -% changes in the Arrow versioning scheme. -dotIdx = strfind(toolboxVersionRaw, "."); -numDots = numel(dotIdx); -if numDots >= 3 - toolboxVersion = extractBefore(toolboxVersionRaw, dotIdx(3)); -else - toolboxVersion = toolboxVersionRaw; +versionPattern = regexpPattern("[0-9]+.[0-9]+.[0-9]+"); +toolboxVersion = extract(toolboxVersionRaw, versionPattern); +if isempty(toolboxVersion) + error("Unable to extract MAJOR.MINOR.PATCH version string from " + toolboxVersionRaw); end disp("Toolbox Version:" + toolboxVersion); @@ -68,7 +63,7 @@ opts.MinimumMatlabRelease = currentRelease; opts.MaximumMatlabRelease = currentRelease; -opts.OutputFile = fullfile(outputFolder, compose("matlab-arrow-%s.mltbx", toolboxVersionRaw)); +opts.OutputFile = fullfile(outputFolder, compose("matlab-arrow-%s.mltbx", toolboxVersion)); disp("Output File: " + opts.OutputFile); matlab.addons.toolbox.packageToolbox(opts); From 79538df411a790fdbb0c1fb2af6b8b9507eb0328 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Tue, 16 Apr 2024 11:58:07 -0400 Subject: [PATCH 091/120] Use RELEASE_CANDIDATE_TAG_NAME variable --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6621958f0a6cb..11173dd2fc90b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,9 +58,8 @@ jobs: echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV} - name: Download Release Candidate Artifacts run: | - rc_tag=apache-arrow-${VERSION}-rc${RC_NUM} mkdir release_candidate_artifacts - gh release download ${rc_tag} --dir release_candidate_artifacts + gh release download ${RELEASE_CANDIDATE_TAG_NAME} --dir release_candidate_artifacts - name: Create Release Title run: | title="Apache Arrow ${VERSION}" From eda00f933caa5c0bebfddbff10d79814f8e38d46 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Wed, 17 Apr 2024 09:45:26 -0400 Subject: [PATCH 092/120] Update .github/workflows/release.yml Co-authored-by: Sutou Kouhei --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11173dd2fc90b..99536befd0dc7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,5 +75,4 @@ jobs: --verify-tag \ --title "${RELEASE_TITLE}" \ --notes "Release Notes: ${RELEASE_NOTES}" \ - release_candidate_artifacts/* - \ No newline at end of file + release_candidate_artifacts/* \ No newline at end of file From f8bccff8d3dd53abb3c88e4c931c9231e7a5258f Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Wed, 17 Apr 2024 09:46:34 -0400 Subject: [PATCH 093/120] Update matlab/tools/packageMatlabInterface.m Co-authored-by: Sutou Kouhei --- matlab/tools/packageMatlabInterface.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matlab/tools/packageMatlabInterface.m b/matlab/tools/packageMatlabInterface.m index 1d67a75bf6e0f..5d4ff0bff2905 100644 --- a/matlab/tools/packageMatlabInterface.m +++ b/matlab/tools/packageMatlabInterface.m @@ -29,7 +29,7 @@ disp("Output Folder: " + outputFolder); disp("Toolbox Version Raw: " + toolboxVersionRaw); -versionPattern = regexpPattern("[0-9]+.[0-9]+.[0-9]+"); +versionPattern = regexpPattern("^[0-9]+.[0-9]+.[0-9]+"); toolboxVersion = extract(toolboxVersionRaw, versionPattern); if isempty(toolboxVersion) error("Unable to extract MAJOR.MINOR.PATCH version string from " + toolboxVersionRaw); From 7fe01960b79cb7f90316c92f4ff923233c9631ca Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 17 Apr 2024 09:55:55 -0400 Subject: [PATCH 094/120] Escape dot in regex --- matlab/tools/packageMatlabInterface.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matlab/tools/packageMatlabInterface.m b/matlab/tools/packageMatlabInterface.m index 5d4ff0bff2905..5c82763b25f8a 100644 --- a/matlab/tools/packageMatlabInterface.m +++ b/matlab/tools/packageMatlabInterface.m @@ -29,7 +29,7 @@ disp("Output Folder: " + outputFolder); disp("Toolbox Version Raw: " + toolboxVersionRaw); -versionPattern = regexpPattern("^[0-9]+.[0-9]+.[0-9]+"); +versionPattern = regexpPattern("^[0-9]+\.[0-9]+\.[0-9]+"); toolboxVersion = extract(toolboxVersionRaw, versionPattern); if isempty(toolboxVersion) error("Unable to extract MAJOR.MINOR.PATCH version string from " + toolboxVersionRaw); From 7c0e74c6abc80139f1481021a6b9f57f9350df5b Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 17 Apr 2024 10:01:43 -0400 Subject: [PATCH 095/120] Move SOURCE_DOWLOAD variable definition betwee SOURCE_DEFAULT and SOURCE_RAT --- dev/release/02-source.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index d54ff99cfbb54..d91cc60bb15e8 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -21,11 +21,11 @@ set -eu : ${SOURCE_DEFAULT:=1} +: ${SOURCE_DOWNLOAD:=${SOURCE_DEFAULT}} : ${SOURCE_RAT:=${SOURCE_DEFAULT}} : ${SOURCE_UPLOAD:=${SOURCE_DEFAULT}} : ${SOURCE_PR:=${SOURCE_DEFAULT}} : ${SOURCE_VOTE:=${SOURCE_DEFAULT}} -: ${SOURCE_DOWNLOAD:=${SOURCE_DEFAULT}} SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)" From 984d1a0a0e59c09c29199071465c98cb0e64aafd Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 17 Apr 2024 10:02:44 -0400 Subject: [PATCH 096/120] 1. Renamed 08-matlab-upload.sh to 07-matlab-upload.sh. 2. Renamed 07-binary-verify.sh to 08-binary-verify.sh. --- dev/release/{08-matlab-upload.sh => 07-matlab-upload.sh} | 0 dev/release/{07-binary-verify.sh => 08-binary-verify.sh} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename dev/release/{08-matlab-upload.sh => 07-matlab-upload.sh} (100%) rename dev/release/{07-binary-verify.sh => 08-binary-verify.sh} (100%) diff --git a/dev/release/08-matlab-upload.sh b/dev/release/07-matlab-upload.sh similarity index 100% rename from dev/release/08-matlab-upload.sh rename to dev/release/07-matlab-upload.sh diff --git a/dev/release/07-binary-verify.sh b/dev/release/08-binary-verify.sh similarity index 100% rename from dev/release/07-binary-verify.sh rename to dev/release/08-binary-verify.sh From 820d108ddded2d416e0746267cce461c81ce65d3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Wed, 17 Apr 2024 10:11:31 -0400 Subject: [PATCH 097/120] Update release documentaion --- docs/source/developers/release.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 5f7dcb86f4b18..f5fb9744fab28 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -200,6 +200,8 @@ Build source and binaries and submit them .. code-block:: # Build the source release tarball and create Pull Request with verification tasks + # + # Note that you need to have GitHub CLI installed to run this script. dev/release/02-source.sh # Submit binary tasks using crossbow, the command will output the crossbow build id @@ -225,8 +227,13 @@ Build source and binaries and submit them # https://repository.apache.org/#stagingRepositories dev/release/06-java-upload.sh + # Sign and upload MATLAB artifacts to the GitHub Releases area. + # + # Note that you need to have GitHub CLI installed to run this script. + dev/release/07-matlab-upload.sh + # Start verifications for binaries and wheels - dev/release/07-binary-verify.sh + dev/release/08-binary-verify.sh Verify the Release ------------------ @@ -362,8 +369,6 @@ Be sure to go through on the following checklist: # dev/release/post-03-binary.sh 0.1.0 0 dev/release/post-03-binary.sh - Note: You must have GitHub CLI installed locally. - .. dropdown:: Update website :animate: fade-in-slide-down :class-title: sd-fs-5 From abdb2439788aa9e22186ae1a4925dd13e438bd1b Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Fri, 17 May 2024 10:14:39 -0400 Subject: [PATCH 098/120] Do not set GH_TOKEN env variable in RUn Release Test step --- .github/workflows/dev.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 878d5aeb5dcae..1ea12b0a4d23d 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -124,7 +124,6 @@ jobs: - name: Run Release Test env: ARROW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | ci/scripts/release_test.sh $(pwd) From 857d694b6d46a4d2bf3d90b106d106f002081ac8 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Fri, 17 May 2024 10:21:06 -0400 Subject: [PATCH 099/120] Remove step checking out arrow --- .github/workflows/release.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 99536befd0dc7..b19c32e2864e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,11 +35,7 @@ jobs: name: Publish runs-on: ubuntu-latest timeout-minutes: 5 - steps: - - name: Checkout Arrow - uses: actions/checkout@v4 - with: - fetch-depth: 0 + steps: - name: Get Tag Name of Latest Release Candidate run: | rc_tag=$(gh release list | \ From 58b1609ae21dda76ecc591661a8e9fc420642ca5 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Fri, 17 May 2024 10:25:17 -0400 Subject: [PATCH 100/120] Add comment to release documentation warning users to not run 02-source.sh until the Release GH Actions workflow is finished --- docs/source/developers/release.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index f5fb9744fab28..e2aed9711df81 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -201,7 +201,10 @@ Build source and binaries and submit them # Build the source release tarball and create Pull Request with verification tasks # - # Note that you need to have GitHub CLI installed to run this script. + # NOTE: Do not run this script until the "Release" GitHub Actions workflow - triggered by + # pushing the release candidate tag - has finished. + # + # NOTE: You need to have GitHub CLI installed to run this script. dev/release/02-source.sh # Submit binary tasks using crossbow, the command will output the crossbow build id From ca71d398909479cadb0dd836a13bc85a273d03d8 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Fri, 17 May 2024 10:46:36 -0400 Subject: [PATCH 101/120] Remove trailing whitespace. Add newline at end of file --- docs/source/developers/release.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index e2aed9711df81..72822e44972e7 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -201,7 +201,7 @@ Build source and binaries and submit them # Build the source release tarball and create Pull Request with verification tasks # - # NOTE: Do not run this script until the "Release" GitHub Actions workflow - triggered by + # NOTE: Do not run this script until the "Release" GitHub Actions workflow - triggered by # pushing the release candidate tag - has finished. # # NOTE: You need to have GitHub CLI installed to run this script. @@ -709,4 +709,4 @@ Be sure to go through on the following checklist: .. code-block:: Bash - dev/release/post-08-remove-old-artifacts.sh \ No newline at end of file + dev/release/post-08-remove-old-artifacts.sh From 1ba95834bf21b70774f390d49746cc2e1317b426 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Fri, 17 May 2024 12:00:53 -0400 Subject: [PATCH 102/120] Add --repo flag to gh commands --- .github/workflows/release.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b19c32e2864e5..4924ac3438ceb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Get Tag Name of Latest Release Candidate run: | - rc_tag=$(gh release list | \ + rc_tag=$(gh release list --repo apache/arrow | \ cut -f3 | \ grep -F "${GITHUB_REF_NAME}-rc" | \ head -n1) @@ -55,7 +55,7 @@ jobs: - name: Download Release Candidate Artifacts run: | mkdir release_candidate_artifacts - gh release download ${RELEASE_CANDIDATE_TAG_NAME} --dir release_candidate_artifacts + gh release download ${RELEASE_CANDIDATE_TAG_NAME} --repo apache/arrow --dir release_candidate_artifacts - name: Create Release Title run: | title="Apache Arrow ${VERSION}" @@ -68,6 +68,7 @@ jobs: - name: Create GitHub Release run: | gh release create ${GITHUB_REF_NAME} \ + --repo apache/arrow \ --verify-tag \ --title "${RELEASE_TITLE}" \ --notes "Release Notes: ${RELEASE_NOTES}" \ From 7469a1e1a908ddbca0e40dc7fe362d5a72ce89b0 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore <74676073+sgilmore10@users.noreply.github.com> Date: Mon, 20 May 2024 09:49:10 -0400 Subject: [PATCH 103/120] Update .github/workflows/release_candidate.yml Co-authored-by: Sutou Kouhei --- .github/workflows/release_candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index 3d5911609317b..ec732f0eb33e0 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -21,7 +21,7 @@ on: push: tags: # Trigger workflow when a tag whose name matches the pattern - #"apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. + # "apache-arrow-{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUM}" is pushed. - "apache-arrow-[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" permissions: From e7735dd119fd65de46cd98f73ac749d37695ff87 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 10:41:16 -0400 Subject: [PATCH 104/120] Bump post-* scripts numbers --- .../{post-05-ruby.sh => post-06-ruby.sh} | 0 dev/release/{post-06-js.sh => post-07-js.sh} | 0 .../{post-07-csharp.sh => post-08-csharp.sh} | 0 ...cts.sh => post-09-remove-old-artifacts.sh} | 0 .../{post-09-docs.sh => post-10-docs.sh} | 0 .../{post-10-python.sh => post-11-python.sh} | 0 dev/release/{post-11-go.sh => post-12-go.sh} | 0 ...p-versions.sh => post-13-bump-versions.sh} | 0 .../{post-13-mysys2.sh => post-14-mysys2.sh} | 0 ...ost-14-homebrew.sh => post-15-homebrew.sh} | 0 .../{post-15-vcpkg.sh => post-16-vcpkg.sh} | 0 .../{post-16-conan.sh => post-17-conan.sh} | 0 docs/source/developers/release.rst | 42 +++++++++---------- 13 files changed, 21 insertions(+), 21 deletions(-) rename dev/release/{post-05-ruby.sh => post-06-ruby.sh} (100%) rename dev/release/{post-06-js.sh => post-07-js.sh} (100%) rename dev/release/{post-07-csharp.sh => post-08-csharp.sh} (100%) rename dev/release/{post-08-remove-old-artifacts.sh => post-09-remove-old-artifacts.sh} (100%) rename dev/release/{post-09-docs.sh => post-10-docs.sh} (100%) rename dev/release/{post-10-python.sh => post-11-python.sh} (100%) rename dev/release/{post-11-go.sh => post-12-go.sh} (100%) rename dev/release/{post-12-bump-versions.sh => post-13-bump-versions.sh} (100%) rename dev/release/{post-13-mysys2.sh => post-14-mysys2.sh} (100%) rename dev/release/{post-14-homebrew.sh => post-15-homebrew.sh} (100%) rename dev/release/{post-15-vcpkg.sh => post-16-vcpkg.sh} (100%) rename dev/release/{post-16-conan.sh => post-17-conan.sh} (100%) diff --git a/dev/release/post-05-ruby.sh b/dev/release/post-06-ruby.sh similarity index 100% rename from dev/release/post-05-ruby.sh rename to dev/release/post-06-ruby.sh diff --git a/dev/release/post-06-js.sh b/dev/release/post-07-js.sh similarity index 100% rename from dev/release/post-06-js.sh rename to dev/release/post-07-js.sh diff --git a/dev/release/post-07-csharp.sh b/dev/release/post-08-csharp.sh similarity index 100% rename from dev/release/post-07-csharp.sh rename to dev/release/post-08-csharp.sh diff --git a/dev/release/post-08-remove-old-artifacts.sh b/dev/release/post-09-remove-old-artifacts.sh similarity index 100% rename from dev/release/post-08-remove-old-artifacts.sh rename to dev/release/post-09-remove-old-artifacts.sh diff --git a/dev/release/post-09-docs.sh b/dev/release/post-10-docs.sh similarity index 100% rename from dev/release/post-09-docs.sh rename to dev/release/post-10-docs.sh diff --git a/dev/release/post-10-python.sh b/dev/release/post-11-python.sh similarity index 100% rename from dev/release/post-10-python.sh rename to dev/release/post-11-python.sh diff --git a/dev/release/post-11-go.sh b/dev/release/post-12-go.sh similarity index 100% rename from dev/release/post-11-go.sh rename to dev/release/post-12-go.sh diff --git a/dev/release/post-12-bump-versions.sh b/dev/release/post-13-bump-versions.sh similarity index 100% rename from dev/release/post-12-bump-versions.sh rename to dev/release/post-13-bump-versions.sh diff --git a/dev/release/post-13-mysys2.sh b/dev/release/post-14-mysys2.sh similarity index 100% rename from dev/release/post-13-mysys2.sh rename to dev/release/post-14-mysys2.sh diff --git a/dev/release/post-14-homebrew.sh b/dev/release/post-15-homebrew.sh similarity index 100% rename from dev/release/post-14-homebrew.sh rename to dev/release/post-15-homebrew.sh diff --git a/dev/release/post-15-vcpkg.sh b/dev/release/post-16-vcpkg.sh similarity index 100% rename from dev/release/post-15-vcpkg.sh rename to dev/release/post-16-vcpkg.sh diff --git a/dev/release/post-16-conan.sh b/dev/release/post-17-conan.sh similarity index 100% rename from dev/release/post-16-conan.sh rename to dev/release/post-17-conan.sh diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 72822e44972e7..a684c33033650 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -418,8 +418,8 @@ Be sure to go through on the following checklist: git remote add git@github.com:/homebrew-core.git cd - - # dev/release/post-14-homebrew.sh 10.0.0 kou - dev/release/post-14-homebrew.sh X.Y.Z + # dev/release/post-15-homebrew.sh 10.0.0 kou + dev/release/post-15-homebrew.sh X.Y.Z This script pushes a ``apache-arrow-X.Y.Z`` branch to your ``Homebrew/homebrew-core`` fork. You need to create a pull request from the ``apache-arrow-X.Y.Z`` branch with ``apache-arrow, apache-arrow-glib: X.Y.Z`` title on your Web browser. @@ -469,8 +469,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-05-ruby.sh 10.0.0 - dev/release/post-05-ruby.sh X.Y.Z + # dev/release/post-06-ruby.sh 10.0.0 + dev/release/post-06-ruby.sh X.Y.Z .. dropdown:: Update JavaScript packages :animate: fade-in-slide-down @@ -488,8 +488,8 @@ Be sure to go through on the following checklist: # Login to npmjs.com (You need to do this only for the first time) npm login --registry=https://registry.yarnpkg.com/ - # dev/release/post-06-js.sh 10.0.0 - dev/release/post-06-js.sh X.Y.Z + # dev/release/post-07-js.sh 10.0.0 + dev/release/post-07-js.sh X.Y.Z .. dropdown:: Update C# packages :animate: fade-in-slide-down @@ -504,8 +504,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # NUGET_API_KEY=YOUR_NUGET_API_KEY dev/release/post-07-csharp.sh 10.0.0 - NUGET_API_KEY= dev/release/post-07-csharp.sh X.Y.Z + # NUGET_API_KEY=YOUR_NUGET_API_KEY dev/release/post-08-csharp.sh 10.0.0 + NUGET_API_KEY= dev/release/post-08-csharp.sh X.Y.Z .. dropdown:: Upload wheels/sdist to PyPI :animate: fade-in-slide-down @@ -518,8 +518,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-10-python.sh 10.0.0 - dev/release/post-10-python.sh + # dev/release/post-11-python.sh 10.0.0 + dev/release/post-11-python.sh .. dropdown:: Publish Maven packages :animate: fade-in-slide-down @@ -591,8 +591,8 @@ Be sure to go through on the following checklist: git remote add upstream https://github.com/microsoft/vcpkg.git cd - - # dev/release/post-15-vcpkg.sh 10.0.0 ../vcpkg - dev/release/post-15-vcpkg.sh X.Y.Z + # dev/release/post-16-vcpkg.sh 10.0.0 ../vcpkg + dev/release/post-16-vcpkg.sh X.Y.Z This script pushes a ``arrow-X.Y.Z`` branch to your ``microsoft/vcpkg`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch with ``[arrow] Update to X.Y.Z`` title on your Web browser. @@ -617,8 +617,8 @@ Be sure to go through on the following checklist: git remote add upstream https://github.com/conan-io/conan-center-index.git cd - - # dev/release/post-16-conan.sh 10.0.1 ../conan-center-index - dev/release/post-16-conan.sh X.Y.Z + # dev/release/post-17-conan.sh 10.0.1 ../conan-center-index + dev/release/post-17-conan.sh X.Y.Z This script pushes a ``arrow-X.Y.Z`` branch to your ``conan-io/conan-center-index`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch on your Web browser. @@ -632,8 +632,8 @@ Be sure to go through on the following checklist: # You can run the script with BUMP_TAG=0 and BUMP_PUSH=0 # this will avoid default pushing to main and pushing the tag # but you will require to push manually after reviewing the commits. - # dev/release/post-12-bump-versions.sh 10.0.0 11.0.0 - dev/release/post-12-bump-versions.sh X.Y.Z NEXT_X.NEXT_Y.NEXT_Z + # dev/release/post-13-bump-versions.sh 10.0.0 11.0.0 + dev/release/post-13-bump-versions.sh X.Y.Z NEXT_X.NEXT_Y.NEXT_Z .. dropdown:: Update tags for Go modules :animate: fade-in-slide-down @@ -642,8 +642,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-11-go.sh 10.0.0 - dev/release/post-11-go.sh X.Y.Z + # dev/release/post-12-go.sh 10.0.0 + dev/release/post-12-go.sh X.Y.Z .. dropdown:: Update docs :animate: fade-in-slide-down @@ -663,8 +663,8 @@ Be sure to go through on the following checklist: git remote add apache git@github.com:apache/arrow-site.git cd - - # dev/release/post-09-docs.sh 10.0.0 9.0.0 - dev/release/post-09-docs.sh X.Y.Z PREVIOUS_X.PREVIOUS_Y.PREVIOUS_Z + # dev/release/post-10-docs.sh 10.0.0 9.0.0 + dev/release/post-10-docs.sh X.Y.Z PREVIOUS_X.PREVIOUS_Y.PREVIOUS_Z This script pushes a ``release-docs-X.Y.Z`` branch to your ``arrow-site`` fork. You need to create a Pull Request and use the ``asf-site`` branch as base for it. @@ -709,4 +709,4 @@ Be sure to go through on the following checklist: .. code-block:: Bash - dev/release/post-08-remove-old-artifacts.sh + dev/release/post-09-remove-old-artifacts.sh From 29046f44856f4b4141e50c559f7f6f75b54f4f71 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 10:41:50 -0400 Subject: [PATCH 105/120] Make post-01-tag.sh executable --- dev/release/post-01-tag.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 dev/release/post-01-tag.sh diff --git a/dev/release/post-01-tag.sh b/dev/release/post-01-tag.sh old mode 100644 new mode 100755 From 0d043222fdc8823b5dc7b96cd36c31060033b525 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 10:59:25 -0400 Subject: [PATCH 106/120] Add script to watch gh workflows --- dev/release/utils-watch-gh-workflow.sh | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 dev/release/utils-watch-gh-workflow.sh diff --git a/dev/release/utils-watch-gh-workflow.sh b/dev/release/utils-watch-gh-workflow.sh new file mode 100755 index 0000000000000..8aa7505b555d9 --- /dev/null +++ b/dev/release/utils-watch-gh-workflow.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -e +set -o pipefail + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +REPOSITORY="mathworks/arrow" +TAG=$1 +WORKFLOW=$2 + +echo "Looking for GitHub Actions workflow on ${REPOSITORY}:${TAG}" +RUN_ID="" +while [[ -z "${RUN_ID}" ]] +do + echo "Waiting for run to start..." + RUN_ID=$(gh run list \ + --repo "${REPOSITORY}" \ + --workflow="${WORKFLOW}" \ + --json 'databaseId,event,headBranch,status' \ + --jq ".[] | select(.event == \"push\" and .headBranch == \"${TAG}\") | .databaseId") + sleep 1 + done + +echo "Found GitHub Actions workflow with ID: ${RUN_ID}" +gh run watch --repo "${REPOSITORY}" --exit-status ${RUN_ID} \ No newline at end of file From 3f718f939b97560d8710ce71e6f2e8752299a160 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 11:00:18 -0400 Subject: [PATCH 107/120] Add stencil script for for updating release notes --- dev/release/post-05-update-release-notes.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 dev/release/post-05-update-release-notes.sh diff --git a/dev/release/post-05-update-release-notes.sh b/dev/release/post-05-update-release-notes.sh new file mode 100755 index 0000000000000..12edfe3e2355f --- /dev/null +++ b/dev/release/post-05-update-release-notes.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. From 1955ba046058e77daa4d1ff72989b8f142f2ecc1 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 11:17:49 -0400 Subject: [PATCH 108/120] Update repo to apache/arrow --- dev/release/utils-watch-gh-workflow.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/utils-watch-gh-workflow.sh b/dev/release/utils-watch-gh-workflow.sh index 8aa7505b555d9..445f794feb3cf 100755 --- a/dev/release/utils-watch-gh-workflow.sh +++ b/dev/release/utils-watch-gh-workflow.sh @@ -25,7 +25,7 @@ if [ "$#" -ne 2 ]; then exit 1 fi -REPOSITORY="mathworks/arrow" +REPOSITORY="apache/arrow" TAG=$1 WORKFLOW=$2 From aadb889004a6e81048995a7e5744452321effa71 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 11:38:01 -0400 Subject: [PATCH 109/120] Implement post-05-update-release-notes.sh --- dev/release/post-05-update-release-notes.sh | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/dev/release/post-05-update-release-notes.sh b/dev/release/post-05-update-release-notes.sh index 12edfe3e2355f..ffd3f85ca0784 100755 --- a/dev/release/post-05-update-release-notes.sh +++ b/dev/release/post-05-update-release-notes.sh @@ -16,3 +16,27 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. + +set -e +set -o pipefail + +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +VERSION=$1 +REPOSITORY="apache/arrow" +TAG="apache-arrow-${VERSION}" +WORKFLOW="release.yml" + +# Wait for the GitHub Workflow that creates the GitHub Release +# to finish before updating the release notes. +. $SOURCE_DIR/utils-watch-gh-workflow.sh ${TAG} ${WORKFLOW} + +# Update the Release Notes section +RELEASE_NOTES_URL="https://arrow.apache.org/release/${VERSION}.html" +RELEASE_NOTES="Release Notes URL: ${RELEASE_NOTES_URL}" +gh release edit ${TAG} --repo ${REPOSITORY} --notes "{RELEASE_NOTES}" --verify-tag From 7dbcaf5c3ebb6cde2ea0516a957e48a139bf2186 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 13:25:43 -0400 Subject: [PATCH 110/120] reorder variable definitions --- dev/release/post-05-update-release-notes.sh | 2 +- dev/release/utils-watch-gh-workflow.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/release/post-05-update-release-notes.sh b/dev/release/post-05-update-release-notes.sh index ffd3f85ca0784..7a703690e85ed 100755 --- a/dev/release/post-05-update-release-notes.sh +++ b/dev/release/post-05-update-release-notes.sh @@ -25,12 +25,12 @@ if [ "$#" -ne 2 ]; then exit 1 fi -SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" VERSION=$1 REPOSITORY="apache/arrow" TAG="apache-arrow-${VERSION}" WORKFLOW="release.yml" +SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Wait for the GitHub Workflow that creates the GitHub Release # to finish before updating the release notes. diff --git a/dev/release/utils-watch-gh-workflow.sh b/dev/release/utils-watch-gh-workflow.sh index 445f794feb3cf..c0bab40df0d76 100755 --- a/dev/release/utils-watch-gh-workflow.sh +++ b/dev/release/utils-watch-gh-workflow.sh @@ -25,9 +25,9 @@ if [ "$#" -ne 2 ]; then exit 1 fi -REPOSITORY="apache/arrow" TAG=$1 WORKFLOW=$2 +REPOSITORY="apache/arrow" echo "Looking for GitHub Actions workflow on ${REPOSITORY}:${TAG}" RUN_ID="" From 619d70464e156e4ef41ef75cec23648a45e24757 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 13:31:52 -0400 Subject: [PATCH 111/120] Fix post-* numbering --- ...{post-13-bump-versions.sh => post-12-bump-versions.sh} | 0 dev/release/{post-12-go.sh => post-13-go.sh} | 0 docs/source/developers/release.rst | 8 ++++---- 3 files changed, 4 insertions(+), 4 deletions(-) rename dev/release/{post-13-bump-versions.sh => post-12-bump-versions.sh} (100%) rename dev/release/{post-12-go.sh => post-13-go.sh} (100%) diff --git a/dev/release/post-13-bump-versions.sh b/dev/release/post-12-bump-versions.sh similarity index 100% rename from dev/release/post-13-bump-versions.sh rename to dev/release/post-12-bump-versions.sh diff --git a/dev/release/post-12-go.sh b/dev/release/post-13-go.sh similarity index 100% rename from dev/release/post-12-go.sh rename to dev/release/post-13-go.sh diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index a684c33033650..63cd0ce0013a7 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -632,8 +632,8 @@ Be sure to go through on the following checklist: # You can run the script with BUMP_TAG=0 and BUMP_PUSH=0 # this will avoid default pushing to main and pushing the tag # but you will require to push manually after reviewing the commits. - # dev/release/post-13-bump-versions.sh 10.0.0 11.0.0 - dev/release/post-13-bump-versions.sh X.Y.Z NEXT_X.NEXT_Y.NEXT_Z + # dev/release/post-12-bump-versions.sh 10.0.0 11.0.0 + dev/release/post-12-bump-versions.sh X.Y.Z NEXT_X.NEXT_Y.NEXT_Z .. dropdown:: Update tags for Go modules :animate: fade-in-slide-down @@ -642,8 +642,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-12-go.sh 10.0.0 - dev/release/post-12-go.sh X.Y.Z + # dev/release/post-13-go.sh 10.0.0 + dev/release/post-13-go.sh X.Y.Z .. dropdown:: Update docs :animate: fade-in-slide-down From f454239b5e4ad4c6fda86c9f7af101402b87b5b1 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 13:38:50 -0400 Subject: [PATCH 112/120] Update release documentation for msys2 --- dev/release/{post-14-mysys2.sh => post-14-msys2.sh} | 0 docs/source/developers/release.rst | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename dev/release/{post-14-mysys2.sh => post-14-msys2.sh} (100%) diff --git a/dev/release/post-14-mysys2.sh b/dev/release/post-14-msys2.sh similarity index 100% rename from dev/release/post-14-mysys2.sh rename to dev/release/post-14-msys2.sh diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 63cd0ce0013a7..a55d9d6835d6b 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -444,8 +444,8 @@ Be sure to go through on the following checklist: git remote add upstream https://github.com/msys2/MINGW-packages.git cd - - # dev/release/post-13-msys2.sh 10.0.0 ../MINGW-packages - dev/release/post-13-msys2.sh X.Y.Z + # dev/release/post-14-msys2.sh 10.0.0 ../MINGW-packages + dev/release/post-14-msys2.sh X.Y.Z This script pushes a ``arrow-X.Y.Z`` branch to your ``msys2/MINGW-packages`` fork. You need to create a pull request from the ``arrow-X.Y.Z`` branch with ``arrow: Update to X.Y.Z`` title on your Web browser. From e159cc82049db2a82832964d1915b5dee350cf28 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 13:42:47 -0400 Subject: [PATCH 113/120] Added logic to 02-source.sh to wait for the gh workflow that generates the GitHub Release for the RC to finish before attempting to download the source tarball. --- dev/release/02-source.sh | 3 +++ docs/source/developers/release.rst | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index d91cc60bb15e8..70a40f0a4d00b 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -59,6 +59,9 @@ echo "Using commit $release_hash" tarball=apache-arrow-${version}.tar.gz if [ ${SOURCE_DOWNLOAD} -gt 0 ]; then + # Wait for the release candidate workflow to finish before attempting + # to download the tarball from the GitHub Release. + . $SOURCE_DIR/utils-watch-gh-workflow.sh ${tag} "release_candidate.yml" rm -f ${tarball} gh release download \ ${tag} \ diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index a55d9d6835d6b..bae49b757d2d5 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -201,9 +201,6 @@ Build source and binaries and submit them # Build the source release tarball and create Pull Request with verification tasks # - # NOTE: Do not run this script until the "Release" GitHub Actions workflow - triggered by - # pushing the release candidate tag - has finished. - # # NOTE: You need to have GitHub CLI installed to run this script. dev/release/02-source.sh From ae82f13345686d5930c73e0a11264f8a11aba6ea Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 13:55:07 -0400 Subject: [PATCH 114/120] Add step to documentation about updating release notes for the GitHub Release --- docs/source/developers/release.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index bae49b757d2d5..9441b8a0c61dc 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -394,6 +394,22 @@ Be sure to go through on the following checklist: This script pushes a ``release-note-X.Y.Z`` branch to your ``apache/arrow-site`` fork. You need to open a pull request from the ``release-note-X.Y.Z`` branch on your Web browser. +.. dropdown:: Update Release Notes for Release in apache/arrow's GitHub Releases area + :animate: fade-in-slide-down + :class-title: sd-fs-5 + :class-container: sd-shadow-md + + Update the release notes for the release artifact located in apache/arrow's GitHub Releases area. + + A committer must run the following script: + + .. code-block:: Bash + + # dev/release/post-05-update-release-notes.sh 17.0.0 + dev/release/post-04-website.sh apache-arrow-X.Y.Z + + This script updates the release notes in the GitHub Releases area to refer to the newly published release notes page. + .. dropdown:: Update Homebrew packages :animate: fade-in-slide-down :class-title: sd-fs-5 From b2dc8058e4d9f7389c38f8366a6c8f7cb8a408b0 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 14:24:19 -0400 Subject: [PATCH 115/120] Remove step creating release notes url in release workflow --- .github/workflows/release.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4924ac3438ceb..8d54979502430 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,16 +60,15 @@ jobs: run: | title="Apache Arrow ${VERSION}" echo "RELEASE_TITLE=${title}" >> ${GITHUB_ENV} - - name: Create Release Notes - run: | - release_notes="https://arrow.apache.org/release/${VERSION}.html" - echo "Release Notes URL: ${release_notes}" - echo "RELEASE_NOTES=${release_notes}" >> ${GITHUB_ENV} + # Set the release notes to "TODO" temporarily. After the release notes page + # (https://arrow.apache.org/release/{VERSION}.html) is published, use + # gh release edit to update the release notes to refer to the newly + # pushed web page. See dev/post/post-05-update-gh-release-notes.sh - name: Create GitHub Release run: | gh release create ${GITHUB_REF_NAME} \ --repo apache/arrow \ --verify-tag \ --title "${RELEASE_TITLE}" \ - --notes "Release Notes: ${RELEASE_NOTES}" \ + --notes "TODO" \ release_candidate_artifacts/* \ No newline at end of file From 53bf1ca5a01e96aaf30e2cb004a3d5d980434069 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 14:27:31 -0400 Subject: [PATCH 116/120] Rename dev/release/post-05-update-release-notes.sh to dev/release/post-05-update-gh-release-notes.sh --- ...e-release-notes.sh => post-05-update-gh-release-notes.sh} | 0 docs/source/developers/release.rst | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) rename dev/release/{post-05-update-release-notes.sh => post-05-update-gh-release-notes.sh} (100%) diff --git a/dev/release/post-05-update-release-notes.sh b/dev/release/post-05-update-gh-release-notes.sh similarity index 100% rename from dev/release/post-05-update-release-notes.sh rename to dev/release/post-05-update-gh-release-notes.sh diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 9441b8a0c61dc..522e7975769ee 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -268,6 +268,7 @@ Be sure to go through on the following checklist: #. Upload source #. Upload binaries #. Update website +#. Update GitHub Release Notes #. Update Homebrew packages #. Update MSYS2 package #. Upload RubyGems @@ -405,8 +406,8 @@ Be sure to go through on the following checklist: .. code-block:: Bash - # dev/release/post-05-update-release-notes.sh 17.0.0 - dev/release/post-04-website.sh apache-arrow-X.Y.Z + # dev/release/post-05-update-gh-release-notes.sh 17.0.0 + dev/release/post-05-update-gh-release-notes.sh apache-arrow-X.Y.Z This script updates the release notes in the GitHub Releases area to refer to the newly published release notes page. From 9afa28489fe2bd9a85e33237d92bb6e10266f7f7 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 14:39:39 -0400 Subject: [PATCH 117/120] delete trailing whitespace --- docs/source/developers/release.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 522e7975769ee..d6163ce4c425a 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -395,7 +395,7 @@ Be sure to go through on the following checklist: This script pushes a ``release-note-X.Y.Z`` branch to your ``apache/arrow-site`` fork. You need to open a pull request from the ``release-note-X.Y.Z`` branch on your Web browser. -.. dropdown:: Update Release Notes for Release in apache/arrow's GitHub Releases area +.. dropdown:: Update Release Notes for Release in apache/arrow's GitHub Releases area :animate: fade-in-slide-down :class-title: sd-fs-5 :class-container: sd-shadow-md @@ -405,11 +405,11 @@ Be sure to go through on the following checklist: A committer must run the following script: .. code-block:: Bash - + # dev/release/post-05-update-gh-release-notes.sh 17.0.0 dev/release/post-05-update-gh-release-notes.sh apache-arrow-X.Y.Z - This script updates the release notes in the GitHub Releases area to refer to the newly published release notes page. + This script updates the release notes in the GitHub Releases area to refer to the newly published release notes page. .. dropdown:: Update Homebrew packages :animate: fade-in-slide-down From b0a825d9711683445425fa657949c584683ad5e9 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 14:47:17 -0400 Subject: [PATCH 118/120] update release documentation --- docs/source/developers/release.rst | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index d6163ce4c425a..fae48e4d8e0f0 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -395,13 +395,11 @@ Be sure to go through on the following checklist: This script pushes a ``release-note-X.Y.Z`` branch to your ``apache/arrow-site`` fork. You need to open a pull request from the ``release-note-X.Y.Z`` branch on your Web browser. -.. dropdown:: Update Release Notes for Release in apache/arrow's GitHub Releases area +.. dropdown:: Update Release Notes in apache/arrow GitHub Release :animate: fade-in-slide-down :class-title: sd-fs-5 :class-container: sd-shadow-md - Update the release notes for the release artifact located in apache/arrow's GitHub Releases area. - A committer must run the following script: .. code-block:: Bash @@ -409,8 +407,6 @@ Be sure to go through on the following checklist: # dev/release/post-05-update-gh-release-notes.sh 17.0.0 dev/release/post-05-update-gh-release-notes.sh apache-arrow-X.Y.Z - This script updates the release notes in the GitHub Releases area to refer to the newly published release notes page. - .. dropdown:: Update Homebrew packages :animate: fade-in-slide-down :class-title: sd-fs-5 From 8d063c7cd9122b6cd7c314e4537c3bc200326be3 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Mon, 20 May 2024 15:34:54 -0400 Subject: [PATCH 119/120] Fix syntax errors in post-05-update-gh-release-notes.sh --- dev/release/post-05-update-gh-release-notes.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/release/post-05-update-gh-release-notes.sh b/dev/release/post-05-update-gh-release-notes.sh index 7a703690e85ed..e321c98721c17 100755 --- a/dev/release/post-05-update-gh-release-notes.sh +++ b/dev/release/post-05-update-gh-release-notes.sh @@ -20,7 +20,7 @@ set -e set -o pipefail -if [ "$#" -ne 2 ]; then +if [ "$#" -ne 1 ]; then echo "Usage: $0 " exit 1 fi @@ -39,4 +39,4 @@ SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Update the Release Notes section RELEASE_NOTES_URL="https://arrow.apache.org/release/${VERSION}.html" RELEASE_NOTES="Release Notes URL: ${RELEASE_NOTES_URL}" -gh release edit ${TAG} --repo ${REPOSITORY} --notes "{RELEASE_NOTES}" --verify-tag +gh release edit ${TAG} --repo ${REPOSITORY} --notes "${RELEASE_NOTES}" --verify-tag From 18268748e705541af60d99d15fee3c9cd31f0e04 Mon Sep 17 00:00:00 2001 From: Sarah Gilmore Date: Thu, 6 Jun 2024 09:28:13 -0400 Subject: [PATCH 120/120] Upload signed tarballs to GitHub Release --- dev/release/02-source.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh index 70a40f0a4d00b..b3eae212212ab 100755 --- a/dev/release/02-source.sh +++ b/dev/release/02-source.sh @@ -89,6 +89,9 @@ if [ ${SOURCE_UPLOAD} -gt 0 ]; then ${sha256_generate} $tarball > ${tarball}.sha256 ${sha512_generate} $tarball > ${tarball}.sha512 + # Upload signed tarballs to GitHub Release + gh release upload ${tag} ${tarball}.sha256 ${tarball}.sha512 + # check out the arrow RC folder svn co --depth=empty https://dist.apache.org/repos/dist/dev/arrow tmp