Files
arrow/dev/release/03-binary-submit.sh
Raúl Cumplidoandtadeja 4070a2fb98 GH-50811: [Release] Use maint-Major.Minor.x for patch releases as the maintenance branch on required release scripts (#50813)
### Rationale for this change

When working with patch releases currently the maintenance branch used is not correct and the scripts for 02-source and 03-binary fail to create the PR or find it.

### What changes are included in this PR?

Use the correct maintenance branch format taking into account the differences between major releases and patch releases.
Updated release documentation to make it clearer that only the `maint-X.Y.x` branch is used for patch releases.

### Are these changes tested?

Yes, as I had to cut RC1 for the 25.0.1 release I've been able to validate that they work as expected now.

### Are there any user-facing changes?

No

* GitHub Issue: #50811

Lead-authored-by: Raúl Cumplido <raulcumplido@gmail.com>
Co-authored-by: tadeja <tadeja@users.noreply.github.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
2026-08-06 09:50:58 +02:00

73 lines
2.4 KiB
Bash
Executable File

#!/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 -eu
SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <version> <rc-num>"
exit
fi
. "${SOURCE_DIR}/utils-env.sh"
version=$1
rc=$2
version_with_rc="${version}-rc${rc}"
crossbow_job_prefix="release-${version_with_rc}"
release_tag="apache-arrow-${version}-rc${rc}"
rc_branch="release-${version_with_rc}"
patch_version=$(echo ${version} | cut -d. -f3)
if [ "${patch_version}" -eq 0 ]; then
maint_branch="maint-${version}"
else
# Patch releases use the maint-Major.Minor.x branch.
major_minor_version=$(echo ${version} | cut -d. -f1-2)
maint_branch="maint-${major_minor_version}.x"
fi
: ${ARROW_REPOSITORY:="apache/arrow"}
: ${ARROW_BRANCH:=${release_tag}}
: ${ARROW_SHA:=${release_tag}}
# archery will submit a job with id: "${crossbow_job_prefix}-0" unless there
# are jobs submitted with the same prefix (the integer at the end is auto
# incremented)
archery crossbow submit \
--no-fetch \
--job-prefix ${crossbow_job_prefix} \
--arrow-version ${version_with_rc} \
--arrow-remote "https://github.com/${ARROW_REPOSITORY}" \
--arrow-branch ${ARROW_BRANCH} \
--arrow-sha ${ARROW_SHA} \
--group packaging
# archery will add a comment to the automatically generated PR to track
# the submitted jobs
job_name=$(archery crossbow latest-prefix --no-fetch ${crossbow_job_prefix})
archery crossbow report-pr \
--no-fetch \
--arrow-remote "https://github.com/${ARROW_REPOSITORY}" \
--base-branch ${maint_branch} \
--head-branch ${rc_branch} \
--job-name ${job_name} \
--pr-title "WIP: [Release] Verify ${rc_branch}"