Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion ci/release/update-version.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2020-2026, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2020-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
########################
# cuDF Version Updater #
Expand Down Expand Up @@ -73,9 +73,12 @@ NEXT_MINOR=$(echo "$NEXT_FULL_TAG" | awk '{split($0, a, "."); print a[2]}')
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


# Need to distutils-normalize the versions for some use cases
NEXT_SHORT_TAG_PEP440=$(python -c "from packaging.version import Version; print(Version('${NEXT_SHORT_TAG}'))")
PATCH_PEP440=$(python -c "from packaging.version import Version; print(Version('${NEXT_PATCH}'))")
NEXT_UCXX_SHORT_TAG_PEP440=$(python -c "from packaging.version import Version; print(Version('${NEXT_UCXX_TAG}'))")

# Set branch references based on RUN_CONTEXT
if [[ "${RUN_CONTEXT}" == "main" ]]; then
Expand Down Expand Up @@ -144,6 +147,7 @@ echo "${RAPIDS_BRANCH_NAME}" > RAPIDS_BRANCH
DEPENDENCIES=(
cudf
cudf-polars
cudf-streaming
cudf_kafka
cugraph
cuml
Expand All @@ -153,15 +157,23 @@ DEPENDENCIES=(
kvikio
libcudf
libcudf-example
libcudf-streaming
libcudf-tests
libcudf_kafka
libkvikio
librapidsmpf
librmm
pylibcudf
rapids-dask-dependency
rapidsmpf
rmm
)

UCXX_DEPENDENCIES=(
libucxx
ucxx
)

for DEP in "${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\}\(\[.*\]\)\{0,1\}==/ s/==.*/==${NEXT_SHORT_TAG_PEP440}.*,>=0.0.0a0/g" "${FILE}"
Expand All @@ -171,6 +183,15 @@ for DEP in "${DEPENDENCIES[@]}"; do
done
done

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}"
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}"
done
done

