Skip to content

Update to 26.10 - #23305

Merged
jolorunyomi merged 2 commits into
mainfrom
version-update-26.10
Jul 16, 2026
Merged

Update to 26.10#23305
jolorunyomi merged 2 commits into
mainfrom
version-update-26.10

Conversation

@jolorunyomi

Copy link
Copy Markdown
Contributor

This PR updates the repository to version 26.10.

This is part of the 26.08 release burndown process.

@jolorunyomi
jolorunyomi requested review from a team as code owners July 16, 2026 20:41
@jolorunyomi jolorunyomi added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jul 16, 2026
@github-actions github-actions Bot added Python Affects Python cuDF API. Java Affects Java cuDF API. cudf.pandas Issues specific to cudf.pandas cudf-polars Issues specific to cudf-polars pylibcudf Issues specific to the pylibcudf package labels Jul 16, 2026
@GPUtester GPUtester moved this to In Progress in cuDF Python Jul 16, 2026
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Released cuDF version 26.10.00, including updated Python and Java package versions.
    • Updated RAPIDS and CUDA-related package compatibility across supported environments.
  • Documentation
    • Updated Java build output documentation to reference the 26.10 artifact.
  • Chores
    • Refreshed development containers and automated build/test environments to use the 26.10 toolchain.
    • Updated pre-commit tooling and dependency specifications for the 26.10 release.

Walkthrough

This release update changes project versions from 26.08 to 26.10, updates RAPIDS dependency pins, refreshes Java and Python package metadata, and moves development containers and CI workflows to 26.10 images.

Changes

26.10 release alignment

