Skip to content

Commit 992347d

Browse files
authored
Add "devcontainers" dependency file key that excludes xgboost (#7006)
Unified conda devcontainers use the `all` file key to generate their dependency lists for each repository. Currently cuml includes `xgboost` in its `all` file key via the `test_python` dependency list. Unfortunately, this pulls in a conda dependency on `librmm` via `libxgboost`. This is problematic because we must build `librmm` from source in our unified devcontainers. It seems like `xgboost` is a soft test dependency. In this PR, I add a new dependency file key called `devcontainers` that excludes `xgboost`. Developer conda environments, CI workflows, and pip devcontainers are unaffected by this change. Conda devcontainers will now require the user to manually install `xgboost` in order to run tests that need it, and this is noted in `BUILD.md`. This is needed to solve the problems discussed in rapidsai/devcontainers#534 (comment). Once this is merged, I will push a change to rapidsai/devcontainers#536 to use the new `devcontainers` file key. Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Paul Taylor (https://github.com/trxcllnt) - James Lamb (https://github.com/jameslamb) - Simon Adorf (https://github.com/csadorf) URL: #7006
1 parent a009b7f commit 992347d

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

BUILD.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ If you want a list of the available Python tests:
9494
$ pytest cuML/tests --collect-only
9595
```
9696

97+
Note: To run tests requiring `xgboost` in conda devcontainers, users must install the `xgboost` conda package manually.
98+
See `dependencies.yaml` for more information.
99+
97100
### Manual Process
98101

99102
Once dependencies are present, follow the steps below:

dependencies.yaml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,33 @@ files:
2828
- py_version
2929
- rapids_build_backend
3030
- test_python
31+
- test_python_xgboost
32+
devcontainers:
33+
output: none
34+
includes:
35+
# "devcontainers" includes everything in "all", excluding test_python_xgboost
36+
- common_build
37+
- cuda
38+
- cuda_version
39+
- depends_on_cudf
40+
- depends_on_cuda_python
41+
- depends_on_cupy
42+
- depends_on_cuvs
43+
- depends_on_dask_cudf
44+
- depends_on_libcumlprims
45+
- depends_on_libcuvs
46+
- depends_on_libraft
47+
- depends_on_librmm
48+
- depends_on_pylibraft
49+
- depends_on_raft_dask
50+
- depends_on_rapids_logger
51+
- depends_on_rmm
52+
- docs
53+
- py_build_cuml
54+
- py_run_cuml
55+
- py_version
56+
- rapids_build_backend
57+
- test_python
3158
cpp_all:
3259
output: conda
3360
matrix:
@@ -83,6 +110,7 @@ files:
83110
- depends_on_libcuml
84111
- py_version
85112
- test_python
113+
- test_python_xgboost
86114
test_notebooks:
87115
output: none
88116
includes:
@@ -146,6 +174,7 @@ files:
146174
key: test
147175
includes:
148176
- test_python
177+
- test_python_xgboost
149178
py_build_libcuml:
150179
output: pyproject
151180
pyproject_dir: python/libcuml
@@ -415,11 +444,19 @@ dependencies:
415444
- pytest-xdist
416445
- seaborn
417446
- *scikit_learn
418-
- &xgboost xgboost>=2.1.0
419447
- statsmodels
420448
- tenacity
421449
- umap-learn==0.5.7
422450
- pynndescent
451+
test_python_xgboost:
452+
common:
453+
- output_types: [conda, requirements, pyproject]
454+
packages:
455+
# We must separate xgboost into its own list so that it is not
456+
# included in the "devcontainers" key. The libxgboost package depends
457+
# on librmm but we do not want to have a package depending on librmm
458+
# in devcontainers since it should be built from source.
459+
- &xgboost xgboost>=2.1.0
423460
test_notebooks:
424461
common:
425462
- output_types: [conda, requirements]

0 commit comments

Comments
 (0)