# README.md update
sed_runner "s/version == ${CURRENT_SHORT_TAG}/version == ${NEXT_SHORT_TAG}/g" README.md
sed_runner "s/cudf=${CURRENT_SHORT_TAG}/cudf=${NEXT_SHORT_TAG}/g" README.md
Expand Down
6 changes: 3 additions & 3 deletions conda/environments/all_cuda-129_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ dependencies:
- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0
- librapidsmpf==26.10.*,>=0.0.0a0
- librdkafka<2.15.0a0
- librmm==26.10.*,>=0.0.0a0
- libucxx==0.51.*,>=0.0.0a0
- libucxx==0.52.*,>=0.0.0a0
- make
- matplotlib-base<3.11
- mmh3
Expand Down Expand Up @@ -112,7 +112,7 @@ dependencies:
- structlog
- sysroot_linux-aarch64==2.28
- typing_extensions>=4.0.0
- ucxx==0.51.*,>=0.0.0a0
- ucxx==0.52.*,>=0.0.0a0
- xlrd
- xlsxwriter
- zlib>=1.2.13
Expand Down
6 changes: 3 additions & 3 deletions conda/environments/all_cuda-129_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ dependencies:
- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0
- librapidsmpf==26.10.*,>=0.0.0a0
- librdkafka<2.15.0a0
- librmm==26.10.*,>=0.0.0a0
- libucxx==0.51.*,>=0.0.0a0
- libucxx==0.52.*,>=0.0.0a0
- make
- matplotlib-base<3.11
- mmh3
Expand Down Expand Up @@ -112,7 +112,7 @@ dependencies:
- structlog
- sysroot_linux-64==2.28
- typing_extensions>=4.0.0
- ucxx==0.51.*,>=0.0.0a0
- ucxx==0.52.*,>=0.0.0a0
- xlrd
- xlsxwriter
- zlib>=1.2.13
Expand Down
6 changes: 3 additions & 3 deletions conda/environments/all_cuda-133_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ dependencies:
- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0
- librapidsmpf==26.10.*,>=0.0.0a0
- librdkafka<2.15.0a0
- librmm==26.10.*,>=0.0.0a0
- libucxx==0.51.*,>=0.0.0a0
- libucxx==0.52.*,>=0.0.0a0
- make
- matplotlib-base<3.11
- mmh3
Expand Down Expand Up @@ -112,7 +112,7 @@ dependencies:
- structlog
- sysroot_linux-aarch64==2.28
- typing_extensions>=4.0.0
- ucxx==0.51.*,>=0.0.0a0
- ucxx==0.52.*,>=0.0.0a0
- xlrd
- xlsxwriter
- zlib>=1.2.13
Expand Down
6 changes: 3 additions & 3 deletions conda/environments/all_cuda-133_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ dependencies:
- libkvikio==26.10.*,>=0.0.0a0
- libnvcomp-dev==5.2.0.10
- libnvjitlink-dev
- librapidsmpf==26.8.*,>=0.0.0a0
- librapidsmpf==26.10.*,>=0.0.0a0
- librdkafka<2.15.0a0
- librmm==26.10.*,>=0.0.0a0
- libucxx==0.51.*,>=0.0.0a0
- libucxx==0.52.*,>=0.0.0a0
- make
- matplotlib-base<3.11
- mmh3
Expand Down Expand Up @@ -112,7 +112,7 @@ dependencies:
- structlog
- sysroot_linux-64==2.28
- typing_extensions>=4.0.0
- ucxx==0.51.*,>=0.0.0a0
- ucxx==0.52.*,>=0.0.0a0
- xlrd
- xlsxwriter
- zlib>=1.2.13
Expand Down
32 changes: 16 additions & 16 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,7 @@ dependencies:
- libcudf-example==26.10.*,>=0.0.0a0
- libcudf_kafka==26.10.*,>=0.0.0a0
- libcudf-tests==26.10.*,>=0.0.0a0
- libcudf-streaming-tests==26.8.*,>=0.0.0a0
- libcudf-streaming-tests==26.10.*,>=0.0.0a0
test_java:
common:
- output_types: conda
Expand Down Expand Up @@ -1449,7 +1449,7 @@ dependencies:
common:
- output_types: conda
packages:
- &libucxx_unsuffixed libucxx==0.51.*,>=0.0.0a0
- &libucxx_unsuffixed libucxx==0.52.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -1461,20 +1461,20 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- libucxx-cu12==0.51.*,>=0.0.0a0
- libucxx-cu12==0.52.*,>=0.0.0a0
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- libucxx-cu13==0.51.*,>=0.0.0a0
- libucxx-cu13==0.52.*,>=0.0.0a0
- matrix:
packages:
- *libucxx_unsuffixed
depends_on_ucxx:
common:
- output_types: conda
packages:
- &ucxx_unsuffixed ucxx==0.51.*,>=0.0.0a0
- &ucxx_unsuffixed ucxx==0.52.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -1486,12 +1486,12 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- ucxx-cu12==0.51.*,>=0.0.0a0
- ucxx-cu12==0.52.*,>=0.0.0a0
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- ucxx-cu13==0.51.*,>=0.0.0a0
- ucxx-cu13==0.52.*,>=0.0.0a0
- matrix:
packages:
- *ucxx_unsuffixed
Expand Down Expand Up @@ -1524,7 +1524,7 @@ dependencies:
common:
- output_types: conda
packages:
- &librapidsmpf_unsuffixed librapidsmpf==26.8.*,>=0.0.0a0
- &librapidsmpf_unsuffixed librapidsmpf==26.10.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -1536,20 +1536,20 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- librapidsmpf-cu12==26.8.*,>=0.0.0a0
- librapidsmpf-cu12==26.10.*,>=0.0.0a0
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- librapidsmpf-cu13==26.8.*,>=0.0.0a0
- librapidsmpf-cu13==26.10.*,>=0.0.0a0
- matrix:
packages:
- *librapidsmpf_unsuffixed
depends_on_libcudf_streaming:
common:
- output_types: conda
packages:
- &libcudf_streaming_unsuffixed libcudf-streaming==26.8.*,>=0.0.0a0
- &libcudf_streaming_unsuffixed libcudf-streaming==26.10.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -1561,20 +1561,20 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- libcudf-streaming-cu12==26.8.*,>=0.0.0a0
- libcudf-streaming-cu12==26.10.*,>=0.0.0a0
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- libcudf-streaming-cu13==26.8.*,>=0.0.0a0
- libcudf-streaming-cu13==26.10.*,>=0.0.0a0
- matrix:
packages:
- *libcudf_streaming_unsuffixed
depends_on_cudf_streaming:
common:
- output_types: conda
packages:
- &cudf_streaming_unsuffixed cudf-streaming==26.8.*,>=0.0.0a0
- &cudf_streaming_unsuffixed cudf-streaming==26.10.*,>=0.0.0a0
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -1586,12 +1586,12 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cudf-streaming-cu12==26.8.*,>=0.0.0a0
- cudf-streaming-cu12==26.10.*,>=0.0.0a0
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- cudf-streaming-cu13==26.8.*,>=0.0.0a0
- cudf-streaming-cu13==26.10.*,>=0.0.0a0
- matrix:
packages:
- *cudf_streaming_unsuffixed
Expand Down
2 changes: 1 addition & 1 deletion python/cudf_polars/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ license-files = ["LICENSE"]
requires-python = ">=3.11"
dependencies = [
"cuda-bindings>=13.0.1,<14.0",
"cudf-streaming==26.8.*,>=0.0.0a0",
"cudf-streaming==26.10.*,>=0.0.0a0",
"nvidia-ml-py>=12",
"packaging",
"polars>=1.35,<1.43",
Expand Down
8 changes: 0 additions & 8 deletions python/cudf_polars/tests/streaming/test_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
assert_gpu_result_equal,
)
from cudf_polars.testing.engine_utils import warns_on_spmd
from cudf_polars.utils.versions import POLARS_VERSION_LT_141


