Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion ci/test_wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,19 @@ RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
LIBKVIKIO_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libkvikio_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
KVIKIO_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel_python" kvikio --stable --cuda "$RAPIDS_CUDA_VERSION")")

rapids-pip-retry install -v \
# generate constraints (possibly pinning to oldest support versions of dependencies)
rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"

# notes:
#
# * echo to expand wildcard before adding `[test]` requires for pip
# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because
# that environment variable is ignored if any other --constraint are passed via the CLI
#
rapids-pip-retry install \
-v \
--prefer-binary \
--constraint "${PIP_CONSTRAINT}" \
"$(echo "${LIBKVIKIO_WHEELHOUSE}"/libkvikio_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \
"$(echo "${KVIKIO_WHEELHOUSE}"/kvikio_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]"

Expand Down
62 changes: 60 additions & 2 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,8 @@ dependencies:
- output_types: [conda, requirements]
packages:
- pre-commit
# 'cuda_version' intentionally does not contain fallback entries... we want
# a loud error if an unsupported 'cuda' value is passed
cuda_version:
specific:
- output_types: conda
Expand Down Expand Up @@ -204,6 +206,51 @@ dependencies:
cuda: "13.1"
packages:
- cuda-version=13.1
- output_types: requirements
matrices:
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
# (e.g. for DLFW and pip devcontainers)
- matrix:
use_cuda_wheels: "false"
packages:
- matrix:
arch: aarch64
cuda: "12.2"
use_cuda_wheels: "true"
packages:
# some components (like nvidia-cublas-cu12 and nvidia-cuda-nvcc-cu12) didn't have
# aarch64 wheels until CTK 12.3, so allow a slightly looser bound here
- cuda-toolkit>=12.2,<12.4
- matrix:
cuda: "12.2"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.2.*
- matrix:
cuda: "12.5"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.5.*
- matrix:
cuda: "12.8"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.8.*
- matrix:
cuda: "12.9"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.9.*
- matrix:
cuda: "13.0"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==13.0.*
- matrix:
cuda: "13.1"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==13.1.*
cuda:
common:
- output_types: conda
Expand Down Expand Up @@ -337,9 +384,9 @@ dependencies:
- pytest-timeout
- rangehttpserver
- boto3>=1.21.21
- output_types: [requirements, pyproject]
- output_types: pyproject
packages:
- moto[server]>=4.0.8
- &moto_server moto[server]>=4.0.8
- output_types: conda
packages:
- moto>=4.0.8
Expand All @@ -358,6 +405,17 @@ dependencies:
- matrix:
packages:
- *cuda_python_cu13
# 'pip' constraints files cannot include extras like 'moto[server]'. This group
# ensures that dependencies ends up in 'kvikio[test]' ('dependencies' key not passed)
# but not in the output of 'rapids-generate-pip-constraints' in CI scripts ('dependencies' passed).
- output_types: requirements
matrices:
- matrix:
dependencies: "*"
packages:
Copy link
Member Author

Choose a reason for hiding this comment

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

Works around this:

DEPRECATION: Constraints are only allowed to take the form of a package name and a version specifier. Other forms were originally permitted as an accident of the implementation, but were undocumented. The new implementation of the resolver no longer supports these forms. A possible replacement is replacing the constraint with a requirement. Discussion can be found at pypa/pip#8210
ERROR: Constraints cannot have extras

(build link)

Copy link
Contributor

Choose a reason for hiding this comment

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

We probably want a better solution for this. Just listing the package name without the extra for dependencies: "oldest" is what I typically do for numba-cuda. https://github.com/rapidsai/rmm/blob/c6135d6ca689629fa68d1cce4dfb1980fa9780e2/dependencies.yaml#L369-L384

Copy link
Member Author

Choose a reason for hiding this comment

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

I think that might work for that case because the other things pulled in by the numba-cuda[cu12,cu13] extras are pulled into the environment and pinned appropriately anyway through other dependencies.

This is a little different... moto[server] pulls in packages that otherwise wouldn't be in the environment at all https://github.com/getmoto/moto/blob/a3e1138d2010147be610a1d3ee6fced9fee3cf44/setup.cfg#L80

So we do need to ensure moto[server] (with the extra) makes it into the test environment somehow.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm treating this comment as non-blocking, because here I think we're only talking about spelling in dependencies.yaml and not correctness of the outputs.

I opened an issue to track it: #945

I'll merge this as-is.

- matrix:
packages:
- *moto_server
test_java:
common:
- output_types: conda
Expand Down
Loading