From 9abd8ba15f3f5935e3d8a6e60a29d7e68d56863c Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 11:42:58 -0500 Subject: [PATCH 1/7] Use RAPIDS_BRANCH for RAPIDS CI clones --- .github/workflows/build-all-rapids-repos.yml | 2 +- RAPIDS_BRANCH | 1 + ci/release/update-version.sh | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 RAPIDS_BRANCH diff --git a/.github/workflows/build-all-rapids-repos.yml b/.github/workflows/build-all-rapids-repos.yml index 5bd11378..1ecec745 100644 --- a/.github/workflows/build-all-rapids-repos.yml +++ b/.github/workflows/build-all-rapids-repos.yml @@ -103,7 +103,7 @@ jobs: # Clone all the repos run_command "Clone RAPIDS repositories" \ - clone-all -j$(nproc) -v -q --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env; + clone-all -j$(nproc) -v -q --branch "$(< RAPIDS_BRANCH)" --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env; run_command "Create RAPIDS python environment" \ rapids-post-start-command; diff --git a/RAPIDS_BRANCH b/RAPIDS_BRANCH new file mode 100644 index 00000000..5a399d5c --- /dev/null +++ b/RAPIDS_BRANCH @@ -0,0 +1 @@ +release/26.06 diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh index 2525781d..2fb85f8c 100755 --- a/ci/release/update-version.sh +++ b/ci/release/update-version.sh @@ -81,13 +81,16 @@ NEXT_FULL_TAG_PEP440=$(python -c "from packaging.version import Version; print(V # Log update context if [[ "${RUN_CONTEXT}" == "main" ]]; then + RAPIDS_BRANCH_NAME="main" echo "Preparing development branch update $CURRENT_TAG => $NEXT_FULL_TAG (targeting main branch)" elif [[ "${RUN_CONTEXT}" == "release" ]]; then + RAPIDS_BRANCH_NAME="release/${NEXT_SHORT_TAG}" echo "Preparing release branch update $CURRENT_TAG => $NEXT_FULL_TAG (targeting release/${NEXT_SHORT_TAG} branch)" fi # Centralized version file update echo "${NEXT_FULL_TAG}" > VERSION +echo "${RAPIDS_BRANCH_NAME}" > RAPIDS_BRANCH # Inplace sed replace; workaround for Linux and Mac function sed_runner() { From c7bb91a5d4031bdd961094bc3e5aeccdfb6edc52 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 12:04:13 -0500 Subject: [PATCH 2/7] Map RAPIDS branch to UCXX branch in CI --- .github/workflows/build-all-rapids-repos.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/build-all-rapids-repos.yml b/.github/workflows/build-all-rapids-repos.yml index 1ecec745..dbf37260 100644 --- a/.github/workflows/build-all-rapids-repos.yml +++ b/.github/workflows/build-all-rapids-repos.yml @@ -101,10 +101,24 @@ jobs: return "$exit_code" } + function rapids_to_ucxx_branch() { + local rapids_branch="$1" + + if [[ "${rapids_branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then + local rapids_version="${rapids_branch#release/}" + echo "release/$(curl -sL "https://version.gpuci.io/rapids/${rapids_version}")" + else + echo "${rapids_branch}" + fi + } + # Clone all the repos run_command "Clone RAPIDS repositories" \ clone-all -j$(nproc) -v -q --branch "$(< RAPIDS_BRANCH)" --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env; + run_command "Clone UCXX repository" \ + clone-ucxx -j$(nproc) -v -q --branch "$(rapids_to_ucxx_branch "$(< RAPIDS_BRANCH)")" --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env; + run_command "Create RAPIDS python environment" \ rapids-post-start-command; From ffce2a54e6e2b26af2693733ac8f67cebeb5e7a1 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 12:09:43 -0500 Subject: [PATCH 3/7] Map UCXX branch in clone-all --- .github/workflows/build-all-rapids-repos.yml | 14 ------------- .../bin/tmpl/all.clone.tmpl.sh | 21 +++++++++++++++++-- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-all-rapids-repos.yml b/.github/workflows/build-all-rapids-repos.yml index dbf37260..1ecec745 100644 --- a/.github/workflows/build-all-rapids-repos.yml +++ b/.github/workflows/build-all-rapids-repos.yml @@ -101,24 +101,10 @@ jobs: return "$exit_code" } - function rapids_to_ucxx_branch() { - local rapids_branch="$1" - - if [[ "${rapids_branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then - local rapids_version="${rapids_branch#release/}" - echo "release/$(curl -sL "https://version.gpuci.io/rapids/${rapids_version}")" - else - echo "${rapids_branch}" - fi - } - # Clone all the repos run_command "Clone RAPIDS repositories" \ clone-all -j$(nproc) -v -q --branch "$(< RAPIDS_BRANCH)" --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env; - run_command "Clone UCXX repository" \ - clone-ucxx -j$(nproc) -v -q --branch "$(rapids_to_ucxx_branch "$(< RAPIDS_BRANCH)")" --clone-upstream --depth 1 --single-branch --shallow-submodules --no-update-env; - run_command "Create RAPIDS python environment" \ rapids-post-start-command; diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh index b04da277..cb11c58f 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh @@ -11,6 +11,7 @@ # (default: false) # # Options that require values: +# -b,--branch Check the repos out to . # -j,--parallel Clone repos in parallel. # (default: 1) @@ -21,7 +22,7 @@ clone_all() { local -; set -euo pipefail; - eval "$(_parse_args --take '-j,--parallel -v,--verbose --no-update-env' "$@" <&0)"; + eval "$(_parse_args --take '-b,--branch -j,--parallel -v,--verbose --no-update-env' "$@" <&0)"; eval "$(rapids-get-num-archs-jobs-and-load --archs 1 --max-device-obj-memory-usage 1 "$@")"; @@ -36,7 +37,23 @@ clone_all() { echo ${NAMES} \ | tr '[:space:]' '\0' \ | xargs ${v:+-t} ${_o} -r -0 -P${n_jobs} -I% bash -c \ - " if command -V clone-% >/dev/null 2>&1; then if ! clone-% -j ${n_arch} --no-update-env ${OPTS[*]@Q} ${v[*]@Q}; then exit 255; fi; fi"; + ' + repo="$1"; + branch="$2"; + n_arch="$3"; + shift 3; + branch_args=(); + if test -n "${branch:+x}"; then + if [[ "${repo}" == "ucxx" && "${branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then + rapids_version="${branch#release/}"; + branch="release/$(curl -sL "https://version.gpuci.io/rapids/${rapids_version}")"; + fi; + branch_args=(--branch "${branch}"); + fi; + if command -V "clone-${repo}" >/dev/null 2>&1; then + if ! "clone-${repo}" -j "${n_arch}" --no-update-env "${branch_args[@]}" "$@"; then exit 255; fi; + fi + ' _ % "${branch[0]:-}" "${n_arch}" ${OPTS[*]@Q} ${v[*]@Q}; if ! test -n "${no_update_env:+x}"; then rapids-post-start-command; From 42c012f0db268263eb57799f0d7164de117c224f Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 12:35:41 -0500 Subject: [PATCH 4/7] rapids-checkout-same-branch only for ucxx --- .../rapids-build-utils/bin/checkout-same-branch.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh index cee54558..022edf1c 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh @@ -17,13 +17,13 @@ # shellcheck disable=SC1091 . rapids-generate-docstring; -# Function to convert ucx branch names -convert-ucx-branch() { +# Function to convert ucxx branch names +convert-ucxx-branch() { repo=$1 custom_branch=$2 normalized_branch="${custom_branch}" - if [[ "${repo}" == "ucx"* ]]; then + if [[ "${repo}" == "ucxx" ]]; then # Only convert branches that match the pattern release/YY.MM if [[ "${custom_branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then RAPIDS_VERSION=$(echo "${custom_branch}" | awk '{split($0, a, "/"); print a[2]}') @@ -68,7 +68,7 @@ checkout_same_branch() { local path="${!repo_path}"; # Skip ucxx repositories when determining common branches - if [[ "${name}" == "ucx"* ]]; then + if [[ "${name}" == "ucxx" ]]; then continue; fi @@ -156,9 +156,9 @@ checkout_same_branch() { # Apply normalization for ucxx repositories local repo_name_val="${!repo_name}"; local normalized_branch; - normalized_branch=$(convert-ucx-branch "${repo_name_val}" "${branch}"); + normalized_branch=$(convert-ucxx-branch "${repo_name_val}" "${branch}"); - if [[ "${repo_name_val}" == "ucx"* ]]; then + if [[ "${repo_name_val}" == "ucxx" ]]; then echo "Using normalized branch '${normalized_branch}' for repository '${repo_name_val}'"; branch="${normalized_branch}"; fi From 8cff00e1f515e6e0eb08350d6df0ec70a4c1d62e Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 12:48:19 -0500 Subject: [PATCH 5/7] Share UCXX branch conversion helper --- features/src/rapids-build-utils/install.sh | 3 ++- .../bin/checkout-same-branch.sh | 23 ++----------------- .../bin/convert-ucxx-branch.sh | 19 +++++++++++++++ .../bin/tmpl/all.clone.tmpl.sh | 5 ++-- 4 files changed, 25 insertions(+), 25 deletions(-) create mode 100644 features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh diff --git a/features/src/rapids-build-utils/install.sh b/features/src/rapids-build-utils/install.sh index 78f34900..0c2688c4 100644 --- a/features/src/rapids-build-utils/install.sh +++ b/features/src/rapids-build-utils/install.sh @@ -56,7 +56,7 @@ cp -ar ./opt/rapids-build-utils /opt/; declare -a commands=( checkout-same-branch - maybe-clean-build-dir + convert-ucxx-branch generate-docstring generate-scripts get-cmake-build-dir @@ -68,6 +68,7 @@ declare -a commands=( make-pip-env make-vscode-workspace merge-compile-commands-json + maybe-clean-build-dir post-attach-command post-start-command pull-repositories diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh index 022edf1c..5473940a 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/checkout-same-branch.sh @@ -17,25 +17,6 @@ # shellcheck disable=SC1091 . rapids-generate-docstring; -# Function to convert ucxx branch names -convert-ucxx-branch() { - repo=$1 - custom_branch=$2 - normalized_branch="${custom_branch}" - - if [[ "${repo}" == "ucxx" ]]; then - # Only convert branches that match the pattern release/YY.MM - if [[ "${custom_branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then - RAPIDS_VERSION=$(echo "${custom_branch}" | awk '{split($0, a, "/"); print a[2]}') - # Get UCX version associated w/ RAPIDS version - UCX_VERSION="$(curl -sL https://version.gpuci.io/rapids/${RAPIDS_VERSION})" - normalized_branch="release/${UCX_VERSION}" - fi - fi - - echo "${normalized_branch}" -} - checkout_same_branch() { local -; set -euo pipefail; @@ -155,10 +136,10 @@ checkout_same_branch() { # Apply normalization for ucxx repositories local repo_name_val="${!repo_name}"; - local normalized_branch; - normalized_branch=$(convert-ucxx-branch "${repo_name_val}" "${branch}"); if [[ "${repo_name_val}" == "ucxx" ]]; then + local normalized_branch; + normalized_branch=$(rapids-convert-ucxx-branch "${branch}"); echo "Using normalized branch '${normalized_branch}' for repository '${repo_name_val}'"; branch="${normalized_branch}"; fi diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh new file mode 100644 index 00000000..551e0e43 --- /dev/null +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Usage: +# rapids-convert-ucxx-branch +# +# Convert a RAPIDS branch name to the corresponding UCXX branch name. + +convert_ucxx_branch() { + local branch="${1:?fatal: missing required positional argument }" + + if [[ "${branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then + local rapids_version="${branch#release/}" + branch="release/$(curl -sL "https://version.gpuci.io/rapids/${rapids_version}")" + fi + + echo "${branch}" +} + +convert_ucxx_branch "$@" <&0 diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh index cb11c58f..f84146e4 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh @@ -44,9 +44,8 @@ clone_all() { shift 3; branch_args=(); if test -n "${branch:+x}"; then - if [[ "${repo}" == "ucxx" && "${branch}" =~ ^release/[0-9]{2}\.[0-9]{2}$ ]]; then - rapids_version="${branch#release/}"; - branch="release/$(curl -sL "https://version.gpuci.io/rapids/${rapids_version}")"; + if [[ "${repo}" == "ucxx" ]]; then + branch="$(rapids-convert-ucxx-branch "${branch}")"; fi; branch_args=(--branch "${branch}"); fi; From fec207c47f62a7a1a1adcdf9163042ced0000d09 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 13:15:40 -0500 Subject: [PATCH 6/7] Make UCXX branch helper executable --- .../opt/rapids-build-utils/bin/convert-ucxx-branch.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/convert-ucxx-branch.sh old mode 100644 new mode 100755 From 7aeda08d9106ee93076174c9b72de3d64bc11dc0 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 15 May 2026 13:32:26 -0500 Subject: [PATCH 7/7] Forward clone-all options as arguments --- .../opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh index f84146e4..1635f133 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/all.clone.tmpl.sh @@ -52,7 +52,7 @@ clone_all() { if command -V "clone-${repo}" >/dev/null 2>&1; then if ! "clone-${repo}" -j "${n_arch}" --no-update-env "${branch_args[@]}" "$@"; then exit 255; fi; fi - ' _ % "${branch[0]:-}" "${n_arch}" ${OPTS[*]@Q} ${v[*]@Q}; + ' _ % "${branch[0]:-}" "${n_arch}" "${OPTS[@]}" "${v[@]}"; if ! test -n "${no_update_env:+x}"; then rapids-post-start-command;