@pytest.fixture
Expand Down Expand Up @@ -181,13 +180,6 @@ def test_select_mean_with_decimals(engine):
assert_gpu_result_equal(q, engine=engine)


@pytest.mark.xfail(
condition=not POLARS_VERSION_LT_141,
reason=(
"len() row count lost in zero-column streaming chunks "
"(https://github.com/rapidsai/cudf/issues/21428)"
),
)
def test_select_with_len(streaming_engine_factory):
engine = streaming_engine_factory(
StreamingOptions(max_rows_per_partition=3, fallback_mode="warn"),
Expand Down
10 changes: 5 additions & 5 deletions python/cudf_streaming/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ authors = [
license = "Apache-2.0"
requires-python = ">=3.11"
dependencies = [
"libcudf-streaming==26.8.*,>=0.0.0a0",
"libcudf-streaming==26.10.*,>=0.0.0a0",
"pylibcudf==26.10.*,>=0.0.0a0",
"rapidsmpf==26.10.*,>=0.0.0a0",
"rmm==26.10.*,>=0.0.0a0",
Expand Down Expand Up @@ -77,15 +77,15 @@ matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"
requires = [
"cmake>=4.0",
"cython>=3.2.2,<3.3.0a0",
"libcudf-streaming==26.8.*,>=0.0.0a0",
"librapidsmpf==26.8.*,>=0.0.0a0",
"libcudf-streaming==26.10.*,>=0.0.0a0",
"librapidsmpf==26.10.*,>=0.0.0a0",
"librmm==26.10.*,>=0.0.0a0",
"libucxx==0.51.*,>=0.0.0a0",
"libucxx==0.52.*,>=0.0.0a0",
"ninja",
"pylibcudf==26.10.*,>=0.0.0a0",
"rapidsmpf==26.10.*,>=0.0.0a0",
"rmm==26.10.*,>=0.0.0a0",
"ucxx==0.51.*,>=0.0.0a0",
"ucxx==0.52.*,>=0.0.0a0",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.

[tool.scikit-build]
Expand Down
6 changes: 3 additions & 3 deletions python/libcudf_streaming/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ classifiers = [
]
dependencies = [
"libcudf==26.10.*,>=0.0.0a0",
"librapidsmpf==26.8.*,>=0.0.0a0",
"librapidsmpf==26.10.*,>=0.0.0a0",
"librmm==26.10.*,>=0.0.0a0",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.

Expand Down Expand Up @@ -69,8 +69,8 @@ matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"
requires = [
"cmake>=4.0",
"libcudf==26.10.*,>=0.0.0a0",
"librapidsmpf==26.8.*,>=0.0.0a0",
"librapidsmpf==26.10.*,>=0.0.0a0",
"librmm==26.10.*,>=0.0.0a0",
"libucxx==0.51.*,>=0.0.0a0",
"libucxx==0.52.*,>=0.0.0a0",
"ninja",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
Loading