Skip to content

refactor: switch to rapids-artifact-name for consistent artifact naming#2136

Open
gforsyth wants to merge 2 commits into
rapidsai:mainfrom
gforsyth:rapids-artifact-name
Open

refactor: switch to rapids-artifact-name for consistent artifact naming#2136
gforsyth wants to merge 2 commits into
rapidsai:mainfrom
gforsyth:rapids-artifact-name

Conversation

@gforsyth
Copy link
Copy Markdown
Contributor

This PR swaps in rapids-artifact-name for rapids-package-name everywhere, and also removes any legacy named artifacts. All artifacts now follow the same naming convention (and that convention can be updated/expanded from a central location). Part of rapidsai/build-planning#270

@gforsyth gforsyth added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels May 27, 2026
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 27, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@gforsyth
Copy link
Copy Markdown
Contributor Author

/ok to test

@gforsyth gforsyth added non-breaking Introduces a non-breaking change and removed non-breaking Introduces a non-breaking change labels May 27, 2026
@gforsyth gforsyth marked this pull request as ready for review May 27, 2026 19:10
@gforsyth gforsyth requested a review from a team as a code owner May 27, 2026 19:10
@gforsyth gforsyth requested a review from jameslamb May 27, 2026 19:10
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 27, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 46b2aee8-ba1a-45ea-890b-22d4de6d8d3c

📥 Commits

Reviewing files that changed from the base of the PR and between c87ed30 and 0168f93.

📒 Files selected for processing (1)
  • .github/workflows/build.yaml

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Streamlined CI artifact naming and download flows across build and test pipelines.
    • Added/standardized exported package-name variable usage in CI scripts.
    • Updated wheel publish/search keys for C++ and Python wheel jobs.
    • Bumped copyright header years.

Walkthrough

CI/CD scripts and workflows switch artifact naming to rapids-artifact-name and downloads to rapids-download-from-github; CPP channels, wheel downloads, and RAPIDS_PACKAGE_NAME derivations updated across CI scripts. Workflow inputs for ABI checks and wheel publish/search keys are added/changed.

Changes

Artifact naming and download refactor

Layer / File(s) Summary
Workflow ABI check configuration
.github/workflows/pr.yaml
The check-c-abi job now includes package_name: libcuvs in its with inputs.
C++ conda channel migration
ci/build_cpp.sh, ci/build_docs.sh, ci/build_go.sh, ci/build_java.sh, ci/build_python.sh, ci/build_rust.sh, ci/test_cpp.sh, ci/test_python.sh
Scripts now compute CPP_CHANNEL using rapids-artifact-name (e.g., conda_cpp libcuvs cuvs --cuda ...) and fetch it via rapids-download-from-github; copyright years updated in relevant headers.
Package name derivation updates
ci/build_cpp.sh, ci/build_python.sh, ci/build_wheel_cuvs.sh, ci/build_wheel_libcuvs.sh
RAPIDS_PACKAGE_NAME is now derived with rapids-artifact-name (adding cuvs where applicable) and exported in several build scripts.
Wheel artifact download migration
ci/build_wheel_cuvs.sh, ci/test_wheel_cuvs.sh
Wheel directories (LIBCUVS_WHEELHOUSE, CUVS_WHEELHOUSE) are resolved by downloading explicitly named wheel artifacts via rapids-download-from-github and rapids-artifact-name instead of prior helpers.
Workflow wheel publish keys
.github/workflows/build.yaml
Wheel publish jobs updated to use explicit publish-wheel-search-key values: cuvs_wheel_cpp_libcuvs and cuvs_wheel_python_cuvs.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • cjnolet
  • jameslamb
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main refactoring change: switching from rapids-package-name to rapids-artifact-name for consistent artifact naming across the codebase.
Description check ✅ Passed The description accurately explains the PR's purpose: replacing rapids-package-name with rapids-artifact-name and removing legacy artifacts for standardized naming conventions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
ci/test_python.sh (1)

13-14: ⚡ Quick win

Add explicit validation for downloaded channel values.

Line 13 and Line 14 should fail fast with a clear message if channel resolution returns empty output.

Proposed patch
 CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuvs cuvs --cuda "$RAPIDS_CUDA_VERSION")")
 PYTHON_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_python cuvs cuvs --stable --cuda "$RAPIDS_CUDA_VERSION")")
+
+if [[ -z "${CPP_CHANNEL}" || -z "${PYTHON_CHANNEL}" ]]; then
+  rapids-logger "ERROR: Failed to resolve one or more conda channels from GitHub artifacts."
+  exit 1
+fi

