From 269b24ffa92cbe3e82bdf5061e0aad647a23f3f5 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 09:56:07 -0800 Subject: [PATCH 01/20] Remove references to Jira --- docs/source/developers/release.rst | 44 ++++++++---------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 52f4a751dcc81..0cede45e7dde9 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -36,8 +36,8 @@ Preparing for the release ========================= Before creating a source release, the Release Manager must ensure that any -resolved JIRAs have the appropriate Fix Version set so that the changelog is -generated properly. +resolved GitHub issues and any MINOR pull requests have the appropriate +milestone set so that the changelog is generated properly. .. dropdown:: Requirements :animate: fade-in-slide-down @@ -67,7 +67,8 @@ generated properly. Before creating a Release Candidate =================================== -Ensure local tags are removed, gpg-agent is set and JIRA tickets are correctly assigned. +Ensure local tags are removed, gpg-agent is set and GitHub issues and pull +requests are correctly assigned. .. code-block:: @@ -78,7 +79,8 @@ Ensure local tags are removed, gpg-agent is set and JIRA tickets are correctly a source dev/release/setup-gpg-agent.sh # Curate the release - # The end of the generated report shows the JIRA tickets with wrong version number assigned. + # The end of the generated report shows any GitHub issues with the wrong + # version number assigned. archery release curate Ensure a major version milestone for a follow up release is created on GitHub. This will @@ -149,7 +151,7 @@ Create or update the corresponding maintenance branch # This will create a branch locally called maint-X.Y.Z. # X.Y.Z corresponds with the Major, Minor and Patch version number # of the release respectively. As an example 9.0.0 - archery release --jira-cache /tmp/jiracache cherry-pick X.Y.Z --execute + archery release cherry-pick X.Y.Z --execute # Push the maintenance branch to the remote repository git push -u apache maint-X.Y.Z @@ -158,11 +160,11 @@ Create or update the corresponding maintenance branch .. code-block:: # First run in dry-mode to see which commits will be cherry-picked. - # If there are commits that we don't want to get applied ensure the version on - # JIRA is set to the following release. - archery release --jira-cache /tmp/jiracache cherry-pick X.Y.Z --continue + # If there are commits that we don't want to get applied, ensure the + # milestone on GitHub is set to the following release. + archery release cherry-pick X.Y.Z --continue # Update the maintenance branch with the previous commits - archery release --jira-cache /tmp/jiracache cherry-pick X.Y.Z --continue --execute + archery release cherry-pick X.Y.Z --continue --execute # Push the updated maintenance branch to the remote repository git push -u apache maint-X.Y.Z @@ -246,8 +248,6 @@ After the release vote, we must undertake many tasks to update source artifacts, Be sure to go through on the following checklist: #. Update the released milestone Date and set to "Closed" on GitHub -#. Make the CPP PARQUET related version as "RELEASED" on JIRA -#. 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 @@ -274,28 +274,6 @@ Be sure to go through on the following checklist: #. Announce the release on Twitter #. Remove old artifacts -.. dropdown:: Mark the released version as "RELEASED" on JIRA - :animate: fade-in-slide-down - :class-title: sd-fs-5 - :class-container: sd-shadow-md - - - Open https://issues.apache.org/jira/plugins/servlet/project-config/ARROW/administer-versions - - Click "..." for the release version in "Actions" column - - Select "Release" - - Set "Release date" - - Click "Release" button - -.. dropdown:: Start the new version on JIRA - :animate: fade-in-slide-down - :class-title: sd-fs-5 - :class-container: sd-shadow-md - - - Open https://issues.apache.org/jira/plugins/servlet/project-config/ARROW/administer-versions - - Click "..." for the next version in "Actions" column - - Select "Edit" - - Set "Start date" - - Click "Save" button - .. dropdown:: Merge changes on release branch to maintenance branch for patch releases :animate: fade-in-slide-down :class-title: sd-fs-5 From 177d9ed83315806192cf28d6258a834d7249ad61 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 09:58:47 -0800 Subject: [PATCH 02/20] Fix typo (missing -) in example branch name --- 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 0cede45e7dde9..a6ff264bb9a26 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -185,7 +185,7 @@ Create the Release Candidate branch from the updated maintenance branch dev/release/01-prepare.sh # Push the release candidate tag - git push -u apache apache-arrow-rc + 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 28da5b8568256d84b522b005404de94bb71e9db6 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 10:02:10 -0800 Subject: [PATCH 03/20] Replace confusing word choice --- 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 a6ff264bb9a26..604efd72fe5ed 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -180,7 +180,7 @@ Create the Release Candidate branch from the updated maintenance branch # place the necessary commits updating the version number and then create a git tag # on OSX use gnu-sed with homebrew: brew install gnu-sed (and export to $PATH) # - # starts at 0 and increments every time the Release Candidate is burned + # starts at 0 and increments every time the Release Candidate is created # 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 From 112ff1f5f5c2a6db34b35c5362d0a40bb3b56859 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 10:20:57 -0800 Subject: [PATCH 04/20] Add note about 02-source requiring signing rights --- docs/source/developers/release.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 604efd72fe5ed..5213b0b93ab1c 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -197,6 +197,7 @@ Build source and binaries and submit them # Build the source release tarball and create Pull Request with verification tasks # # NOTE: You need to have GitHub CLI installed to run this script. + # NOTE: This must be run by a PMC member (someone in the KEYS file) dev/release/02-source.sh # Submit binary tasks using crossbow, the command will output the crossbow build id From 2ee30dc267a8eb9c95cffa4fc2b03a7ed8622130 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 10:21:07 -0800 Subject: [PATCH 05/20] Add note about pre-testing RCs with dummy PRs --- 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 5213b0b93ab1c..ebf3417098abd 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -168,6 +168,22 @@ Create or update the corresponding maintenance branch # Push the updated maintenance branch to the remote repository git push -u apache maint-X.Y.Z +Optional: Test Before Creating a Release Candidate +--------------------------------------------- + +Some release managers prefer to perform testing before creating the first +release candidate to avoid the need to create multiple release candidates within +a given release. + +To test before creating a release candiate: + +* Create a pull request from the up-to-date maint-X.Y.Z branch onto main +* Title the pull request "WIP: Dummy PR to check maint-X.Y.Z status" +* Comment on the pull request to trigger the relevant Crossbow jobs: + + * ``@github-actions crossbow submit --group verify-rc-source`` + * ``@github-actions crossbow submit --group packaging`` + Create the Release Candidate branch from the updated maintenance branch ----------------------------------------------------------------------- From 6ffdc8a738c5ecae43c3774fc45477a39cf48fd1 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:13:31 -0800 Subject: [PATCH 06/20] Add note to top of doc about privileges --- 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 ebf3417098abd..8c776b207a372 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -24,7 +24,10 @@ Release Management Guide This page provides detailed information on the steps followed to perform a release. It can be used both as a guide to learn the Apache Arrow release process and as a comprehensive checklist for the Release Manager when -performing a release. +performing a release. The person acting as Release Manager must at least have +committer status in order to perform the tasks below. If the Release Manager is +a committer but not a member of the PMC, some tasks will need to be delegated +to a PMC member and these are marked below accordingly. Principles ========== From d30939cde0041bf89b7f0da43f22fa021ae46519 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:20:57 -0800 Subject: [PATCH 07/20] Add notes about steps that require PMC --- docs/source/developers/release.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 8c776b207a372..240845e711604 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -215,8 +215,8 @@ Build source and binaries and submit them # Build the source release tarball and create Pull Request with verification tasks # + # NOTE: This must be run a PMC member # NOTE: You need to have GitHub CLI installed to run this script. - # NOTE: This must be run by a PMC member (someone in the KEYS file) dev/release/02-source.sh # Submit binary tasks using crossbow, the command will output the crossbow build id @@ -231,13 +231,17 @@ Build source and binaries and submit them # Sign and upload the binaries # + # NOTE: This must be run by a PMC member + # # On macOS the only way I could get this to work was running "echo "UPDATESTARTUPTTY" | gpg-connect-agent" before running this comment # otherwise I got errors referencing "ioctl" errors. + dev/release/05-binary-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. + # NOTE: This must be run by a PMC member + # NOTE: You need to have GitHub CLI installed to run this script. dev/release/06-matlab-upload.sh # Start verifications for binaries and wheels From a189f046ba291be59153d007121ae483e8653af2 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:24:14 -0800 Subject: [PATCH 08/20] Remove note about Go modules Go is now managed in the separate arrow-go repo so its tag management is no longer done on the monorepo --- 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 240845e711604..facd52fd93618 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -290,7 +290,6 @@ Be sure to go through on the following checklist: #. Update vcpkg port #. Update Conan recipe #. Bump versions -#. Update tags for Go modules #. Update docs #. Update version in Apache Arrow Cookbook #. Announce the new release From 88eb20ab93da9cedbf28f3f46c48ec310fde1fd3 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:25:47 -0800 Subject: [PATCH 09/20] Update typos on conan post-release task --- 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 facd52fd93618..db159404ca53e 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -589,7 +589,7 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md - Open a pull request to vcpkg: + Open a pull request to Conan: .. code-block:: Bash @@ -605,8 +605,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-17-conan.sh 10.0.1 ../conan-center-index - dev/release/post-17-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. From b8721fc23f90f875bba90df583ad1279a56489a7 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:27:50 -0800 Subject: [PATCH 10/20] Editing --- 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 db159404ca53e..6587777039bbe 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -628,7 +628,8 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md - The documentations are generated in the release process. We just need to upload the generated documentations: + Documentation is generated as part of the release process. We just need to + upload the generated documentation: .. code-block:: Bash From 2eaa4db9cc6015aff432af61d33f8b80a9d2413c Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:34:38 -0800 Subject: [PATCH 11/20] Fill in details about updating cookbooks --- 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 6587777039bbe..1a5cf360917df 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -652,7 +652,8 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md - TODO + Follow `the documentation `_ + in the Apache Arrow Cookbook repository .. dropdown:: Announce the new release :animate: fade-in-slide-down From 1ae91d0d80e22914596aad7778be9230b7938d6c Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:44:34 -0800 Subject: [PATCH 12/20] Add steps for the release blog post --- docs/source/developers/release.rst | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 1a5cf360917df..deb1ed005d8e5 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -669,7 +669,25 @@ Be sure to go through on the following checklist: :class-title: sd-fs-5 :class-container: sd-shadow-md - TODO + The blog post process isn't automated. The rough set of steps we usually take + are: + + * Clone https://github.com/apache/arrow-site. + * Create a new branch off ``main`` for the blog post pull request we're + creating. + * Duplicate a recent blog post entry in the ``_posts`` subfolder and update + the filename and YAML metadata. + + * Set the date in the filename and in the YAML metadata to the date that the + release candidate vote thread for the release closed. + + * *For minor releases only*, remove any section about community updates (new + committers, PMC members, etc). + * Update the remainder of the text as needed + * Create the pull request + * In the pull request, ping contributors in each section requesting help + filling in the details for each section. + .. dropdown:: Announce the release on Twitter :animate: fade-in-slide-down From b8928037b53d8cb6af8cf6b9bd4e5eabd1fcf8ea Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:51:07 -0800 Subject: [PATCH 13/20] GMT --- 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 deb1ed005d8e5..477c6e313a54c 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -679,7 +679,7 @@ Be sure to go through on the following checklist: the filename and YAML metadata. * Set the date in the filename and in the YAML metadata to the date that the - release candidate vote thread for the release closed. + release candidate vote thread for the release closed (in GMT). * *For minor releases only*, remove any section about community updates (new committers, PMC members, etc). From c5bcd05746216dc1ffde2476440b3cbaa8cab82a Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:51:14 -0800 Subject: [PATCH 14/20] Update Twitter section --- docs/source/developers/release.rst | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 477c6e313a54c..6713c8324ece7 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -689,14 +689,18 @@ Be sure to go through on the following checklist: filling in the details for each section. -.. dropdown:: Announce the release on Twitter +.. dropdown:: Announce the release on social media :animate: fade-in-slide-down :class-title: sd-fs-5 :class-container: sd-shadow-md - Post the release blog post on Twitter from the `@ApacheArrow `_ handle. + Post about the release and link to the blog post on social media. The project + has two official accounts: - PMC members have access or can request access, after which they can post via `TweetDeck `_. + * Twitter/X: `@ApacheArrow `_ + * LinkedIn: https://www.linkedin.com/company/apache-arrow/ + + PMC members have access or can request access to post under these accounts. .. dropdown:: Remove old artifacts :animate: fade-in-slide-down From cd94d813868d565c52aeb9ba41a1580b7219120b Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 11:52:33 -0800 Subject: [PATCH 15/20] Add note about step requiring PMC --- docs/source/developers/release.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 6713c8324ece7..06bc50af7c98e 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -712,3 +712,5 @@ Be sure to go through on the following checklist: .. code-block:: Bash dev/release/post-09-remove-old-artifacts.sh + + Note: This step must be done by a PMC member. From 7708605ade638a9c8128041832fc6cfc8e9dbb2e Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 31 Dec 2024 12:00:23 -0800 Subject: [PATCH 16/20] Update docs/source/developers/release.rst --- 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 06bc50af7c98e..d3967d0bc6253 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -235,7 +235,6 @@ Build source and binaries and submit them # # On macOS the only way I could get this to work was running "echo "UPDATESTARTUPTTY" | gpg-connect-agent" before running this comment # otherwise I got errors referencing "ioctl" errors. - dev/release/05-binary-upload.sh # Sign and upload MATLAB artifacts to the GitHub Releases area. From cc616d7deceb63d0b7e819d6c9e2a95906cd47ce Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Wed, 1 Jan 2025 09:55:01 -0800 Subject: [PATCH 17/20] 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 d3967d0bc6253..a0024189ed0b2 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -172,7 +172,7 @@ Create or update the corresponding maintenance branch git push -u apache maint-X.Y.Z Optional: Test Before Creating a Release Candidate ---------------------------------------------- +-------------------------------------------------- Some release managers prefer to perform testing before creating the first release candidate to avoid the need to create multiple release candidates within From 0072847d13942f0df0fe78cd1d700042cbc25b36 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Wed, 1 Jan 2025 09:55:07 -0800 Subject: [PATCH 18/20] 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 a0024189ed0b2..576d599f02207 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -215,7 +215,7 @@ Build source and binaries and submit them # Build the source release tarball and create Pull Request with verification tasks # - # NOTE: This must be run a PMC member + # NOTE: This must be run by a PMC member # NOTE: You need to have GitHub CLI installed to run this script. dev/release/02-source.sh From d8cff77223db4a5881e6fb6301311aed3e6fcbde Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 7 Jan 2025 10:54:51 -0800 Subject: [PATCH 19/20] Update language about cherry-picking and minor prs See discussion at https://github.com/apache/arrow/pull/45141#discussion_r1900316147 --- docs/source/developers/release.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/source/developers/release.rst b/docs/source/developers/release.rst index 576d599f02207..b45496e9ccb15 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -39,8 +39,15 @@ Preparing for the release ========================= Before creating a source release, the Release Manager must ensure that any -resolved GitHub issues and any MINOR pull requests have the appropriate -milestone set so that the changelog is generated properly. +resolved GitHub issues have the appropriate milestone set so that the changelog +is generated properly. + +Note that pull requests without a corresponding GitHub issue won't be detected +by the cherry-pick script and must be cherry-picked manually by the release +manager onto the maintenance branch. Examples include MINOR and Dependabot pull +requests. For this reason, it's encouraged to avoid the need for manual +cherry-picking by creating issues for any pull requests that are merged to the +default branch after the release maintenance branch has been created. .. dropdown:: Requirements :animate: fade-in-slide-down From bd3cfd190fe72d69ee48ba3ef8e8c5ddd41b15f1 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Tue, 7 Jan 2025 10:56:06 -0800 Subject: [PATCH 20/20] Respond to review Ref https://github.com/apache/arrow/pull/45141#discussion_r1901680592 --- 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 b45496e9ccb15..605a1adbe10d7 100644 --- a/docs/source/developers/release.rst +++ b/docs/source/developers/release.rst @@ -77,8 +77,8 @@ default branch after the release maintenance branch has been created. Before creating a Release Candidate =================================== -Ensure local tags are removed, gpg-agent is set and GitHub issues and pull -requests are correctly assigned. +Ensure local tags are removed, gpg-agent is set and GitHub issues are correctly +assigned. .. code-block::