Layer / File(s) Summary
Release metadata and dependency specifications
VERSION, dependencies.yaml, conda/environments/*, java/pom.xml, java/ci/README.md, .pre-commit-config.yaml
Release identifiers and conda dependency specifications are updated for 26.10, including Java artifact metadata and the mypy RMM dependency.
Python package dependency updates
python/*/pyproject.toml, python/cudf/cudf/VERSION, python/cudf/cudf_pandas_tests/.../dependencies.yaml
Python package and build-backend dependency constraints move selected RAPIDS components from 26.8 to 26.10; selected SPDX headers are updated.
Development containers and CI images
.devcontainer/*, .github/workflows/*
Devcontainer base images, CUDA/build features, and CI container images are updated to 26.10 tags.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • rapidsai/cudf#22517: Similar release bump updating devcontainer, CI image, and dependency version references.

Suggested labels: Python, libcudf, pylibcudf, cudf-polars, ci

Suggested reviewers: msarahan, pointkernel

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: bumping the repository to version 26.10.
Description check ✅ Passed The description is directly related to the changeset and matches the version bump.
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
  • Commit unit tests in branch version-update-26.10

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

@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: 3

🤖 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 `@conda/environments/all_cuda-129_arch-aarch64.yaml`:
- Line 49: Update the librapidsmpf dependency pin from 26.8.* to 26.10.* in this
environment and all matching CUDA environment files, keeping the existing
version constraint format. If it must remain on 26.8.*, document the intentional
compatibility reason instead.

In `@conda/environments/all_cuda-129_arch-x86_64.yaml`:
- Line 49: Update depends_on_librapidsmpf in dependencies.yaml from 26.8.* to
26.10.*, then regenerate all derived metadata. Ensure the regenerated values are
26.10.* in conda/environments/all_cuda-129_arch-x86_64.yaml:49-49,
conda/environments/all_cuda-133_arch-aarch64.yaml:49-49, and both occurrences in
python/libcudf_streaming/pyproject.toml:30-30 and 72-72.

In `@conda/environments/all_cuda-133_arch-x86_64.yaml`:
- Around line 46-51: Complete the 26.10 RAPIDS dependency bump by changing the
remaining 26.8.* pins to 26.10.*: update librapidsmpf in
conda/environments/all_cuda-133_arch-x86_64.yaml and both conda/CUDA-suffixed
entries in dependencies.yaml, libcudf-streaming-tests in dependencies.yaml, and
libcudf-streaming in python/cudf_streaming/pyproject.toml; document any
intentional exception instead.
🪄 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: 9b7fa90c-ec60-4e3f-992e-b01c46bc3f20

📥 Commits

Reviewing files that changed from the base of the PR and between 5912b8e and a286bb7.

📒 Files selected for processing (29)
  • .devcontainer/cuda12.9-conda/devcontainer.json
  • .devcontainer/cuda12.9-pip/devcontainer.json
  • .devcontainer/cuda13.3-conda/devcontainer.json
  • .devcontainer/cuda13.3-pip/devcontainer.json
  • .github/workflows/build.yaml
  • .github/workflows/compute-sanitizer-run.yaml
  • .github/workflows/pandas-tests.yaml
  • .github/workflows/pr.yaml
  • .github/workflows/test.yaml
  • .pre-commit-config.yaml
  • VERSION
  • 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
  • java/ci/README.md
  • java/pom.xml
  • python/cudf/cudf/VERSION
  • python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml
  • python/cudf/pyproject.toml
  • python/cudf_kafka/pyproject.toml
  • python/cudf_polars/pyproject.toml
  • python/cudf_streaming/pyproject.toml
  • python/custreamz/pyproject.toml
  • python/dask_cudf/pyproject.toml
  • python/libcudf/pyproject.toml
  • python/libcudf_streaming/pyproject.toml
  • python/pylibcudf/pyproject.toml

- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

set -euo pipefail

printf '\n== target file excerpt ==\n'
nl -ba conda/environments/all_cuda-129_arch-aarch64.yaml | sed -n '35,60p'

printf '\n== pins across conda/environments ==\n'
rg -n "librapidsmpf|rapidsmpf|librmm|libkvikio" conda/environments -g '*.yaml'

Repository: rapidsai/cudf

Length of output: 218


🏁 Script executed:

python3 - <<'PY'
from pathlib import Path
import re

target = Path("conda/environments/all_cuda-129_arch-aarch64.yaml")
lines = target.read_text().splitlines()
print("== target file excerpt ==")
for i in range(35, min(60, len(lines)) + 1):
    print(f"{i:4d}: {lines[i-1]}")

print("\n== pins across conda/environments ==")
for path in sorted(Path("conda/environments").glob("*.yaml")):
    text = path.read_text().splitlines()
    for i, line in enumerate(text, 1):
        if any(k in line for k in ("librapidsmpf", "rapidsmpf", "librmm", "libkvikio")):
            print(f"{path}:{i}: {line}")
PY

Repository: rapidsai/cudf

Length of output: 2215


Align librapidsmpf with the 26.10. release pins*

librapidsmpf is still pinned to 26.8.* while libkvikio, librmm, and rapidsmpf are on 26.10.*. Update this pin here and in the matching CUDA env files, or document why it intentionally lags behind.

🤖 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 `@conda/environments/all_cuda-129_arch-aarch64.yaml` at line 49, Update the
librapidsmpf dependency pin from 26.8.* to 26.10.* in this environment and all
matching CUDA environment files, keeping the existing version constraint format.
If it must remain on 26.8.*, document the intentional compatibility reason
instead.

- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== Targeted file excerpts ==\n'
for f in conda/environments/all_cuda-129_arch-x86_64.yaml conda/environments/all_cuda-133_arch-aarch64.yaml python/libcudf_streaming/pyproject.toml; do
  echo "--- $f"
  nl -ba "$f" | sed -n '1,120p'
done

printf '\n== Search for librapidsmpf and 26.10 pins ==\n'
rg -n "librapidsmpf|26\.10\.\*|26\.8\.\*" conda python -S

printf '\n== Search for related package/version references ==\n'
rg -n "libcudf_streaming|librapidsmpf|rapidsmpf|26\.10|26\.8" -S .

Repository: rapidsai/cudf

Length of output: 274


🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo "No-op placeholder to trigger result retrieval."

Repository: rapidsai/cudf

Length of output: 198


🏁 Script executed:

#!/bin/bash
set -euo pipefail
nl -ba conda/environments/all_cuda-129_arch-x86_64.yaml | sed -n '40,60p'
echo '---'
nl -ba conda/environments/all_cuda-133_arch-aarch64.yaml | sed -n '40,60p'
echo '---'
nl -ba python/libcudf_streaming/pyproject.toml | sed -n '1,110p'
echo '---'
rg -n "librapidsmpf|26\.10\.\*|26\.8\.\*" conda python -S

Repository: rapidsai/cudf

Length of output: 191


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
for path in [
    Path("conda/environments/all_cuda-129_arch-x86_64.yaml"),
    Path("conda/environments/all_cuda-133_arch-aarch64.yaml"),
    Path("python/libcudf_streaming/pyproject.toml"),
]:
    print(f"== {path} ==")
    text = path.read_text()
    for i, line in enumerate(text.splitlines(), 1):
        if "librapidsmpf" in line or "26.10" in line or "26.8" in line:
            start = max(1, i-2)
            end = min(len(text.splitlines()), i+2)
            for j in range(start, end+1):
                print(f"{j:>4}: {text.splitlines()[j-1]}")
            print()
PY

Repository: rapidsai/cudf

Length of output: 3737


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
paths = [p for p in Path('.').rglob('*') if p.is_file()]
for p in paths:
    try:
        text = p.read_text()
    except Exception:
        continue
    if "librapidsmpf" in text or "rapidsmpf" in text or "26.10.*" in text or "26.8.*" in text:
        if p.name in {"dependencies.yaml", "dependencies.yml", "version.txt"} or "dependencies" in str(p):
            print(f"== {p} ==")
            for i, line in enumerate(text.splitlines(), 1):
                if "librapidsmpf" in line or "rapidsmpf" in line or "26.10.*" in line or "26.8.*" in line:
                    print(f"{i:>4}: {line}")
            print()
PY

Repository: rapidsai/cudf

Length of output: 3604


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path

for path in [
    Path("conda/environments/all_cuda-129_arch-x86_64.yaml"),
    Path("conda/environments/all_cuda-133_arch-aarch64.yaml"),
    Path("python/libcudf_streaming/pyproject.toml"),
    Path("dependencies.yaml"),
]:
    print(f"== {path} ==")
    text = path.read_text().splitlines()
    for i, line in enumerate(text[:20], 1):
        print(f"{i:>4}: {line}")
    print()
PY

Repository: rapidsai/cudf

Length of output: 2998


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path

path = Path("dependencies.yaml")
lines = path.read_text().splitlines()
targets = [1523, 1552, 1009]
for target in targets:
    print(f"== {path} around {target} ==")
    for i in range(max(1, target-6), min(len(lines), target+10)+1):
        print(f"{i:>4}: {lines[i-1]}")
    print()
PY

Repository: rapidsai/cudf

Length of output: 2260


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path

for path in [
    Path("conda/environments/all_cuda-129_arch-x86_64.yaml"),
    Path("conda/environments/all_cuda-133_arch-aarch64.yaml"),
    Path("dependencies.yaml"),
]:
    print(f"== {path} head ==")
    lines = path.read_text().splitlines()
    for i, line in enumerate(lines[:25], 1):
        print(f"{i:>4}: {line}")
    print()
PY

Repository: rapidsai/cudf

Length of output: 2476


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path

path = Path("dependencies.yaml")
lines = path.read_text().splitlines()
for target in [1006, 1498, 1523, 1552]:
    print(f"== around line {target} ==")
    for i in range(max(1, target-4), min(len(lines), target+14)+1):
        print(f"{i:>4}: {lines[i-1]}")
    print()
PY

Repository: rapidsai/cudf

Length of output: 3183


Update depends_on_librapidsmpf in dependencies.yaml to 26.10.* and regenerate the derived files. The generated conda envs and python/libcudf_streaming/pyproject.toml still inherit librapidsmpf==26.8.*, so the release metadata is out of sync with the rest of the 26.10.* set.

📍 Affects 3 files
  • conda/environments/all_cuda-129_arch-x86_64.yaml#L49-L49 (this comment)
  • conda/environments/all_cuda-133_arch-aarch64.yaml#L49-L49
  • python/libcudf_streaming/pyproject.toml#L30-L30
  • python/libcudf_streaming/pyproject.toml#L72-L72
🤖 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 `@conda/environments/all_cuda-129_arch-x86_64.yaml` at line 49, Update
depends_on_librapidsmpf in dependencies.yaml from 26.8.* to 26.10.*, then
regenerate all derived metadata. Ensure the regenerated values are 26.10.* in
conda/environments/all_cuda-129_arch-x86_64.yaml:49-49,
conda/environments/all_cuda-133_arch-aarch64.yaml:49-49, and both occurrences in
python/libcudf_streaming/pyproject.toml:30-30 and 72-72.

Comment on lines +46 to +51
- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0
- librdkafka<2.15.0a0
- librmm==26.8.*,>=0.0.0a0
- librmm==26.10.*,>=0.0.0a0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== file presence ==\n'
git ls-files 'conda/environments/all_cuda-133_arch-x86_64.yaml' 'dependencies.yaml' 'python/cudf_streaming/pyproject.toml'

printf '\n== relevant snippets ==\n'
for f in conda/environments/all_cuda-133_arch-x86_64.yaml dependencies.yaml python/cudf_streaming/pyproject.toml; do
  echo "--- $f ---"
  nl -ba "$f" | sed -n '1,220p' | rg -n 'librapidsmpf|libcudf-streaming|libcudf-streaming-tests|rapidsmpf|26\.8|26\.10|26\.9'
done

printf '\n== broader searches for these package pins ==\n'
rg -n 'librapidsmpf==26\.8|librapidsmpf==26\.10|rapidsmpf==26\.8|rapidsmpf==26\.10|libcudf-streaming-tests==26\.8|libcudf-streaming-tests==26\.10|libcudf-streaming==26\.8|libcudf-streaming==26\.10' conda dependencies.yaml python -g '!**/.git/**'

printf '\n== codespell (if available) on the cited files ==\n'
if command -v codespell >/dev/null 2>&1; then
  codespell conda/environments/all_cuda-133_arch-x86_64.yaml dependencies.yaml python/cudf_streaming/pyproject.toml || true
else
  echo "codespell not installed"
fi

Repository: rapidsai/cudf

Length of output: 395


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path

files = [
    "conda/environments/all_cuda-133_arch-x86_64.yaml",
    "dependencies.yaml",
    "python/cudf_streaming/pyproject.toml",
]
targets = {
    "conda/environments/all_cuda-133_arch-x86_64.yaml": (38, 60),
    "dependencies.yaml": (995, 1012),
    "dependencies.yaml#2": (1490, 1550),
    "python/cudf_streaming/pyproject.toml": (1, 40),
}
for key, (start, end) in targets.items():
    file = key.split("#", 1)[0]
    print(f"\n--- {key} ({start}-{end}) ---")
    lines = Path(file).read_text().splitlines()
    for i in range(start, min(end, len(lines)) + 1):
        print(f"{i:4d}: {lines[i-1]}")
PY

printf '\n== package/version search ==\n'
rg -n 'librapidsmpf|libcudf-streaming-tests|libcudf-streaming|rapidsmpf|26\.8\.\*|26\.10\.\*' \
  conda/environments/all_cuda-133_arch-x86_64.yaml dependencies.yaml python/cudf_streaming/pyproject.toml

printf '\n== codespell (if available) ==\n'
if command -v codespell >/dev/null 2>&1; then
  codespell conda/environments/all_cuda-133_arch-x86_64.yaml dependencies.yaml python/cudf_streaming/pyproject.toml || true
else
  echo "codespell not installed"
fi

Repository: rapidsai/cudf

Length of output: 11435


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path

targets = {
    "conda/environments/all_cuda-133_arch-x86_64.yaml": (38, 60),
    "dependencies.yaml": (995, 1012),
    "dependencies.yaml#2": (1490, 1550),
    "python/cudf_streaming/pyproject.toml": (1, 40),
}
for key, (start, end) in targets.items():
    file = key.split("#", 1)[0]
    print(f"\n--- {key} ({start}-{end}) ---")
    lines = Path(file).read_text().splitlines()
    for i in range(start, min(end, len(lines)) + 1):
        print(f"{i:4d}: {lines[i-1]}")
PY

printf '\n== package/version search ==\n'
rg -n 'librapidsmpf|libcudf-streaming-tests|libcudf-streaming|rapidsmpf|26\.8\.\*|26\.10\.\*' \
  conda/environments/all_cuda-133_arch-x86_64.yaml dependencies.yaml python/cudf_streaming/pyproject.toml

printf '\n== codespell (if available) ==\n'
if command -v codespell >/dev/null 2>&1; then
  codespell conda/environments/all_cuda-133_arch-x86_64.yaml dependencies.yaml python/cudf_streaming/pyproject.toml || true
else
  echo "codespell not installed"
fi

Repository: rapidsai/cudf

Length of output: 11435


Finish the 26.10 dependency bump.

A few RAPIDS pins are still on 26.8.*, which can leave generated envs and builds mixing release series:

  • conda/environments/all_cuda-133_arch-x86_64.yaml#L46-L51: librapidsmpf is still 26.8.*.
  • dependencies.yaml#L1006-L1009: libcudf-streaming-tests is still 26.8.*.
  • dependencies.yaml#L1523-L1544: librapidsmpf is still 26.8.* in the conda and CUDA-suffixed entries.
  • python/cudf_streaming/pyproject.toml#L21-L22: libcudf-streaming is still 26.8.*.

Update these pins to 26.10.*, or document any intentional exception.

📍 Affects 3 files
  • conda/environments/all_cuda-133_arch-x86_64.yaml#L46-L51 (this comment)
  • dependencies.yaml#L1003-L1008
  • dependencies.yaml#L1499-L1519
  • python/cudf_streaming/pyproject.toml#L23-L25
🤖 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 `@conda/environments/all_cuda-133_arch-x86_64.yaml` around lines 46 - 51,
Complete the 26.10 RAPIDS dependency bump by changing the remaining 26.8.* pins
to 26.10.*: update librapidsmpf in
conda/environments/all_cuda-133_arch-x86_64.yaml and both conda/CUDA-suffixed
entries in dependencies.yaml, libcudf-streaming-tests in dependencies.yaml, and
libcudf-streaming in python/cudf_streaming/pyproject.toml; document any
intentional exception instead.

@TomAugspurger

Copy link
Copy Markdown
Contributor

@jolorunyomi
jolorunyomi merged commit 08bd466 into main Jul 16, 2026
14 of 22 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in cuDF Python Jul 16, 2026
abigalekim pushed a commit to abigalekim/cudf that referenced this pull request Jul 20, 2026
This PR updates the repository to version 26.10.

This is part of the 26.08 release burndown process.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cudf.pandas Issues specific to cudf.pandas cudf-polars Issues specific to cudf-polars improvement Improvement / enhancement to an existing function Java Affects Java cuDF API. non-breaking Non-breaking change pylibcudf Issues specific to the pylibcudf package Python Affects Python cuDF API.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants