Skip to content

Commit

Permalink
chore(dev/release): decouple version numbers
Browse files Browse the repository at this point in the history
  • Loading branch information
lidavidm committed Apr 25, 2024
1 parent 5773d93 commit 5399217
Show file tree
Hide file tree
Showing 17 changed files with 359 additions and 289 deletions.
32 changes: 22 additions & 10 deletions .github/workflows/packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,14 @@ jobs:
- name: Extract source archive
run: |
tar xf apache-arrow-adbc-${{ steps.info.outputs.VERSION }}.tar.gz
source ./apache-arrow-adbc-${{ steps.info.outputs.VERSION }}/dev/release/versions.env
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }} adbc
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }}.tar.gz adbc/ci/linux-packages/
# Need to align the file path with the version number (and not the release)
cp -r adbc apache-arrow-adbc-${VERSION_NATIVE}
tar czf adbc/ci/linux-packages/apache-arrow-adbc-${VERSION_NATIVE}.tar.gz apache-arrow-adbc-${VERSION_NATIVE}
echo "VERSION=${VERSION_NATIVE}" | tee -a $GITHUB_ENV
- name: Set up Ruby
uses: ruby/setup-ruby@v1
Expand Down Expand Up @@ -527,7 +533,8 @@ jobs:
strategy:
fail-fast: false
matrix:
arch: ["amd64", "arm64v8"]
# XXX(lidavidm): disable arm64 build for now while I test things
arch: ["amd64"]
manylinux_version: ["2014"]
is_pr:
- ${{ startsWith(github.ref, 'refs/pull/') }}
Expand All @@ -546,12 +553,13 @@ jobs:
source_archive=$(echo apache-arrow-adbc-*.tar.gz)
VERSION=${source_archive#apache-arrow-adbc-}
VERSION=${VERSION%.tar.gz}
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
tar xf apache-arrow-adbc-${VERSION}.tar.gz
mv apache-arrow-adbc-${VERSION} adbc
source adbc/dev/release/versions.env
echo "VERSION=${VERSION_NATIVE}" | tee -a $GITHUB_ENV
- name: Show inputs
run: |
echo "upload_artifacts: ${{ github.event.inputs.upload_artifacts }}" >> $GITHUB_STEP_SUMMARY
Expand Down Expand Up @@ -654,12 +662,14 @@ jobs:
source_archive=$(echo apache-arrow-adbc-*.tar.gz)
VERSION=${source_archive#apache-arrow-adbc-}
VERSION=${VERSION%.tar.gz}
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo "SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION}" >> $GITHUB_ENV
tar xf apache-arrow-adbc-${VERSION}.tar.gz
mv apache-arrow-adbc-${VERSION} adbc
source adbc/dev/release/versions.env
echo "VERSION=${VERSION_NATIVE}" | tee -a $GITHUB_ENV
echo "SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION_NATIVE}" | tee -a $GITHUB_ENV
- name: Show inputs
run: |
echo "upload_artifacts: ${{ github.event.inputs.upload_artifacts }}" >> $GITHUB_STEP_SUMMARY
Expand Down Expand Up @@ -805,12 +815,13 @@ jobs:
source_archive=$(echo apache-arrow-adbc-*.tar.gz)
VERSION=${source_archive#apache-arrow-adbc-}
VERSION=${VERSION%.tar.gz}
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
tar xf apache-arrow-adbc-${VERSION}.tar.gz
mv apache-arrow-adbc-${VERSION} adbc
source adbc/dev/release/versions.env
echo "VERSION=${VERSION_NATIVE}" | tee -a $GITHUB_ENV
(. adbc/.env && echo "GO_VERSION=${GO}") >> $GITHUB_ENV
- name: Show inputs
Expand Down Expand Up @@ -903,12 +914,13 @@ jobs:
source_archive=$(echo apache-arrow-adbc-*.tar.gz)
VERSION=${source_archive#apache-arrow-adbc-}
VERSION=${VERSION%.tar.gz}
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
tar xf apache-arrow-adbc-${VERSION}.tar.gz
mv apache-arrow-adbc-${VERSION} adbc
source adbc/dev/release/versions.env
echo "VERSION=${VERSION_NATIVE}" | tee -a $GITHUB_ENV
- name: Show inputs
run: |
echo "upload_artifacts: ${{ github.event.inputs.upload_artifacts }}"
Expand Down
89 changes: 45 additions & 44 deletions dev/release/01-prepare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,60 +20,61 @@
set -ue

SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "$SOURCE_DIR/utils-common.sh"
source "$SOURCE_DIR/utils-prepare.sh"

if [ "$#" -ne 5 ]; then
echo "Usage: $0 <arrow-dir> <prev_veresion> <version> <next_version> <rc-num>"
echo "Usage: $0 ../arrow 0.1.0 0.2.0 0.3.0 0"
exit 1
fi
main() {
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <arrow-dir> <rc_num>"
echo "Usage: $0 ../arrow 0"
exit 1
fi

. $SOURCE_DIR/utils-prepare.sh
local -r arrow_dir="$1"
local -r rc_number="$2"
local -r release_candidate_tag="apache-arrow-adbc-${RELEASE}-rc${rc_number}"

arrow_dir=$1
prev_version=$2
version=$3
next_version=$4
next_version_snapshot="${next_version}-SNAPSHOT"
rc_number=$5
export ARROW_SOURCE="$(cd "${arrow_dir}" && pwd)"

export ARROW_SOURCE="$(cd "${arrow_dir}" && pwd)"
if [[ $(git tag -l "${release_candidate_tag}") ]]; then
local -r next_rc_number=$(($rc_number+1))
echo "Tag ${release_candidate_tag} already exists, so create a new release candidate:"
echo "1. Create or checkout maint-<version>."
echo "2. Execute the script again with bumped RC number."
echo "Commands:"
echo " git checkout maint-${version}"
echo " dev/release/01-prepare.sh ${arrow_dir} ${next_rc_number}"
exit 1
fi

release_candidate_tag="apache-arrow-adbc-${version}-rc${rc_number}"
############################## Pre-Tag Commits ##############################

if [[ $(git tag -l "${release_candidate_tag}") ]]; then
next_rc_number=$(($rc_number+1))
echo "Tag ${release_candidate_tag} already exists, so create a new release candidate:"
echo "1. Create or checkout maint-<version>."
echo "2. Execute the script again with bumped RC number."
echo "Commands:"
echo " git checkout maint-${version}"
echo " dev/release/01-prepare.sh ${version} ${next_version} ${next_rc_number}"
exit 1
fi
header "Updating changelog for ${RELEASE}"
# Update changelog
# XXX: commitizen doesn't respect --tag-format with --incremental, so mimic
# it by hand.
(
echo ;
# Strip trailing blank line
printf '%s\n' "$(cz ch --dry-run --unreleased-version "ADBC Libraries ${RELEASE}" --start-rev apache-arrow-adbc-${PREVIOUS_RELEASE})"
) >> ${SOURCE_DIR}/../../CHANGELOG.md
git add ${SOURCE_DIR}/../../CHANGELOG.md
git commit -m "chore: update CHANGELOG.md for ${RELEASE}"

############################## Pre-Tag Commits ##############################
header "Prepare release ${RELEASE} on tag ${release_candidate_tag}"

echo "Updating changelog for $version"
# Update changelog
# XXX: commitizen doesn't respect --tag-format with --incremental, so mimic
# it by hand.
(
echo ;
# Strip trailing blank line
printf '%s\n' "$(cz ch --dry-run --unreleased-version "ADBC Libraries ${version}" --start-rev apache-arrow-adbc-${prev_version})"
) >> ${SOURCE_DIR}/../../CHANGELOG.md
git add ${SOURCE_DIR}/../../CHANGELOG.md
git commit -m "chore: update CHANGELOG.md for $version"
update_versions "release"
# --allow-empty required for RCs after the first
git commit -m "chore: update versions for ${RELEASE}" --allow-empty

echo "Prepare release ${version} on tag ${release_candidate_tag}"
######################### Tag the Release Candidate #########################

update_versions "${version}" "${next_version}" "release"
# --allow-empty required for RCs after the first
git commit -m "chore: update versions for ${version}" --allow-empty
header "Tag the release candidate ${release_candidate_tag}"

######################### Tag the Release Candidate #########################
git tag -a "${release_candidate_tag}" -m "ADBC Libraries ${RELEASE} RC ${rc_number}"

git tag -a "${release_candidate_tag}" -m "ADBC Libraries ${version} RC ${rc_number}"
echo "Created release candidate tag: ${release_candidate_tag}"
echo "Push this tag before continuing!"
}

echo "Created release candidate tag: ${release_candidate_tag}"
echo "Push this tag before continuing!"
main "$@"
37 changes: 11 additions & 26 deletions dev/release/02-sign.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,21 @@

set -eu

main() {
local -r source_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
local -r source_top_dir="$( cd "${source_dir}/../../" && pwd )"
pushd "${source_top_dir}"
SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "${SOURCE_DIR}/utils-common.sh"
source "${SOURCE_DIR}/utils-prepare.sh"

if [ "$#" -ne 3 ]; then
echo "Usage: $0 <prev-version> <version> <rc-num>"
main() {
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <rc-num>"
echo "Usage: $0 0"
exit 1
fi

local -r prev_version="$1"
local -r version="$2"
local -r rc_number="$3"
local -r tag="apache-arrow-adbc-${version}-rc${rc_number}"
local -r tarball="apache-arrow-adbc-${version}"
pushd "${SOURCE_TOP_DIR}"

: ${REPOSITORY:="apache/arrow-adbc"}

if [[ ! -f "${source_dir}/.env" ]]; then
echo "You must create ${source_dir}/.env"
echo "You can use ${source_dir}/.env.example as a template"
fi

source "${source_dir}/.env"
local -r rc_number="$1"
local -r tag="apache-arrow-adbc-${RELEASE}-rc${rc_number}"

header "Looking for GitHub Actions workflow on ${REPOSITORY}:${tag}"
local run_id=""
Expand Down Expand Up @@ -72,7 +63,7 @@ main() {
header "Adding release notes"
# XXX: commitizen likes to include the entire history even if we
# give it a tag, so we have to give it both tags explicitly
local -r release_notes=$(cz ch --dry-run --unreleased-version "ADBC Libraries ${version}" --start-rev apache-arrow-adbc-${prev_version})
local -r release_notes=$(cz ch --dry-run --unreleased-version "ADBC Libraries ${RELEASE}" --start-rev apache-arrow-adbc-${PREVIOUS_RELEASE})
echo "${release_notes}"
gh release edit \
"${tag}" \
Expand All @@ -97,12 +88,6 @@ main() {
popd
}

header() {
echo "============================================================"
echo "${1}"
echo "============================================================"
}

sign_asset() {
local -r asset="$1"
local -r sigfile="${asset}.asc"
Expand Down
38 changes: 14 additions & 24 deletions dev/release/03-source.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,19 @@

set -eu

main() {
local -r source_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
local -r source_top_dir="$( cd "${source_dir}/../../" && pwd )"
SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "${SOURCE_DIR}/utils-common.sh"
source "${SOURCE_DIR}/utils-prepare.sh"

if [ "$#" -ne 2 ]; then
echo "Usage: $0 <version> <rc-num>"
main() {
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <rc-num>"
exit 1
fi
local -r version="$1"
local -r rc_number="$2"
local -r tag="apache-arrow-adbc-${version}-rc${rc_number}"
local -r tarball="apache-arrow-adbc-${version}.tar.gz"

: ${REPOSITORY:="apache/arrow-adbc"}

if [[ ! -f "${source_dir}/.env" ]]; then
echo "You must create ${source_dir}/.env"
echo "You can use ${source_dir}/.env.example as a template"
fi

source "${source_dir}/.env"
local -r rc_number="$1"
local -r tag="apache-arrow-adbc-${RELEASE}-rc${rc_number}"
local -r tarball="apache-arrow-adbc-${RELEASE}.tar.gz"

header "Downloading assets from release"
local -r download_dir="packages/${tag}"
Expand All @@ -63,18 +55,16 @@ main() {

# commit to svn
svn add "tmp/${tag}"
svn ci -m "Apache Arrow ADBC ${version} RC${rc_number}" "tmp/${tag}"
if [[ "${DRY_RUN}" = 0 ]]; then
svn ci -m "Apache Arrow ADBC ${version} RC${rc_number}" "tmp/${tag}"
else
echo "Dry run: not committing to dist.apache.org"
fi

# clean up
rm -rf tmp

echo "Uploaded at https://dist.apache.org/repos/dist/dev/arrow/${tag}"
}

header() {
echo "============================================================"
echo "${1}"
echo "============================================================"
}

main "$@"
22 changes: 10 additions & 12 deletions dev/release/04-java-upload.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,20 @@ set -e
set -u
set -o pipefail

main() {
local -r source_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
local -r source_top_dir="$(cd "${source_dir}/../../" && pwd)"
SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "${SOURCE_DIR}/utils-common.sh"
source "${SOURCE_DIR}/utils-prepare.sh"

if [ $# -ne 3 ]; then
echo "Usage: $0 <arrow-dir> <version> <rc-number>"
echo "Usage: $0 ../arrow 1.0.0 0"
main() {
if [ $# -ne 2 ]; then
echo "Usage: $0 <arrow-dir> <rc-number>"
echo "Usage: $0 ../arrow 0"
exit
fi

local -r arrow_dir="$(cd "$1" && pwd)"
local -r version="$2"
local -r rc_number="$3"
local -r tag="apache-arrow-adbc-${version}-rc${rc_number}"

: ${REPOSITORY:="apache/arrow-adbc"}
local -r rc_number="$2"
local -r tag="apache-arrow-adbc-${RELEASE}-rc${rc_number}"

export ARROW_ARTIFACTS_DIR="$(pwd)/packages/${tag}/java"
rm -rf "${ARROW_ARTIFACTS_DIR}"
Expand All @@ -51,7 +49,7 @@ main() {
"${tag}"

export UPLOAD_FORCE_SIGN=0
"${arrow_dir}/dev/release/06-java-upload.sh" "${version}" "${rc_number}"
"${arrow_dir}/dev/release/06-java-upload.sh" "${RELEASE}" "${rc_number}"
}

main "$@"
Loading

0 comments on commit 5399217

Please sign in to comment.