-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ensure raft-dask wheel tests install pylibraft wheel from the same CI run, fix wheel dependencies #2349
ensure raft-dask wheel tests install pylibraft wheel from the same CI run, fix wheel dependencies #2349
Conversation
@@ -11,7 +11,8 @@ RAPIDS_PY_WHEEL_NAME="raft_dask_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels | |||
RAPIDS_PY_WHEEL_NAME="pylibraft_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 ./local-pylibraft-dep | |||
python -m pip install --no-deps ./local-pylibraft-dep/pylibraft*.whl | |||
|
|||
python -m pip install "raft_dask-${RAPIDS_PY_CUDA_SUFFIX}[test]>=0.0.0a0" --find-links dist/ | |||
# echo to expand wildcard before adding `[extra]` requires for pip | |||
python -m pip install -v "$(echo ./dist/raft_dask_${RAPIDS_PY_CUDA_SUFFIX}*.whl)[test]" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copied this commend and pattern from
raft/ci/test_wheel_pylibraft.sh
Lines 10 to 11 in 8ef71de
# echo to expand wildcard before adding `[extra]` requires for pip | |
python -m pip install $(echo ./dist/pylibraft*.whl)[test] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved with one small request.
Co-authored-by: Bradley Dice <[email protected]>
@jameslamb @bdice This PR should unblock CI for downstream repos, and ready to merge, right? |
@dantegd @jameslamb Yes, I think so. I’ll go ahead and merge so we can unblock downstream work. |
/merge |
Yes it should, thanks for merging it @bdice |
Thanks everyone! 👍 |
Description
Fixes #2348
#2331 introduced
rapids-build-backend
(https://github.com/rapidsai/rapids-build-backend) as the build backend forpylibraft
,raft-dask
, andraft-ann-bench
.That library handles automatically modifying a wheel's dependencies based on the target CUDA version. Unfortunately, we missed a few cases in #2331, and as a result the last few days of nightly
raft-dask
wheels had the following issues:pylibraft
pylibraft-cu12
)ucx-py==0.39.*
ucx-py-cu12
)distributed-ucxx-cu11==0.39.*
instead ofdistributed-ucxx-cu11==0.39.*,>=0.0.0a0
pip install --pre
is required to install pre-release versions)This wasn't caught in
raft
's CI, but in downstream CI likecuml
andcugraph
, with errors like this:(example cugraph build)
This PR:
raft
's CI so that similar issues would be caught here in the future, before publishing wheelsNotes for Reviewers
What was the root cause of CI missing this, and how does this PR fix it?
The
raft-dask
test CI jobs use this pattern to install theraft-dask
wheel built earlier in the CI pipeline.pip install "raft_dask-cu12[test]>=0.0.0a0" --find-links dist/
As described in the
pip
docs (link),--find-links
just adds a directory to the list of other placespip
searches for packages. Because the wheel there had unsatisfiable constraints (e.g.pylibraft==24.8.*
does not exist anywhere),pip install
silently disregarded that locally-downloadedraft_dask
wheel and backtracked (i.e. downloaded older and older wheels from https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/) until it found one that wasn't problematic.This PR ensures that won't happen by telling
pip
to install exactly that locally-downloaded file, like thispip install "$(echo ./dist/raft_dask_cu12*.whl)[test]"
If that file is uninstallable,
pip install
fails and you find out via a CI failure.How I tested this
Initially pushed a commit with just the changes to the test script. Saw the
wheel-tests-raft-dask
CI jobs fail in the expected way, instead of silently falling back to an older wheel and passing 🎉 .(build link)