As per coding guidelines, ci/**/* requires “proper error handling and meaningful error messages”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ci/test_python.sh` around lines 13 - 14, After assigning CPP_CHANNEL and
PYTHON_CHANNEL in ci/test_python.sh (the results of
rapids-download-from-github/rapids-artifact-name calls), add immediate
validation: check if CPP_CHANNEL or PYTHON_CHANNEL is empty or unset right after
their assignment, and if so print a clear error message identifying which
channel failed to resolve and exit non‑zero; ensure the check references the
exact variable names (CPP_CHANNEL, PYTHON_CHANNEL) and runs before any later use
so the script fails fast with a meaningful message.
ci/test_wheel_cuvs.sh (1)

12-13: ⚡ Quick win

Validate wheelhouse paths immediately after artifact download.

Line 12 and Line 13 should assert that both wheelhouse directories exist and fail with a clear error before install.

Proposed patch
 LIBCUVS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_cpp libcuvs cuvs --cuda "$RAPIDS_CUDA_VERSION")")
 CUVS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cuvs cuvs --stable --cuda "$RAPIDS_CUDA_VERSION")")
+
+if [[ ! -d "${LIBCUVS_WHEELHOUSE}" || ! -d "${CUVS_WHEELHOUSE}" ]]; then
+  rapids-logger "ERROR: Wheelhouse download failed. LIBCUVS_WHEELHOUSE='${LIBCUVS_WHEELHOUSE}', CUVS_WHEELHOUSE='${CUVS_WHEELHOUSE}'"
+  exit 1
+fi

As per coding guidelines, ci/**/* requires “proper error handling and meaningful error messages”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ci/test_wheel_cuvs.sh` around lines 12 - 13, After downloading artifacts into
LIBCUVS_WHEELHOUSE and CUVS_WHEELHOUSE using
rapids-download-from-github/rapids-artifact-name, immediately verify each path
exists and is a non-empty directory; if a check fails, print a clear error
mentioning the variable name (LIBCUVS_WHEELHOUSE or CUVS_WHEELHOUSE) and exit
with a non-zero status. Update the shell snippet around the assignments to
perform [ -d "$LIBCUVS_WHEELHOUSE" ] and [ -d "$CUVS_WHEELHOUSE" ] (and
optionally check contents) and call exit 1 with descriptive messages so installs
do not proceed when downloads failed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@ci/test_python.sh`:
- Around line 13-14: After assigning CPP_CHANNEL and PYTHON_CHANNEL in
ci/test_python.sh (the results of
rapids-download-from-github/rapids-artifact-name calls), add immediate
validation: check if CPP_CHANNEL or PYTHON_CHANNEL is empty or unset right after
their assignment, and if so print a clear error message identifying which
channel failed to resolve and exit non‑zero; ensure the check references the
exact variable names (CPP_CHANNEL, PYTHON_CHANNEL) and runs before any later use
so the script fails fast with a meaningful message.

In `@ci/test_wheel_cuvs.sh`:
- Around line 12-13: After downloading artifacts into LIBCUVS_WHEELHOUSE and
CUVS_WHEELHOUSE using rapids-download-from-github/rapids-artifact-name,
immediately verify each path exists and is a non-empty directory; if a check
fails, print a clear error mentioning the variable name (LIBCUVS_WHEELHOUSE or
CUVS_WHEELHOUSE) and exit with a non-zero status. Update the shell snippet
around the assignments to perform [ -d "$LIBCUVS_WHEELHOUSE" ] and [ -d
"$CUVS_WHEELHOUSE" ] (and optionally check contents) and call exit 1 with
descriptive messages so installs do not proceed when downloads failed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5332f8f5-a8c9-4491-a14e-ddf0dc3b45f4

📥 Commits

Reviewing files that changed from the base of the PR and between 4addf4e and c87ed30.

📒 Files selected for processing (12)
  • .github/workflows/pr.yaml
  • ci/build_cpp.sh
  • ci/build_docs.sh
  • ci/build_go.sh
  • ci/build_java.sh
  • ci/build_python.sh
  • ci/build_rust.sh
  • ci/build_wheel_cuvs.sh
  • ci/build_wheel_libcuvs.sh
  • ci/test_cpp.sh
  • ci/test_python.sh
  • ci/test_wheel_cuvs.sh

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Actionable comments posted: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants