Skip to content

Bump versions of packages missed in 26.10 rollover - #23315

Merged
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
wence-:wence/fix/missed-version-bump
Jul 17, 2026
Merged

Bump versions of packages missed in 26.10 rollover#23315
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
wence-:wence/fix/missed-version-bump

Conversation

@wence-

@wence- wence- commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Description

These were missed by the scripting, I think.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@wence-
wence- requested a review from a team as a code owner July 17, 2026 10:10
@wence-
wence- requested a review from gforsyth July 17, 2026 10:10
@github-actions github-actions Bot added Python Affects Python cuDF API. cudf-polars Issues specific to cudf-polars labels Jul 17, 2026
@GPUtester GPUtester moved this to In Progress in cuDF Python Jul 17, 2026
@wence- wence- added bug Something isn't working non-breaking Non-breaking change labels Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

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: e6ec0444-3076-48ae-b84c-cbc29a6256f9

📥 Commits

Reviewing files that changed from the base of the PR and between f01a28b and ef77dd9.

📒 Files selected for processing (1)
  • python/cudf_polars/tests/streaming/test_select.py
💤 Files with no reviewable changes (1)
  • python/cudf_polars/tests/streaming/test_select.py

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Bumped RAPIDS cuDF Streaming-related dependency pins from the 26.8 release series to 26.10 across CUDA 12/13 and supported architectures (conda, wheels, and environment specs).
    • Updated UCXX/libucxx-related dependency pins from the 0.51 series to 0.52 across the same packaging targets and build requirements.
    • Enhanced release version update tooling to cover additional streaming packages, apply UCXX-specific tagging, and refresh SPDX header text.
  • Tests
    • Removed version-gated expected-failure marking for a streaming select test, so it runs normally across Polars versions.

Walkthrough

Updates streaming-related RAPIDS dependency constraints from 26.8.* to 26.10.* across dependency matrices, Python package metadata, CUDA environments, and release automation. UCXX constraints move from 0.51.* to 0.52.*, and a Polars streaming test runs without a conditional xfail marker.

Changes

Streaming dependency update

Layer / File(s) Summary
Shared dependency matrices
dependencies.yaml
Updates streaming, test package, librapidsmpf, and UCXX pins across conda and CUDA-specific requirements/pyproject dependency groups.
Python package dependency metadata
python/cudf_polars/pyproject.toml, python/cudf_streaming/pyproject.toml, python/libcudf_streaming/pyproject.toml
Updates runtime and build-time dependency constraints for streaming, librapidsmpf, and UCXX packages.
CUDA environment pins
conda/environments/all_cuda-129_arch-*, conda/environments/all_cuda-133_arch-*
Updates librapidsmpf, libucxx, and ucxx pins for AArch64 and x86_64 environments.
Release version update coverage
ci/release/update-version.sh
Adds streaming dependencies to release pin rewriting and introduces UCXX-specific tag-based updates.
Polars streaming test execution
python/cudf_polars/tests/streaming/test_select.py
Removes the version-conditional expected-failure marker from test_select_with_len.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • rapidsai/cudf#23305: Updates overlapping RAPIDS dependency pins in conda environments and dependency metadata.

Suggested labels: conda, improvement, ci

Suggested reviewers: gforsyth, matt711

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: package versions bumped for the 26.10 rollover.
Description check ✅ Passed The description is related to the version-bump changes and the scripting miss noted in the PR objective.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@bdice bdice left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please fix the scripting in ci/release/update-version.sh to ensure this does not reoccur.

@wence-
wence- force-pushed the wence/fix/missed-version-bump branch from e51d9f1 to 4450d6a Compare July 17, 2026 13:50
@wence-
wence- requested a review from a team as a code owner July 17, 2026 13:50
@wence-

wence- commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Please fix the scripting in ci/release/update-version.sh to ensure this does not reoccur.

Done

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
ci/release/update-version.sh (1)

147-161: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Add regression coverage for the release rewrite entries.

Please add or verify a focused test that confirms both cudf-streaming and libcudf-streaming are rewritten correctly, without modifying unrelated dependencies. Run pre-commit, codespell, and CI before merging.

As per coding guidelines, “Add unit tests and unit benchmarks for code contributions, and verify that all CI status checks pass before merging.”

