Remove libclang pin from clang dependency group#2263
Open
vyasr wants to merge 1 commit into
Open
Conversation
The explicit libclang==20.1.8 pin causes the conda solver to hang when combined with matplotlib (which pulls in Qt6, which requires libclang13>=22.1.0). The solver cannot efficiently resolve the conflict between the pinned older libclang and Qt6's newer requirement, leading to effectively infinite solve times in environments with many packages (such as the combined RAPIDS devcontainer environment). The libclang package is not needed in the clang dependency group: - clang and clang-tools do not depend on libclang - The Rust bindgen workflow (the original reason libclang was added) uses the rust file key which does not include the clang group - bindgen finds libclang.so at runtime from whatever version is available in the environment (provided transitively by Qt/matplotlib) Other RAPIDS repos (cudf, raft, rmm) only pin clang and clang-tools without libclang and do not experience this issue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR removes the
libclang==20.1.8pin from theclangdependency group independencies.yaml.Problem
The explicit
libclang==20.1.8pin causes the conda solver to hang when creating the combined RAPIDS devcontainer environment. Specifically, when cuvs is included alongside cudf (which depends onmatplotlib<3.11), the solver cannot efficiently resolve the conflict between:libclang==20.1.8→ provideslibclang13 20.1.8matplotlib<3.11→ pulls inqt6-main→ requireslibclang13>=22.1.0While the environment is technically solvable (older Qt builds accept
libclang13>=20.1.8), the search space created by the 29 builds oflibclang 20.1.8× multiple Qt versions × CUDA packages × rapidsai channel packages causes the solver to hang indefinitely.Why this is safe to remove
clangandclang-toolsdo not depend onlibclang. Theclangcompiler depends onlibclang-cpp(the C++ API), which is a separate package fromlibclang(the C API wrapper).The Rust bindgen workflow doesn't use the
clangdependency group. Therustfile key does not include theclanggroup — bindgen findslibclang.soat runtime from whatever version is available in the environment (provided transitively via Qt/matplotlib's dependency onlibclang13).Other RAPIDS repos don't pin
libclang. cudf, raft, and rmm only pinclangandclang-toolswithoutlibclangand do not experience this issue.Historical context:
libclangwas originally added to therustdependency group for bindgen support, then moved into theclanggroup during a version bump refactor. Therustfile key no longer includes theclanggroup, making this entry vestigial.