Skip to content

Commit

Permalink
move wheel installs into per-project test scripts, other packaging ch…
Browse files Browse the repository at this point in the history
…anges (#4847)

Proposes some changes to small things I noticed while working on #4804.

* CMake option cleanup:
   - adds `BUILD_PRIMS_BENCH OFF`, removes `BUILD_BENCH OFF` in `get_raft.cmake` (matching changes to RAFT from 23.04: rapidsai/raft#1304)
  - adds `BUILD_BENCHMARKS OFF` in `get_cudf.cmake` ([this is the default](https://github.com/rapidsai/cudf/blob/b81d9e17fbffbb912e0128148f556bf7af41b6ab/cpp/CMakeLists.txt#L51), but better to be explicit)
* consolidates some `.gitignore` rules, adds wheels and conda packages there
* moves responsibility for installing CI artifacts into `ci/test_wheel_{package}.sh` and out of `ci/test_wheel.sh`
* splits up Cython and `scikit-build-core` in `dependencies.yaml`
  - *every Python package here using Cython also uses `scikit-build-core`, but the reverse won't be true as of #4804 ... making that change here is harmless and reduces the size of the diff in #4804 a bit*

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Bradley Dice (https://github.com/bdice)

URL: #4847
  • Loading branch information
jameslamb authored Jan 9, 2025
1 parent e46ff65 commit a6eea2f
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 36 deletions.
10 changes: 3 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ test-results
## Python build directories & artifacts
dask-worker-space/
htmlcov
*.conda
dist/
*.egg-info/
python/build
Expand All @@ -40,9 +41,7 @@ wheels/
wheelhouse/
_skbuild/
cufile.log

## pylibcugraph build directories & artifacts
python/pylibcugraph/pylibcugraph.egg-info
*.whl

## Patching
*.diff
Expand Down Expand Up @@ -89,10 +88,7 @@ docs/cugraph/lib*
docs/cugraph/api/*

# created by Dask tests
python/dask-worker-space
python/cugraph/dask-worker-space
python/cugraph/cugraph/dask-worker-space
python/cugraph/cugraph/tests/dask-worker-space
dask-worker-space/

# Sphinx docs & build artifacts
docs/cugraph/source/api_docs/api/*
Expand Down
11 changes: 1 addition & 10 deletions ci/test_wheel.sh
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
#!/bin/bash
# Copyright (c) 2023-2024, NVIDIA CORPORATION.
# Copyright (c) 2023-2025, NVIDIA CORPORATION.

set -eoxu pipefail

package_name=$1

python_package_name=$(echo ${package_name}|sed 's/-/_/g')

mkdir -p ./dist
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})"

RAPIDS_PY_WHEEL_NAME="${package_name}_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 ./dist

# use 'ls' to expand wildcard before adding `[extra]` requires for pip
# pip creates wheels using python package names
python -m pip install $(ls ./dist/${python_package_name}*.whl)[test]

# Run smoke tests for aarch64 pull requests
arch=$(uname -m)
if [[ "${arch}" == "aarch64" && ${RAPIDS_BUILD_TYPE} == "pull-request" ]]; then
Expand Down
14 changes: 10 additions & 4 deletions ci/test_wheel_cugraph.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
#!/bin/bash
# Copyright (c) 2023-2024, NVIDIA CORPORATION.
# Copyright (c) 2023-2025, NVIDIA CORPORATION.

set -eoxu pipefail

# Download the pylibcugraph built in the previous step
# Download the packages built in the previous step
mkdir -p ./dist
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})"
RAPIDS_PY_WHEEL_NAME="pylibcugraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 ./local-pylibcugraph-dep
python -m pip install --no-deps ./local-pylibcugraph-dep/pylibcugraph*.whl
RAPIDS_PY_WHEEL_NAME="cugraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 python ./dist
RAPIDS_PY_WHEEL_NAME="pylibcugraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 python ./local-pylibcugraph-dep

# echo to expand wildcard before adding `[extra]` requires for pip
python -m pip install \
"$(echo ./dist/cugraph*.whl)[test]" \
./local-pylibcugraph-dep/pylibcugraph*.whl

./ci/test_wheel.sh cugraph
11 changes: 10 additions & 1 deletion ci/test_wheel_pylibcugraph.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
#!/bin/bash
# Copyright (c) 2023-2024, NVIDIA CORPORATION.
# Copyright (c) 2023-2025, NVIDIA CORPORATION.

set -eoxu pipefail

# Download the packages built in the previous step
mkdir -p ./dist
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})"
RAPIDS_PY_WHEEL_NAME="pylibcugraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 python ./dist

# echo to expand wildcard before adding `[extra]` requires for pip
python -m pip install \
"$(echo ./dist/pylibcugraph*.whl)[test]"

./ci/test_wheel.sh pylibcugraph
2 changes: 1 addition & 1 deletion cpp/cmake/thirdparty/get_raft.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ function(find_and_configure_raft)
OPTIONS
"RAFT_COMPILE_LIBRARY ${PKG_COMPILE_RAFT_LIB}"
"BUILD_TESTS OFF"
"BUILD_BENCH OFF"
"BUILD_PRIMS_BENCH OFF"
"BUILD_CAGRA_HNSWLIB OFF"
)

Expand Down
10 changes: 6 additions & 4 deletions cpp/libcugraph_etl/cmake/thirdparty/get_cudf.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#=============================================================================
# Copyright (c) 2021, NVIDIA CORPORATION.
# Copyright (c) 2021-2025, NVIDIA CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -27,7 +27,9 @@ function(find_and_configure_cudf)
GIT_REPOSITORY https://github.com/${PKG_FORK}/cudf.git
GIT_TAG ${PKG_PINNED_TAG}
SOURCE_SUBDIR cpp
OPTIONS "BUILD_TESTS OFF"
OPTIONS
"BUILD_BENCHMARKS OFF"
"BUILD_TESTS OFF"
)

message(VERBOSE "CUGRAPH_ETL: Using CUDF located in ${cudf_SOURCE_DIR}")
Expand All @@ -39,8 +41,8 @@ set(CUGRAPH_ETL_BRANCH_VERSION_cudf "${CUGRAPH_ETL_VERSION_MAJOR}.${CUGRAPH_ETL_


# Change pinned tag and fork here to test a commit in CI
# To use a different RAFT locally, set the CMake variable
# RPM_cudf_SOURCE=/path/to/local/cudf
# To use a different cuDF locally, set the CMake variable
# CPM_cudf_SOURCE=/path/to/local/cudf
find_and_configure_cudf(VERSION ${CUGRAPH_ETL_MIN_VERSION_cudf}
FORK rapidsai
PINNED_TAG branch-${CUGRAPH_ETL_BRANCH_VERSION_cudf}
Expand Down
6 changes: 3 additions & 3 deletions cpp/libcugraph_etl/cmake/thirdparty/get_cugraph.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#=============================================================================
# Copyright (c) 2021, NVIDIA CORPORATION.
# Copyright (c) 2021-2025, NVIDIA CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -39,8 +39,8 @@ set(CUGRAPH_ETL_BRANCH_VERSION_cugraph "${CUGRAPH_ETL_VERSION_MAJOR}.${CUGRAPH_E


# Change pinned tag and fork here to test a commit in CI
# To use a different RAFT locally, set the CMake variable
# RPM_cugraph_SOURCE=/path/to/local/cugraph
# To use a different cuGraph locally, set the CMake variable
# CPM_cugraph_SOURCE=/path/to/local/cugraph
find_and_configure_cugraph(VERSION ${CUGRAPH_ETL_MIN_VERSION_cugraph}
FORK rapidsai
PINNED_TAG branch-${CUGRAPH_ETL_BRANCH_VERSION_cugraph}
Expand Down
17 changes: 11 additions & 6 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ files:
- depends_on_ucx_py
- docs
- python_build_cythonize
- python_build_skbuild
- python_build_rapids
- python_build_wheel
- python_run_cugraph
Expand Down Expand Up @@ -77,6 +78,7 @@ files:
includes:
- python_build_cythonize
- python_build_rapids
- python_build_skbuild
py_rapids_build_cugraph:
output: pyproject
pyproject_dir: python/cugraph
Expand Down Expand Up @@ -121,6 +123,7 @@ files:
includes:
- python_build_cythonize
- python_build_rapids
- python_build_skbuild
py_rapids_build_pylibcugraph:
output: pyproject
pyproject_dir: python/pylibcugraph
Expand Down Expand Up @@ -370,6 +373,14 @@ dependencies:
- output_types: [conda, pyproject, requirements]
packages:
- rapids-build-backend>=0.3.1,<0.4.0.dev0
python_build_skbuild:
common:
- output_types: conda
packages:
- scikit-build-core>=0.10.0
- output_types: [requirements, pyproject]
packages:
- scikit-build-core[pyproject]>=0.10.0
python_build_wheel:
common:
- output_types: [conda, pyproject, requirements]
Expand All @@ -381,12 +392,6 @@ dependencies:
- output_types: [conda, pyproject, requirements]
packages:
- cython>=3.0.0
- output_types: conda
packages:
- scikit-build-core>=0.10.0
- output_types: [pyproject, requirements]
packages:
- scikit-build-core[pyproject]>=0.10.0
python_run_cugraph:
common:
- output_types: [conda, pyproject]
Expand Down

0 comments on commit a6eea2f

Please sign in to comment.