🤖 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/release/update-version.sh` around lines 147 - 161, Add focused regression
coverage for the release rewrite logic covering both cudf-streaming and
libcudf-streaming, asserting each is rewritten correctly while unrelated
dependencies remain unchanged. Run pre-commit, codespell, and CI checks before
merging.

Source: Coding guidelines

🤖 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.

Outside diff comments:
In `@ci/release/update-version.sh`:
- Around line 147-161: Add focused regression coverage for the release rewrite
logic covering both cudf-streaming and libcudf-streaming, asserting each is
rewritten correctly while unrelated dependencies remain unchanged. Run
pre-commit, codespell, and CI checks before merging.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 39f81dc1-763f-4647-a64e-20e0fff27ae6

📥 Commits

Reviewing files that changed from the base of the PR and between e51d9f1 and 4450d6a.

📒 Files selected for processing (9)
  • ci/release/update-version.sh
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-133_arch-aarch64.yaml
  • conda/environments/all_cuda-133_arch-x86_64.yaml
  • dependencies.yaml
  • python/cudf_polars/pyproject.toml
  • python/cudf_streaming/pyproject.toml
  • python/libcudf_streaming/pyproject.toml
🚧 Files skipped from review as they are similar to previous changes (7)
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-133_arch-x86_64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • python/libcudf_streaming/pyproject.toml
  • python/cudf_polars/pyproject.toml
  • python/cudf_streaming/pyproject.toml
  • dependencies.yaml

@wence-

wence- commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Also added rewrite for UCXX deps, cargo-culted from a combination of the dask-cuda and ucxx update-versions.sh scripts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
ci/release/update-version.sh (1)

186-193: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Align UCXX sed patterns with the main dependency loop.

Two differences from the main DEPENDENCIES loop (lines 177–184) could cause silent misses or confusion:

  1. Missing conda selector handling (line 188): The main loop's conda YAML pattern includes \(\[.*\]\)\{0,1\} to match optional conda selectors (e.g., [not aarch64]), but the UCXX loop omits it. If a conda selector is ever added to a libucxx or ucxx line, the version bump would silently skip that entry.
  2. Inconsistent \.* in replacement (line 191): The UCXX pyproject.toml replacement uses \.* where the main loop uses .*. Both produce the same literal output in GNU sed, but the inconsistency is unnecessary and could confuse future maintainers.
♻️ Proposed alignment
 for DEP in "${UCXX_DEPENDENCIES[@]}"; do
   for FILE in dependencies.yaml conda/environments/*.yaml python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml; do
-    sed_runner "/-.* ${DEP}\(-cu[[:digit:]]\{2\}\)\{0,1\}==/ s/==.*/==${NEXT_UCXX_SHORT_TAG_PEP440}.*,>=0.0.0a0/g" "${FILE}"
+    sed_runner "/-.* ${DEP}\(-cu[[:digit:]]\{2\}\)\{0,1\}\(\[.*\]\)\{0,1\}==/ s/==.*/==${NEXT_UCXX_SHORT_TAG_PEP440}.*,>=0.0.0a0/g" "${FILE}"
   done
   for FILE in python/*/pyproject.toml; do
-    sed_runner "/\"${DEP}\(-cu[[:digit:]]\{2\}\)\{0,1\}==/ s/==.*\"/==${NEXT_UCXX_SHORT_TAG_PEP440}\.*,>=0.0.0a0\"/g" "${FILE}"
+    sed_runner "/\"${DEP}\(-cu[[:digit:]]\{2\}\)\{0,1\}==/ s/==.*\"/==${NEXT_UCXX_SHORT_TAG_PEP440}.*,>=0.0.0a0\"/g" "${FILE}"
   done
 done
🤖 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/release/update-version.sh` around lines 186 - 193, Align the UCXX
dependency patterns in the loop over UCXX_DEPENDENCIES with the main
DEPENDENCIES loop: add the optional conda selector pattern to the YAML sed
match, and use the same `.*` replacement form in the pyproject.toml sed command
instead of `\.*`. Preserve the existing dependency names and version replacement
behavior.
🤖 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.

Inline comments:
In `@ci/release/update-version.sh`:
- Line 76: Update the NEXT_UCXX_TAG fetch in update-version.sh to make curl fail
on HTTP errors and handle fetch failures explicitly, emitting a clear error
message before exiting instead of passing an empty or error response to the
downstream Python command.

---

Nitpick comments:
In `@ci/release/update-version.sh`:
- Around line 186-193: Align the UCXX dependency patterns in the loop over
UCXX_DEPENDENCIES with the main DEPENDENCIES loop: add the optional conda
selector pattern to the YAML sed match, and use the same `.*` replacement form
in the pyproject.toml sed command instead of `\.*`. Preserve the existing
dependency names and version replacement behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6bb53dd3-9cc2-4701-9aa8-ff633aad2473

📥 Commits

Reviewing files that changed from the base of the PR and between 4450d6a and f01a28b.

