Skip to content
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

Avoid --find-links in wheel jobs #397

Merged
merged 3 commits into from
Jul 3, 2024

Conversation

jameslamb
Copy link
Member

Description

Contributes to rapidsai/build-planning#69.

Proposes a stricter pattern for passing a libkvikio wheel from the wheel-build-cpp job that produced it into the wheel-build-python job wanting to use it (as a build dependency of kvikio). This change improves the likelihood that issues with the libkivkio wheels will be caught in CI.

Notes for Reviewers

See rapidsai/rmm#1586 and rapidsai/build-planning#69 (comment) for details on how I tested this approach.

I didn't propose this on #369 because I hadn't quite finished testing the approach yet. But I do think we should do this for all of the C++ wheels (rapidsai/build-planning#33).

@jameslamb jameslamb added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Jun 27, 2024
@jameslamb jameslamb marked this pull request as ready for review June 27, 2024 22:46
@jameslamb jameslamb requested a review from a team as a code owner June 27, 2024 22:46
@jameslamb jameslamb requested a review from KyleFromNVIDIA June 27, 2024 22:46
@jameslamb jameslamb changed the title WIP: Avoid --find-links in wheel jobs Avoid --find-links in wheel jobs Jun 27, 2024
@jameslamb jameslamb requested a review from msarahan June 27, 2024 22:46
Comment on lines +20 to +27
# ensure 'kvikio' wheel builds always use the 'libkvikio' just built in the same CI run
#
# using env variable PIP_CONSTRAINT is necessary to ensure the constraints
# are used when creating the isolated build environment
echo "libkvikio-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo ${CPP_WHEELHOUSE}/libkvikio_*.whl)" > ./constraints.txt

PIP_CONSTRAINT="${PWD}/constraints.txt" \
python -m pip wheel . -w dist -vvv --no-deps --disable-pip-version-check
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am curious whether just adding --no-index would be sufficient for us

Suggested change
# ensure 'kvikio' wheel builds always use the 'libkvikio' just built in the same CI run
#
# using env variable PIP_CONSTRAINT is necessary to ensure the constraints
# are used when creating the isolated build environment
echo "libkvikio-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo ${CPP_WHEELHOUSE}/libkvikio_*.whl)" > ./constraints.txt
PIP_CONSTRAINT="${PWD}/constraints.txt" \
python -m pip wheel . -w dist -vvv --no-deps --disable-pip-version-check
python -m pip wheel . -w dist -vvv --no-deps --disable-pip-version-check --no-index --find-links ${CPP_WHEELHOUSE}

Copy link
Member Author

@jameslamb jameslamb Jun 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion! I hadn't considered this.

But I wouldn't expect that to be sufficient here. We're building with build isolation, and this ${CPP_WHEELHOUSE} directory doesn't contain wheels for other build dependencies like scikit-build-core and rapids-build-backend.

So to use --no-index --find-links ${CPP_WHEELHOUSE} we'd have to also do something like pip download the other build dependencies into that local directory. I think the approach with constraints is simpler for as long as we want to use build isolation (which, per rapidsai/build-planning#69 (comment), might not be for long).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed offline with James. We decided James will write up an issue for follow up and we will skip this suggestion in this PR

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for talking through it with me. Here's the issue: rapidsai/build-planning#79

@jameslamb
Copy link
Member Author

/merge

@rapids-bot rapids-bot bot merged commit 3c09088 into rapidsai:branch-24.08 Jul 3, 2024
56 checks passed
@jameslamb jameslamb deleted the remove-find-links branch July 3, 2024 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Improves an existing functionality non-breaking Introduces a non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants