Use rtcx from the librtcx repository - #23137
Conversation
2ad9d91 to
6c57281
Compare
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe PR switches cuDF to fetch rtcx via CPM, updates CMake wiring to use the fetched dependency layout, and removes the in-tree rtcx implementation body. Changeslibrtcx CPM migration
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 `@cpp/cmake/thirdparty/get_rtcx.cmake`:
- Around line 13-14: The rtcx dependency is still pinned to a personal fork in
the get_rtcx.cmake fetch logic. Update the GIT_REPOSITORY used by the rtcx
download step to the official rapidsai/librtcx source and replace the raw SHA
pin with the appropriate maintained tag or release reference, keeping the change
localized to the get_rtcx.cmake configuration.
- Around line 19-23: The rtcx setup only includes embed.cmake when rtcx is added
from source, so the embed helper functions are missing when rtcx is found via
find_package. Update get_rtcx.cmake so embed.cmake is included for the
installed-package path as well, using the rtcx_SOURCE_DIR/rtcx_DIR-related
symbols in that logic, and ensure the rtcx_add_embed and rtcx_embed_* functions
are available regardless of whether rtcx comes from CPM or an installed package.
🪄 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: 6656af1d-edec-411b-a92e-79ecf61f1141
📒 Files selected for processing (21)
cpp/CMakeLists.txtcpp/cmake/thirdparty/get_rtcx.cmakecpp/librtcx/CMakeLists.txtcpp/librtcx/CONTRIBUTING.mdcpp/librtcx/LICENSEcpp/librtcx/RAPIDS_BRANCHcpp/librtcx/README.mdcpp/librtcx/VERSIONcpp/librtcx/cmake/RAPIDS.cmakecpp/librtcx/cmake/rapids_config.cmakecpp/librtcx/embed.cmakecpp/librtcx/embed.hppcpp/librtcx/embed.in.cppcpp/librtcx/hash.cppcpp/librtcx/hash.hppcpp/librtcx/libcxx/cassertcpp/librtcx/libcxx/climitscpp/librtcx/libcxx/cstddefcpp/librtcx/libcxx/cstdintcpp/librtcx/rtcx.cppcpp/librtcx/rtcx.hpp
💤 Files with no reviewable changes (19)
- cpp/librtcx/RAPIDS_BRANCH
- cpp/librtcx/CONTRIBUTING.md
- cpp/librtcx/libcxx/cassert
- cpp/librtcx/libcxx/cstddef
- cpp/librtcx/libcxx/cstdint
- cpp/librtcx/hash.hpp
- cpp/librtcx/cmake/RAPIDS.cmake
- cpp/librtcx/embed.in.cpp
- cpp/librtcx/VERSION
- cpp/librtcx/README.md
- cpp/librtcx/embed.cmake
- cpp/librtcx/LICENSE
- cpp/librtcx/CMakeLists.txt
- cpp/librtcx/hash.cpp
- cpp/librtcx/libcxx/climits
- cpp/librtcx/embed.hpp
- cpp/librtcx/cmake/rapids_config.cmake
- cpp/librtcx/rtcx.hpp
- cpp/librtcx/rtcx.cpp
rtcx is statically linked into libcudf and should not appear in the installed CMake export set. Wrap it with BUILD_LOCAL_INTERFACE (matching the xxhash pattern) so downstream consumers do not need to find rtcx separately. Also remove the stale include path to the now-deleted bundled cpp/librtcx/ directory; headers are provided by the rtcx::rtcx target.
Three changes: 1. Set RTCX_INSTALL=ON before fetching rtcx so that librtcx's install targets are unconditionally registered (no EXCLUDE_FROM_ALL). This satisfies CMake's install(EXPORT) validation which requires all link dependencies to be in some export set. 2. Add rapids_export_find_package_root(BUILD rtcx ...) so the build-tree export set can locate the rtcx package. 3. Add rtcx to the static-deps export list so that static libcudf consumers (e.g. spark-rapids-jni) get find_dependency(rtcx) in the installed cudf config and can link librtcx.a. 4. Revert BUILD_LOCAL_INTERFACE on rtcx::rtcx since the target must remain visible to the install export set.
2bd8069 to
2720c1b
Compare
The new commit defers zstd/xxhash target checks from embed.cmake include time to rtcx_embed() call time, so consumers that only link librtcx (like spark-rapids-jni) don't need these targets available.
|
There are going to be a couple of major changes in the librtcx repository in quick succession after it's created, and we want to pin to a commit rather than a tag for now while we're still at such a raw alpha stage, so I'm going to use this PR to step through the first few quick changes before we merge and actually migrate away from the in-source librtcx. |
|
https://github.com/rapidsai/cudf/actions/runs/28900128150?pr=23137 is the passing run verifying rapidsai/librtcx#2. |
|
https://github.com/rapidsai/cudf/actions/runs/28960562453?pr=23137 is the passing test verifying rapidsai/librtcx#3 |
The cuVS upstreaming (rapidsai/librtcx#8) added a raft dependency that breaks the cmake-tests export consumer. Pin to efad266 which is the last commit before that addition.
The previous commit used an incorrect hash. Use the actual full SHA for the 'Add and apply pre-commit hooks (#6)' commit.
|
/merge |
Description
This PR removes librtcx code from libcudf and repoints it to use the new librtcx repository.
Checklist