📒 Files selected for processing (8)
  • ci/release/update-version.sh
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-133_arch-aarch64.yaml
  • conda/environments/all_cuda-133_arch-x86_64.yaml
  • dependencies.yaml
  • python/cudf_streaming/pyproject.toml
  • python/libcudf_streaming/pyproject.toml
🚧 Files skipped from review as they are similar to previous changes (3)
  • python/libcudf_streaming/pyproject.toml
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • dependencies.yaml

NEXT_PATCH=$(echo "$NEXT_FULL_TAG" | awk '{split($0, a, "."); print a[3]}')
NEXT_SHORT_TAG=${NEXT_MAJOR}.${NEXT_MINOR}

NEXT_UCXX_TAG="$(curl -s https://version.gpuci.io/rapids/"${NEXT_SHORT_TAG}")"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Add error handling for the UCXX version fetch.

curl -s without --fail returns exit 0 on HTTP errors (404, 500), so an empty or error body would propagate to the Python command on line 81 and produce a confusing traceback instead of a clear failure message. As per path instructions, CI/build scripts should have proper error handling and meaningful error messages.

🛡️ Proposed fix
-NEXT_UCXX_TAG="$(curl -s https://version.gpuci.io/rapids/"${NEXT_SHORT_TAG}")"
+NEXT_UCXX_TAG="$(curl -sf https://version.gpuci.io/rapids/"${NEXT_SHORT_TAG}")" \
+  || { echo "Error: Failed to fetch UCXX version from version.gpuci.io" >&2; exit 1; }
+if [ -z "${NEXT_UCXX_TAG}" ]; then
+  echo "Error: Empty UCXX version response from version.gpuci.io" >&2
+  exit 1
+fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
NEXT_UCXX_TAG="$(curl -s https://version.gpuci.io/rapids/"${NEXT_SHORT_TAG}")"
NEXT_UCXX_TAG="$(curl -sf https://version.gpuci.io/rapids/"${NEXT_SHORT_TAG}")" \
|| { echo "Error: Failed to fetch UCXX version from version.gpuci.io" >&2; exit 1; }
if [ -z "${NEXT_UCXX_TAG}" ]; then
echo "Error: Empty UCXX version response from version.gpuci.io" >&2
exit 1
fi
🤖 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/release/update-version.sh` at line 76, Update the NEXT_UCXX_TAG fetch in
update-version.sh to make curl fail on HTTP errors and handle fetch failures
explicitly, emitting a clear error message before exiting instead of passing an
empty or error response to the downstream Python command.

Source: Path instructions

@bdice bdice left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you!

@TomAugspurger

Copy link
Copy Markdown
Contributor

/merge

@mroeschke
mroeschke requested a review from a team as a code owner July 17, 2026 20:23
@mroeschke
mroeschke requested a review from Matt711 July 17, 2026 20:23
@TomAugspurger

Copy link
Copy Markdown
Contributor

There's an error solving a conda env in the xgboost tests: https://github.com/rapidsai/cudf/actions/runs/29611036052/job/88004744495?pr=23315#step:13:21579

warning  libmamba The specification of the environment does not seem solvable in your current setup.
warning  libmamba For instance, packages from different channels might be specified,
warning  libmamba whilst your current configuration might not allow their resolution.
warning  libmamba 
warning  libmamba If it is the case, you need to either:
warning  libmamba  - adapt the channel ordering (e.g. by reordering the `-c` flags in your command line)
warning  libmamba  - use the flexible channel priority (e.g. using `--channel-priority flexible` in your command line)
warning  libmamba 
warning  libmamba For reference, see this piece of documentation on channel priority:
warning  libmamba https://docs.conda.io/projects/conda/en/stable/user-guide/tasks/manage-channels.html#strict-channel-priority
error    libmamba Could not solve for environment specs
    The following packages are incompatible
    ├─ cuda-version =13.3 * is requested and can be installed;
    ├─ cudf =26.10,>=0.0.0a0 * is installable with the potential options
    │  ├─ cudf 26.10.00a10 would require
    │  │  └─ libcudf =26.10.0a10 *, which requires
    │  │     └─ librmm =26.10 * with the potential options
    │  │        ├─ librmm [26.08.00a56|26.08.00a57|...|26.10.00a0] would require
    │  │        │  └─ cuda-version >=12,<13.0a0 *, which conflicts with any installable versions previously reported;
    │  │        └─ librmm 26.10.00a0, which can be installed;
    │  └─ cudf [26.10.00a0|26.10.00a1|26.10.00a3|26.10.00a5] conflicts with any installable versions previously reported;
    └─ xgboost >=2.0.1 * is not installable because there are no viable options
       ├─ xgboost 3.1.3 would require
       │  └─ py-xgboost >=3.1.3,<3.1.4.0a0 * but there are no viable options
       │     ├─ py-xgboost 3.1.3 would require
       │     │  └─ libxgboost >=3.1.3,<3.1.4.0a0 * but there are no viable options
       │     │     ├─ libxgboost 3.1.3 would require
       │     │     │  └─ librmm >=26.4.0a14,<26.5.0a0 *, which conflicts with any installable versions previously reported;
       │     │     ├─ libxgboost 3.1.3 would require
       │     │     │  └─ librmm >=26.2.0a53,<26.3.0a0 *, which conflicts with any installable versions previously reported;
       │     │     └─ libxgboost 3.1.3 conflicts with any installable versions previously reported;
       │     ├─ py-xgboost 3.1.3 conflicts with any installable versions previously reported;
       │     └─ py-xgboost 3.1.3 conflicts with any installable versions previously reported;
       ├─ xgboost 3.2.0 would require
       │  └─ py-xgboost =* rapidsai_pyh*_3, which conflicts with any installable versions previously reported;
       ├─ xgboost 3.2.0 would require
       │  └─ py-xgboost =* rapidsai_pyh*_4, which conflicts with any installable versions previously reported;
       ├─ xgboost 3.2.0 would require
       │  └─ py-xgboost >=3.2.0,<3.2.1.0a0 * but there are no viable options
       │     ├─ py-xgboost 3.2.0 would require
       │     │  └─ libxgboost =* rapidsai_h*_5 but there are no viable options
       │     │     ├─ libxgboost [3.2.0|3.3.0] would require
       │     │     │  └─ cuda-version >=12,<13.0a0 *, which conflicts with any installable versions previously reported;
       │     │     ├─ libxgboost [3.2.0|3.3.0] would require
       │     │     │  └─ librmm [>=26.8.0a11,<26.9.0a0 *|>=26.8.0a37,<26.9.0a0 *|>=26.8.0a44,<26.9.0a0 *] but there are no viable options
       │     │     │     ├─ librmm [26.08.00a56|26.08.00a57|...|26.10.00a0], which cannot be installed (as previously explained);
       │     │     │     └─ librmm [26.08.00a56|26.08.00a57|26.08.00a58|26.08.00a59|26.08.00a60] conflicts with any installable versions previously reported;
       │     │     └─ libxgboost [2.0.3|2.1.1] conflicts with any installable versions previously reported;
       │     ├─ py-xgboost 3.2.0 would require
       │     │  └─ libxgboost =* rapidsai_h*_6 but there are no viable options
       │     │     ├─ libxgboost [3.2.0|3.3.0], which cannot be installed (as previously explained);
       │     │     ├─ libxgboost [3.2.0|3.3.0], which cannot be installed (as previously explained);
       │     │     └─ libxgboost 1.7.4 conflicts with any installable versions previously reported;
       │     ├─ py-xgboost 3.2.0 conflicts with any installable versions previously reported;
       │     └─ py-xgboost 3.2.0 conflicts with any installable versions previously reported;
       ├─ xgboost 3.3.0 would require
       │  └─ py-xgboost =* rapidsai_pyh*_0 but there are no viable options
       │     ├─ py-xgboost 3.1.3, which cannot be installed (as previously explained);
       │     ├─ py-xgboost 3.3.0 would require
       │     │  └─ libxgboost >=3.3.0,<3.3.1.0a0 * but there are no viable options
       │     │     ├─ libxgboost [3.2.0|3.3.0], which cannot be installed (as previously explained);
       │     │     ├─ libxgboost [3.2.0|3.3.0], which cannot be installed (as previously explained);
       │     │     └─ libxgboost 3.3.0 conflicts with any installable versions previously reported;
       │     ├─ py-xgboost [2.1.2|2.1.4|3.0.2|3.0.3] conflicts with any installable versions previously reported;
       │     └─ py-xgboost 3.1.3 conflicts with any installable versions previously reported;
       └─ xgboost [2.0.3|2.1.0|...|3.3.0] conflicts with any installable versions previously reported.

I'm not immediately sure how to handle that.

@rapids-bot
rapids-bot Bot merged commit 2cfb92e into NVIDIA:main Jul 17, 2026
258 of 263 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in cuDF Python Jul 17, 2026
abigalekim pushed a commit to abigalekim/cudf that referenced this pull request Jul 20, 2026
@wence-
wence- deleted the wence/fix/missed-version-bump branch July 21, 2026 09:14
@coderabbitai coderabbitai Bot mentioned this pull request Jul 21, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working cudf-polars Issues specific to cudf-polars non-breaking Non-breaking change Python Affects Python cuDF API.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants