diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index 84620d9b12ea..71bd3873d456 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -72,7 +72,7 @@ dependencies: - odfpy - openpyxl - packaging -- pandas>=3.0.0,<3.1.0 +- pandas>=3.0.0,<3.0.4a0 - pandoc - polars>=1.35,<1.42 - pre-commit diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index 618dad2442a7..5bf990d78f91 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -72,7 +72,7 @@ dependencies: - odfpy - openpyxl - packaging -- pandas>=3.0.0,<3.1.0 +- pandas>=3.0.0,<3.0.4a0 - pandoc - polars>=1.35,<1.42 - pre-commit diff --git a/conda/environments/all_cuda-133_arch-aarch64.yaml b/conda/environments/all_cuda-133_arch-aarch64.yaml index 0c247e6b10a1..ae7839c8303d 100644 --- a/conda/environments/all_cuda-133_arch-aarch64.yaml +++ b/conda/environments/all_cuda-133_arch-aarch64.yaml @@ -72,7 +72,7 @@ dependencies: - odfpy - openpyxl - packaging -- pandas>=3.0.0,<3.1.0 +- pandas>=3.0.0,<3.0.4a0 - pandoc - polars>=1.35,<1.42 - pre-commit diff --git a/conda/environments/all_cuda-133_arch-x86_64.yaml b/conda/environments/all_cuda-133_arch-x86_64.yaml index 94cd3772c26d..5ae487fb98d8 100644 --- a/conda/environments/all_cuda-133_arch-x86_64.yaml +++ b/conda/environments/all_cuda-133_arch-x86_64.yaml @@ -72,7 +72,7 @@ dependencies: - odfpy - openpyxl - packaging -- pandas>=3.0.0,<3.1.0 +- pandas>=3.0.0,<3.0.4a0 - pandoc - polars>=1.35,<1.42 - pre-commit diff --git a/dependencies.yaml b/dependencies.yaml index 01113fdba333..bd99c363541a 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -914,7 +914,11 @@ dependencies: - output_types: [conda, requirements, pyproject] packages: - fsspec>=0.6.0 - - &pandas pandas>=3.0.0,<3.1.0 + # pandas 3.0.4 segfaults constructing pd.Timedelta on Python 3.14, + # which breaks `import cudf` (https://github.com/pandas-dev/pandas/issues/66086). + # Cap below 3.0.4 (rather than just excluding it) until a fixed + # release is confirmed upstream, then raise the bound. + - &pandas pandas>=3.0.0,<3.0.4a0 run_pylibcudf: common: - output_types: [conda, requirements, pyproject] @@ -1033,7 +1037,7 @@ dependencies: - matrix: {dependencies: "oldest"} packages: - numba==0.60.0 - - pandas==3.0.* + - pandas==3.0.*,<3.0.4a0 - numba-cuda==0.22.2 - matrix: {dependencies: "latest"} packages: @@ -1162,6 +1166,11 @@ dependencies: - pytest-httpserver - pytest-timeout - zstandard + # The polars test suite constructs pandas objects for interop and + # dask-cuda pulls pandas in transitively (unbounded), so constrain it + # here to exclude the 3.0.4 release that segfaults on pd.Timedelta + # (https://github.com/pandas-dev/pandas/issues/66086). + - *pandas test_python_narwhals: common: - output_types: [conda, requirements, pyproject] @@ -1679,7 +1688,7 @@ dependencies: pandas_compat_version: "3.0" packages: - numpy>=1.26,<2.0a0 - - pandas==3.0.* + - pandas==3.0.*,<3.0.4a0 - matrix: packages: - output_types: requirements diff --git a/python/cudf/pyproject.toml b/python/cudf/pyproject.toml index c18fc6763a00..1b75ab0fcd28 100644 --- a/python/cudf/pyproject.toml +++ b/python/cudf/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "numpy>=1.26,<3.0", "nvtx>=0.2.1", "packaging", - "pandas>=3.0.0,<3.1.0", + "pandas>=3.0.0,<3.0.4a0", "pyarrow>=19.0.0,<24", "pylibcudf==26.8.*,>=0.0.0a0", "rich", diff --git a/python/cudf_polars/pyproject.toml b/python/cudf_polars/pyproject.toml index b4d8662c62db..3f9f6cbff5e9 100644 --- a/python/cudf_polars/pyproject.toml +++ b/python/cudf_polars/pyproject.toml @@ -44,6 +44,7 @@ classifiers = [ [project.optional-dependencies] test = [ "dask-cuda==26.8.*,>=0.0.0a0", + "pandas>=3.0.0,<3.0.4a0", "pytest-cov", "pytest-httpserver", "pytest-timeout", diff --git a/python/dask_cudf/pyproject.toml b/python/dask_cudf/pyproject.toml index 624a6abce7ad..65338270f1b9 100644 --- a/python/dask_cudf/pyproject.toml +++ b/python/dask_cudf/pyproject.toml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 [build-system] @@ -26,7 +26,7 @@ dependencies = [ "fsspec>=0.6.0", "numpy>=1.26,<3.0", "nvidia-ml-py>=12", - "pandas>=3.0.0,<3.1.0", + "pandas>=3.0.0,<3.0.4a0", "rapids-dask-dependency==26.8.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ diff --git a/python/pylibcudf/pyproject.toml b/python/pylibcudf/pyproject.toml index 46a8a62e1721..f5f89e0156ba 100644 --- a/python/pylibcudf/pyproject.toml +++ b/python/pylibcudf/pyproject.toml @@ -43,7 +43,7 @@ test = [ "nanoarrow", "numba-cuda>=0.22.2", "numba>=0.60.0,<0.65.0", - "pandas>=3.0.0,<3.1.0", + "pandas>=3.0.0,<3.0.4a0", "pyarrow>=19.0.0,<24", "pytest-cov", "pytest-xdist",