Enable sccache preprocessor-cache mode for wheel builds - #1826
Enable sccache preprocessor-cache mode for wheel builds#1826ramakrishnap-nv wants to merge 1 commit into
Conversation
Wheel builds run in a fresh container path on every CI run, which defeats sccache's default direct-mode cache key (it hashes the literal compiler invocation, including include paths). Preprocessor-cache mode hashes the preprocessed source instead, so it survives that. sccache itself was already configured here via rapids-configure-sccache (shared with the conda build), but the preprocessor-cache env vars were never set. cudf's and rmm's wheel builds set the same two vars in the same place; rapids-configure-sccache (gha-tools) does not set them itself, so they're expected to be opt-in per repo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughChangesWheel build caching
Estimated code review effort: 1 (Trivial) | ~5 minutes Merge Risk: ⚪ Minimal · up to This change enables sccache preprocessor-cache mode for wheel builds, with no actionable merge-blocking risk remaining beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files. ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
CI Test Summary✅ All 13 test job(s) passed. (2 skipped) |
Summary
ci/build_wheel.shalready sourcesrapids-configure-sccache(shared withci/build_cpp.sh), so sccache itself was already active forwheel-build-libcuopt's C++ compile. What was missing:SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE/SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX.wheel-build-libcuopt's situation. Preprocessor-cache mode keys on the preprocessed source content instead, so path differences don't cause cache misses.ci/build_wheel.shand rmm'sci/build_wheel_cpp.shboth set exactly these two vars in the same place.rapids-configure-sccache(gha-tools) does not set them itself, so it's expected to be opt-in per repo.ci/build_wheel.shis shared acrosslibcuopt/cuopt/cuopt_server/cuopt_sh_clientwheel builds;package_nameis always passed as the first positional arg by all four callers, so this is safe. It's a no-op for the pure-Python packages (cuopt,cuopt_server,cuopt_sh_client) since sccache is never invoked for them anyway — onlylibcuopt's C++ compile is affected.Test plan
wheel-build-libcuoptCI passessccache --show-adv-statsoutput (already printed at the end of the script) across two PR runs touching the same C++ source, to confirm cache hit rate improves versus the current baseline🤖 Generated with Claude Code