Skip to content

Commit d5f1721

Browse files
committed
refactor: remove 3.10 branching, set py-api from command line
1 parent 17d1d31 commit d5f1721

8 files changed

Lines changed: 40 additions & 64 deletions

File tree

.github/workflows/build.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ jobs:
147147
script: ci/build_python.sh
148148
sha: ${{ inputs.sha }}
149149
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
150+
# Build a conda package for each CUDA x ARCH x minimum supported Python version
151+
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
150152
upload-conda:
151153
needs: [cpp-build, python-build]
152154
secrets: inherit
@@ -215,6 +217,8 @@ jobs:
215217
package-name: cuvs
216218
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
217219
package-type: python
220+
# Build a wheel for each CUDA x ARCH x minimum supported Python version
221+
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
218222
wheel-publish-cuvs:
219223
needs: wheel-build-cuvs
220224
secrets: inherit
@@ -226,3 +230,4 @@ jobs:
226230
date: ${{ inputs.date }}
227231
package-name: cuvs
228232
package-type: python
233+
publish-wheel-search-key: cuvs_wheel_python_abi3

.github/workflows/pr.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ jobs:
341341
with:
342342
build_type: pull-request
343343
script: ci/build_python.sh
344+
# Build a conda package for each CUDA x ARCH x minimum supported Python version
345+
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
344346
conda-python-tests:
345347
needs: [conda-python-build, changed-files]
346348
secrets: inherit
@@ -492,10 +494,8 @@ jobs:
492494
package-name: cuvs
493495
package-type: python
494496
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
495-
# Build a wheel for each CUDA x ARCH x PY_VER (3.10 and 3.11)
496-
# When we drop Python 3.10, this can be simplified to:
497-
# matrix_filter: map(select(.PY_VER == "3.11")) | unique_by({CUDA_VER, ARCH})
498-
matrix_filter: map(select(.PY_VER == "3.11" or .PY_VER == "3.10")) | unique_by({CUDA_VER, ARCH, PY_VER})
497+
# Build a wheel for each CUDA x ARCH x minimum supported Python version
498+
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
499499
wheel-tests-cuvs:
500500
needs: [wheel-build-cuvs, changed-files]
501501
secrets: inherit

ci/build_wheel.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@ set -euo pipefail
66

77
package_name=$1
88
package_dir=$2
9+
shift 2
10+
11+
# Parse optional flags
12+
stable_abi=false
13+
while [[ $# -gt 0 ]]; do
14+
case "$1" in
15+
--stable)
16+
stable_abi=true
17+
shift
18+
;;
19+
*)
20+
echo "Unknown option: $1" >&2
21+
exit 1
22+
;;
23+
esac
24+
done
925

1026
source rapids-configure-sccache
1127
source rapids-date-string
@@ -53,6 +69,12 @@ RAPIDS_PIP_WHEEL_ARGS=(
5369
--no-deps
5470
--disable-pip-version-check
5571
)
72+
73+
# Add py-api setting for stable ABI builds
74+
if [[ "${stable_abi}" == "true" ]] && [[ -n "${RAPIDS_PY_API:-}" ]]; then
75+
RAPIDS_PIP_WHEEL_ARGS+=(--config-settings="skbuild.wheel.py-api=${RAPIDS_PY_API}")
76+
fi
77+
5678
# Only use --build-constraint when build isolation is enabled.
5779
#
5880
# Passing '--build-constraint' and '--no-build-isolation` together results in an error from 'pip',

ci/build_wheel_cuvs.sh

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@ set -euo pipefail
66

77
source rapids-init-pip
88

9-
# Only use stable ABI package for Python >= 3.11
10-
if [[ "${RAPIDS_PY_VERSION}" != "3.10" ]]; then
11-
source ./ci/use_upstream_sabi_wheels.sh
12-
fi
13-
149
package_dir="python/cuvs"
1510

1611
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
@@ -23,11 +18,13 @@ RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
2318
LIBCUVS_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcuvs_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
2419
echo "libcuvs-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo "${LIBCUVS_WHEELHOUSE}"/libcuvs_*.whl)" >> "${PIP_CONSTRAINT}"
2520

26-
ci/build_wheel.sh cuvs ${package_dir}
21+
# TODO: move this variable into `ci-wheel`
22+
# Format Python limited API version string
23+
RAPIDS_PY_API="cp${RAPIDS_PY_VERSION//./}"
24+
export RAPIDS_PY_API
25+
26+
ci/build_wheel.sh cuvs ${package_dir} --stable
2727
ci/validate_wheel.sh ${package_dir} "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}"
2828

29-
# Only use stable ABI package naming for Python >= 3.11
30-
if [[ "${RAPIDS_PY_VERSION}" != "3.10" ]]; then
31-
RAPIDS_PACKAGE_NAME="$(rapids-package-name wheel_python cuvs --stable --cuda)"
32-
export RAPIDS_PACKAGE_NAME
33-
fi
29+
RAPIDS_PACKAGE_NAME="$(rapids-package-name wheel_python cuvs --stable --cuda)"
30+
export RAPIDS_PACKAGE_NAME

ci/build_wheel_libcuvs.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ source rapids-init-pip
99
package_name="libcuvs"
1010
package_dir="python/libcuvs"
1111

12-
# Only use stable ABI package for Python >= 3.11
13-
if [[ "${RAPIDS_PY_VERSION}" != "3.10" ]]; then
14-
source ./ci/use_upstream_sabi_wheels.sh
15-
fi
16-
1712
rapids-logger "Generating build requirements"
1813
matrix_selectors="cuda=${RAPIDS_CUDA_VERSION%.*};arch=$(arch);py=${RAPIDS_PY_VERSION};cuda_suffixed=true"
1914

ci/test_wheel_cuvs.sh

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,7 @@ rm -rf /usr/lib64/libnccl*
1111

1212
RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
1313
LIBCUVS_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcuvs_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
14-
15-
if [[ "${RAPIDS_PY_VERSION}" != "3.10" ]]; then
16-
CUVS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel_python" cuvs --stable --cuda "$RAPIDS_CUDA_VERSION")")
17-
source ./ci/use_upstream_sabi_wheels.sh
18-
else
19-
CUVS_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="cuvs_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github python)
20-
fi
14+
CUVS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel_python" cuvs --stable --cuda "$RAPIDS_CUDA_VERSION")")
2115

2216
# echo to expand wildcard before adding `[extra]` requires for pip
2317
rapids-pip-retry install \

ci/use_upstream_sabi_wheels.sh

Lines changed: 0 additions & 33 deletions
This file was deleted.

python/cuvs/pyproject.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,6 @@ provider = "scikit_build_core.metadata.regex"
102102
input = "cuvs/VERSION"
103103
regex = "(?P<value>.*)"
104104

105-
[[tool.scikit-build.overrides]]
106-
if.python-version = ">=3.11"
107-
wheel.py-api = "cp311"
108-
109105
[tool.rapids-build-backend]
110106
requires = [
111107
"cmake>=3.30.4",

0 commit comments

Comments
 (0)