diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 61d976c605..b705557795 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -80,8 +80,7 @@ jobs: build_type: pull-request package-name: raft_dask package-dir: python/raft-dask - before-wheel: "RAPIDS_PY_WHEEL_NAME=pylibraft_cu11 rapids-download-wheels-from-s3 ./local-pylibraft-dep" - cibw-before-build: "pip install --no-deps ./local-pylibraft-dep/pylibraft*.whl" + before-wheel: "RAPIDS_PY_WHEEL_NAME=pylibraft_cu11 rapids-download-wheels-from-s3 ./local-wheelhouse" skbuild-configure-options: "-DRAFT_BUILD_WHEELS=ON -DDETECT_CONDA_ENV=OFF -DFIND_RAFT_CPP=OFF" wheel-tests-raft-dask: needs: wheel-build-raft-dask diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh index d1f849194e..00f6905032 100755 --- a/ci/release/update-version.sh +++ b/ci/release/update-version.sh @@ -17,12 +17,14 @@ CURRENT_MAJOR=$(echo $CURRENT_TAG | awk '{split($0, a, "."); print a[1]}') CURRENT_MINOR=$(echo $CURRENT_TAG | awk '{split($0, a, "."); print a[2]}') CURRENT_PATCH=$(echo $CURRENT_TAG | awk '{split($0, a, "."); print a[3]}') CURRENT_SHORT_TAG=${CURRENT_MAJOR}.${CURRENT_MINOR} +CURRENT_UCX_PY_VERSION="$(curl -sL https://version.gpuci.io/rapids/${CURRENT_SHORT_TAG}).*" #Get . for next version NEXT_MAJOR=$(echo $NEXT_FULL_TAG | awk '{split($0, a, "."); print a[1]}') NEXT_MINOR=$(echo $NEXT_FULL_TAG | awk '{split($0, a, "."); print a[2]}') NEXT_SHORT_TAG=${NEXT_MAJOR}.${NEXT_MINOR} -NEXT_UCX_PY_VERSION="$(curl -sL https://version.gpuci.io/rapids/${NEXT_SHORT_TAG}).*" +NEXT_UCX_PY_SHORT_TAG="$(curl -sL https://version.gpuci.io/rapids/${NEXT_SHORT_TAG})" +NEXT_UCX_PY_VERSION="${NEXT_UCX_PY_SHORT_TAG}.*" echo "Preparing release $CURRENT_TAG => $NEXT_FULL_TAG" @@ -56,3 +58,14 @@ sed_runner "/^ucx_py_version:$/ {n;s/.*/ - \"${NEXT_UCX_PY_VERSION}\"/}" conda/ # Wheel builds install dask-cuda from source, update its branch sed_runner "s/dask-cuda.git@branch-[^\"\s]\+/dask-cuda.git@branch-${NEXT_SHORT_TAG}/g" .github/workflows/*.yaml + +# Need to distutils-normalize the original version +NEXT_SHORT_TAG_PEP440=$(python -c "from setuptools.extern import packaging; print(packaging.version.Version('${NEXT_SHORT_TAG}'))") +NEXT_UCX_PY_SHORT_TAG_PEP440=$(python -c "from setuptools.extern import packaging; print(packaging.version.Version('${NEXT_UCX_PY_SHORT_TAG}'))") + +# Wheel builds install intra-RAPIDS dependencies from same release +sed_runner "s/{cuda_suffix}[^\"].*\",/{cuda_suffix}==${NEXT_SHORT_TAG_PEP440}.*\",/g" python/pylibraft/setup.py +sed_runner "s/{cuda_suffix}.*\"\]/{cuda_suffix}==${NEXT_SHORT_TAG_PEP440}.*\"\]/g" python/pylibraft/_custom_build/backend.py +sed_runner "s/dask-cuda==.*\",/dask-cuda==${NEXT_SHORT_TAG_PEP440}.*\",/g" python/raft-dask/setup.py +sed_runner "s/pylibraft{cuda_suffix}.*\",/pylibraft{cuda_suffix}==${NEXT_SHORT_TAG_PEP440}.*\",/g" python/raft-dask/setup.py +sed_runner "s/ucx-py{cuda_suffix}.*\",/ucx-py{cuda_suffix}==${NEXT_UCX_PY_SHORT_TAG_PEP440}.*\",/g" python/raft-dask/setup.py diff --git a/python/pylibraft/_custom_build/backend.py b/python/pylibraft/_custom_build/backend.py index 7d1b334626..209e9e4b67 100644 --- a/python/pylibraft/_custom_build/backend.py +++ b/python/pylibraft/_custom_build/backend.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. +# Copyright (c) 2022-2023, NVIDIA CORPORATION. """Custom build backend for pylibraft to get versioned requirements. @@ -18,9 +18,8 @@ def replace_requirements(func): @wraps(func) def wrapper(config_settings=None): orig_list = getattr(_orig, func.__name__)(config_settings) - append_list = [ - f"rmm{os.getenv('RAPIDS_PY_WHEEL_CUDA_SUFFIX', default='')}" - ] + cuda_suffix = os.getenv("RAPIDS_PY_WHEEL_CUDA_SUFFIX", default="") + append_list = [f"rmm{cuda_suffix}==23.2.*"] return orig_list + append_list return wrapper diff --git a/python/pylibraft/setup.py b/python/pylibraft/setup.py index 079825a30c..230b9127e3 100644 --- a/python/pylibraft/setup.py +++ b/python/pylibraft/setup.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2022, NVIDIA CORPORATION. +# Copyright (c) 2022-2023, NVIDIA CORPORATION. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ install_requires = [ "numpy", "cuda-python>=11.7.1,<12.0", - f"rmm{cuda_suffix}", + f"rmm{cuda_suffix}==23.2.*", ] extras_require = { diff --git a/python/raft-dask/setup.py b/python/raft-dask/setup.py index 02bbced9a3..3299ea9bc5 100644 --- a/python/raft-dask/setup.py +++ b/python/raft-dask/setup.py @@ -26,11 +26,11 @@ "numpy", "numba>=0.49", "joblib>=0.11", - "dask-cuda>=23.2*", + "dask-cuda==23.2.*", "dask>=2022.12.0", - f"ucx-py{cuda_suffix}", + f"ucx-py{cuda_suffix}==0.30.*", "distributed>=2022.12.0", - f"pylibraft{cuda_suffix}", + f"pylibraft{cuda_suffix}==23.2.*", ] extras_require = {