From 48c3f1201b3fbfc38b15204ed48ba8bd06253610 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 19 Feb 2026 09:00:40 -0800 Subject: [PATCH 1/8] add workflow --- .../workflows/verify-release-candidate.yml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/verify-release-candidate.yml diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml new file mode 100644 index 000000000..8ae5e3b21 --- /dev/null +++ b/.github/workflows/verify-release-candidate.yml @@ -0,0 +1,61 @@ +# 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: Verify Release Candidate + +on: + workflow_dispatch: + inputs: + version: + description: Version number (e.g., 52.0.0) + required: true + type: string + rc_number: + description: Release candidate number (e.g., 0) + required: true + type: string + +concurrency: + group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + verify: + name: Verify RC (${{ matrix.runner }}) + strategy: + fail-fast: false + matrix: + include: + # Linux + - runner: ubuntu-22.04 + - runner: ubuntu-24.04 + - runner: ubuntu-24.04-arm + + # macOS + - runner: macos-13 + - runner: macos-14 + + # Windows (disabled for now) + # - runner: windows-latest + runs-on: ${{ matrix.runner }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run release candidate verification + shell: bash + run: ./dev/release/verify-release-candidate.sh "${{ inputs.version }}" "${{ inputs.rc_number }}" \ No newline at end of file From e7233bd73f0bbd51f1cc4bb7df858653586e06e8 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 19 Feb 2026 09:19:36 -0800 Subject: [PATCH 2/8] add protoc --- .github/workflows/verify-release-candidate.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml index 8ae5e3b21..c288211ce 100644 --- a/.github/workflows/verify-release-candidate.yml +++ b/.github/workflows/verify-release-candidate.yml @@ -56,6 +56,9 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Set up protoc + uses: arduino/setup-protoc@v3 + - name: Run release candidate verification shell: bash run: ./dev/release/verify-release-candidate.sh "${{ inputs.version }}" "${{ inputs.rc_number }}" \ No newline at end of file From ac57034994e5b3bf4e41e644a3ed7071c74b1fc7 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 19 Feb 2026 09:23:46 -0800 Subject: [PATCH 3/8] update coverage --- .../workflows/verify-release-candidate.yml | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml index c288211ce..b8c0883b4 100644 --- a/.github/workflows/verify-release-candidate.yml +++ b/.github/workflows/verify-release-candidate.yml @@ -35,22 +35,31 @@ concurrency: jobs: verify: - name: Verify RC (${{ matrix.runner }}) + name: Verify RC (${{ matrix.os }}-${{ matrix.arch }}) strategy: fail-fast: false matrix: include: # Linux - - runner: ubuntu-22.04 - - runner: ubuntu-24.04 - - runner: ubuntu-24.04-arm + - os: linux + arch: x64 + runner: ubuntu-latest + - os: linux + arch: arm64 + runner: ubuntu-24.04-arm # macOS - - runner: macos-13 - - runner: macos-14 + - os: macos + arch: arm64 + runner: macos-latest + - os: macos + arch: x64 + runner: macos-15-intel # Windows (disabled for now) - # - runner: windows-latest + # - os: windows + # arch: x64 + # runner: windows-latest runs-on: ${{ matrix.runner }} steps: - name: Checkout repository From e140495b26d1e5bf4fbe5bfd2c3210202b44f2e0 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 19 Feb 2026 09:26:26 -0800 Subject: [PATCH 4/8] upgrade --- .github/workflows/verify-release-candidate.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml index b8c0883b4..cff5ca1e7 100644 --- a/.github/workflows/verify-release-candidate.yml +++ b/.github/workflows/verify-release-candidate.yml @@ -63,10 +63,13 @@ jobs: runs-on: ${{ matrix.runner }} steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up protoc uses: arduino/setup-protoc@v3 + with: + version: "27.4" + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Run release candidate verification shell: bash From d191afec742b1ab76259c78907caca03ec5ac3c2 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Fri, 20 Feb 2026 07:53:38 -0800 Subject: [PATCH 5/8] newline --- .github/workflows/verify-release-candidate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml index cff5ca1e7..75331bbee 100644 --- a/.github/workflows/verify-release-candidate.yml +++ b/.github/workflows/verify-release-candidate.yml @@ -73,4 +73,4 @@ jobs: - name: Run release candidate verification shell: bash - run: ./dev/release/verify-release-candidate.sh "${{ inputs.version }}" "${{ inputs.rc_number }}" \ No newline at end of file + run: ./dev/release/verify-release-candidate.sh "${{ inputs.version }}" "${{ inputs.rc_number }}" From 951eac6806fa48ecaa8b5d110563a99dbac343eb Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Fri, 20 Feb 2026 07:55:33 -0800 Subject: [PATCH 6/8] add a note about manual trigger --- .github/workflows/verify-release-candidate.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml index 75331bbee..a7293b369 100644 --- a/.github/workflows/verify-release-candidate.yml +++ b/.github/workflows/verify-release-candidate.yml @@ -17,6 +17,8 @@ name: Verify Release Candidate +# NOTE: This workflow is intended to be run manually via workflow_dispatch. + on: workflow_dispatch: inputs: From 8d3ae9624a48e165b7f76127c3aea8b5d53e9742 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Fri, 20 Feb 2026 07:55:46 -0800 Subject: [PATCH 7/8] add a section to release about manually running the matrix --- dev/release/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dev/release/README.md b/dev/release/README.md index 5d2fae5a7..9fee110a1 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -154,6 +154,17 @@ This will create a file named `dist/datafusion-0.7.0.tar.gz`. Upload this to tes python3 -m twine upload --repository testpypi dist/datafusion-0.7.0.tar.gz ``` +### Run Verify Release Candidate Workflow + +Before sending the vote email, run the manually triggered GitHub Actions workflow +"Verify Release Candidate" and confirm all matrix jobs pass: + +1. Go to https://github.com/apache/datafusion-python/actions/workflows/verify-release-candidate.yml +2. Click "Run workflow" +3. Set `version` to the release version (for example, `52.0.0`) +4. Set `rc_number` to the RC number (for example, `0`) +5. Wait for all jobs to complete successfully + ### Send the Email Send the email to start the vote. From 75ce1280b98c33c51aec4249aa19abdfa12b24b7 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Fri, 20 Feb 2026 08:01:28 -0800 Subject: [PATCH 8/8] more details --- dev/release/README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dev/release/README.md b/dev/release/README.md index 9fee110a1..5b70b80f4 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -157,7 +157,8 @@ python3 -m twine upload --repository testpypi dist/datafusion-0.7.0.tar.gz ### Run Verify Release Candidate Workflow Before sending the vote email, run the manually triggered GitHub Actions workflow -"Verify Release Candidate" and confirm all matrix jobs pass: +"Verify Release Candidate" and confirm all matrix jobs pass across the OS/architecture matrix +(for example, Linux and macOS runners): 1. Go to https://github.com/apache/datafusion-python/actions/workflows/verify-release-candidate.yml 2. Click "Run workflow" @@ -165,6 +166,13 @@ Before sending the vote email, run the manually triggered GitHub Actions workflo 4. Set `rc_number` to the RC number (for example, `0`) 5. Wait for all jobs to complete successfully +Include a short note in the vote email template that this workflow was run across all OS/architecture +matrix entries and that all jobs passed. + +```text +Verification note: The manually triggered "Verify Release Candidate" workflow was run for version and rc_number across all configured OS/architecture matrix entries, and all matrix jobs completed successfully. +``` + ### Send the Email Send the email to start the vote.