Repository: rapidsai/cudf (language: python)

Issue:
[FEA] Add cudf-polars to test.yaml
We should test cudf-polars in the nightly tests.

We'd like to get 100% pass rate running polars test suite and stabilize our packaging before starting to do this, though.
cc @vyasr



Discussion / hints:
We should be able to do this now.

Fix patch:
diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml
index bc237cc73b0..694b11dbe1d 100644
--- a/.github/workflows/pr.yaml
+++ b/.github/workflows/pr.yaml
@@ -228,8 +228,6 @@ jobs:
       # This selects "ARCH=amd64 + the latest supported Python + CUDA".
       matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
       build_type: pull-request
-      # This always runs, but only fails if this PR touches code in
-      # pylibcudf or cudf_polars
       script: "ci/test_wheel_cudf_polars.sh"
   cudf-polars-polars-tests:
     needs: wheel-build-cudf-polars
@@ -239,8 +237,6 @@ jobs:
       # This selects "ARCH=amd64 + the latest supported Python + CUDA".
       matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
       build_type: pull-request
-      # This always runs, but only fails if this PR touches code in
-      # pylibcudf or cudf_polars
       script: "ci/test_cudf_polars_polars_tests.sh"
   wheel-build-dask-cudf:
     needs: wheel-build-cudf
diff --git a/ci/cpp_linters.sh b/ci/cpp_linters.sh
index a7c7255456f..286c7bfbc66 100755
--- a/ci/cpp_linters.sh
+++ b/ci/cpp_linters.sh
@@ -24,19 +24,6 @@ RAPIDS_VERSION_MAJOR_MINOR="$(rapids-version-major-minor)"
 
 source rapids-configure-sccache
 
-# TODO: For testing purposes, clone and build IWYU. We can switch to a release
-# once a clang 19-compatible version is available, which should be soon
-# (https://github.com/include-what-you-use/include-what-you-use/issues/1641).
-git clone --depth 1 https://github.com/include-what-you-use/include-what-you-use.git
-pushd include-what-you-use
-# IWYU's CMake build uses some Python scripts that assume that the cwd is
-# importable, so support that legacy behavior.
-export PYTHONPATH=${PWD}:${PYTHONPATH:-}
-cmake -S . -B build -GNinja --install-prefix=${CONDA_PREFIX}
-cmake --build build
-cmake --install build
-popd
-
 # Run the build via CMake, which will run clang-tidy when CUDF_STATIC_LINTERS is enabled.
 cmake -S cpp -B cpp/build -DCMAKE_BUILD_TYPE=Release -DCUDF_STATIC_LINTERS=ON -GNinja
 cmake --build cpp/build 2>&1 | python cpp/scripts/parse_iwyu_output.py
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index e237b0b2856..5a987ddcc44 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -214,10 +214,10 @@ function(enable_static_checkers target)
       # compile flags. To do this completely cleanly we should modify the flags on the target rather
       # than the global CUDF_CXX_FLAGS, but this solution is good enough for now since we never run
       # the linters on real builds.
-      foreach(_flag -Wno-missing-braces -Wno-absolute-value -Wunneeded-internal-declaration)
-        list(FIND CUDF_CXX_FLAGS "${flag}" _flag_index)
+      foreach(_flag -Wno-missing-braces -Wno-unneeded-internal-declaration)
+        list(FIND CUDF_CXX_FLAGS "${_flag}" _flag_index)
         if(_flag_index EQUAL -1)
-          list(APPEND CUDF_CXX_FLAGS ${flag})
+          list(APPEND CUDF_CXX_FLAGS ${_flag})
         endif()
       endforeach()
       set(CUDF_CXX_FLAGS
diff --git a/dependencies.yaml b/dependencies.yaml
index b5165f82d5f..85368be0877 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -585,14 +585,9 @@ dependencies:
     common:
       - output_types: conda
         packages:
-          - clang==19.1.0
-          - clang-tools==19.1.0
-          # TODO: These are build requirements for IWYU and can be replaced
-          # with IWYU itself once a conda package of IWYU supporting clang 19
-          # is available.
-          - clangdev==19.1.0
-          - llvm==19.1.0
-          - llvmdev==19.1.0
+          - clang==19.1.3
+          - clang-tools==19.1.3
+          - include-what-you-use==0.23.0
   docs:
     common:
       - output_types: [conda]


Test patch:
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index ad3f5940b94..a7f8c6ca0a9 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -55,7 +55,7 @@ jobs:
       # primary static consumers (Spark) are not in conda anyway.
       container_image: "rapidsai/ci-wheel:latest"
       run_script: "ci/configure_cpp_static.sh"
-  clang-tidy:
+  cpp-linters:
     secrets: inherit
     uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-24.12
     with:
@@ -149,3 +149,25 @@ jobs:
       container_image: "rapidsai/ci-conda:latest"
       run_script: |
         ci/cudf_pandas_scripts/third-party-integration/test.sh python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml
+  wheel-tests-cudf-polars:
+    secrets: inherit
+    uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12
+    with:
+      # This selects "ARCH=amd64 + the latest supported Python + CUDA".
+      matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
+      build_type: nightly
+      branch: ${{ inputs.branch }}
+      date: ${{ inputs.date }}
+      sha: ${{ inputs.sha }}
+      script: "ci/test_wheel_cudf_polars.sh"
+  cudf-polars-polars-tests:
+    secrets: inherit
+    uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12
+    with:
+      # This selects "ARCH=amd64 + the latest supported Python + CUDA".
+      matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
+      build_type: nightly
+      branch: ${{ inputs.branch }}
+      date: ${{ inputs.date }}
+      sha: ${{ inputs.sha }}
+      script: "ci/test_cudf_polars_polars_tests.sh"