From d0756cb4de44aee17868afc2e76ffa07ac5126d5 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Thu, 18 Dec 2025 14:35:08 -0600 Subject: [PATCH 01/14] remove reliance on rapidsai/ci-conda --- .../workflows/build-test-publish-images.yml | 2 -- .gitignore | 17 ++++++++++++--- Dockerfile | 21 +++++++++++-------- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-test-publish-images.yml b/.github/workflows/build-test-publish-images.yml index 8082beb1..c9a91e47 100644 --- a/.github/workflows/build-test-publish-images.yml +++ b/.github/workflows/build-test-publish-images.yml @@ -55,8 +55,6 @@ jobs: ci/lint-dockerfiles.sh compute-matrix: runs-on: ubuntu-latest - container: - image: rapidsai/ci-conda:latest outputs: BASE_IMAGE_REPO: ${{ steps.compute-image-repo.outputs.BASE_IMAGE_REPO }} NOTEBOOKS_IMAGE_REPO: ${{ steps.compute-image-repo.outputs.NOTEBOOKS_IMAGE_REPO }} diff --git a/.gitignore b/.gitignore index 0822f81f..f99d452a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,20 @@ .vscode +*.a +*.bz2 +*.dll +*.dylib +*.exe +*.gz +*.pdf +*.png +.ruff_cache/ +*.so +*.tar.gz +*.tgz +*.whl +*.zip -# Created by https://www.gitignore.io/api/macos,linux ### Linux ### *~ .fuse_hidden* @@ -27,5 +40,3 @@ Icon Network Trash Folder Temporary Items .apdisk - -# End of https://www.gitignore.io/api/macos,linux diff --git a/Dockerfile b/Dockerfile index eb856407..206ac4c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,12 +10,7 @@ ARG LINUX_VER=${LINUX_DISTRO}${LINUX_DISTRO_VER} ARG RAPIDS_VER=26.02 # Gather dependency information - -# ignore hadolint DL3007... we really do always want the latest 'rapidsai/ci-conda', -# and don't want to have to push new commits to update to it -# -# hadolint ignore=DL3007 -FROM rapidsai/ci-conda:${RAPIDS_VER}-latest AS dependencies +FROM python:${PYTHON_VER} AS dependencies ARG CUDA_VER ARG PYTHON_VER @@ -25,20 +20,28 @@ ARG RAPIDS_BRANCH="main" SHELL ["/bin/bash", "-euo", "pipefail", "-c"] -RUN pip install --upgrade conda-merge rapids-dependency-file-generator - COPY condarc /condarc COPY notebooks.sh /notebooks.sh +# clone RAPIDS repos and extract the following: +# +# * IPython notebooks (/notebooks) +# * a single conda env YAML with all dependencies needed to run the notebooks (at /test_notebooks_dependencies.yaml) +# RUN < Date: Thu, 18 Dec 2025 14:43:11 -0600 Subject: [PATCH 02/14] just use echo, gha-tools is unnecessary --- .github/workflows/build-test-publish-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-publish-images.yml b/.github/workflows/build-test-publish-images.yml index c9a91e47..685ea555 100644 --- a/.github/workflows/build-test-publish-images.yml +++ b/.github/workflows/build-test-publish-images.yml @@ -124,7 +124,7 @@ jobs: GIT_DESCRIBE_TAG="${GIT_DESCRIBE_TAG:1}" # remove leading 'v' ALPHA_TAG="" if [[ $GIT_DESCRIBE_TAG =~ [a-z] ]]; then - rapids-logger "Most recent tag is an alpha tag" + echo "Most recent tag is an alpha tag" ALPHA_TAG="a" fi RAPIDS_VER="$(echo $GIT_DESCRIBE_TAG | awk 'BEGIN{FS=OFS="."} NF--')" # Convert full tag to YY.MM From 3c02404deb1b033d883b69832b33a8f66f91287f Mon Sep 17 00:00:00 2001 From: James Lamb Date: Thu, 18 Dec 2025 16:14:56 -0600 Subject: [PATCH 03/14] install yq and jq --- Dockerfile | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 206ac4c6..6669afe3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,15 +30,27 @@ COPY notebooks.sh /notebooks.sh # RUN < Date: Fri, 19 Dec 2025 09:02:40 -0600 Subject: [PATCH 04/14] install newer yq, required for notebooks.sh --- .github/workflows/build-rapids-image.yml | 1 + Dockerfile | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-rapids-image.yml b/.github/workflows/build-rapids-image.yml index 75cd36c2..22424cc2 100644 --- a/.github/workflows/build-rapids-image.yml +++ b/.github/workflows/build-rapids-image.yml @@ -102,6 +102,7 @@ jobs: push: true pull: true build-args: | + CPU_ARCH=${{ matrix.ARCH }} CUDA_VER=${{ inputs.CUDA_VER }} LINUX_DISTRO=${{ inputs.LINUX_DISTRO }} LINUX_DISTRO_VER=${{ inputs.LINUX_DISTRO_VER }} diff --git a/Dockerfile b/Dockerfile index 6669afe3..3929b933 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,7 @@ ARG RAPIDS_VER=26.02 # Gather dependency information FROM python:${PYTHON_VER} AS dependencies +ARG CPU_ARCH ARG CUDA_VER ARG PYTHON_VER @@ -18,6 +19,8 @@ ARG RAPIDS_VER ARG RAPIDS_BRANCH="main" +ARG YQ_VER=4.49.2 + SHELL ["/bin/bash", "-euo", "pipefail", "-c"] COPY condarc /condarc @@ -34,8 +37,7 @@ apt-get install \ -y \ --no-install-recommends \ jq \ - rsync \ - yq + rsync python -m pip install \ --no-cache-dir \ @@ -44,13 +46,19 @@ python -m pip install \ 'conda-merge==0.3.*' \ 'rapids-dependency-file-generator==1.20.*' +# yq>=4.0 is needed for the bit in /notebooks.sh that uses load() to read channels from /condarc +wget https://github.com/mikefarah/yq/releases/download/v${YQ_VER}/yq_linux_${CPU_ARCH} -O /tmp/yq +mv /tmp/yq /usr/bin/yq +chmod +x /usr/bin/yq + /notebooks.sh + apt-get purge \ -y \ --auto-remove \ jq \ - rsync \ - yq + rsync + rm -rf /var/lib/apt/lists/* EOF From 455c45241a890e3308b103487f7eb501d75cffe9 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 19 Dec 2025 09:15:28 -0600 Subject: [PATCH 05/14] fine hadolint, fine --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3929b933..60e3ad2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,7 +47,7 @@ python -m pip install \ 'rapids-dependency-file-generator==1.20.*' # yq>=4.0 is needed for the bit in /notebooks.sh that uses load() to read channels from /condarc -wget https://github.com/mikefarah/yq/releases/download/v${YQ_VER}/yq_linux_${CPU_ARCH} -O /tmp/yq +wget -q https://github.com/mikefarah/yq/releases/download/v${YQ_VER}/yq_linux_${CPU_ARCH} -O /tmp/yq mv /tmp/yq /usr/bin/yq chmod +x /usr/bin/yq From 68114cc59c288939b9e5b7330007b919edf543b8 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 19 Dec 2025 09:34:26 -0600 Subject: [PATCH 06/14] notebooks image needs build args too --- .github/workflows/build-rapids-image.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-rapids-image.yml b/.github/workflows/build-rapids-image.yml index 22424cc2..b63b81b7 100644 --- a/.github/workflows/build-rapids-image.yml +++ b/.github/workflows/build-rapids-image.yml @@ -121,6 +121,7 @@ jobs: push: true pull: true build-args: | + CPU_ARCH=${{ matrix.ARCH }} CUDA_VER=${{ inputs.CUDA_VER }} LINUX_DISTRO=${{ inputs.LINUX_DISTRO }} LINUX_DISTRO_VER=${{ inputs.LINUX_DISTRO_VER }} From 117df112ecf5c71ab0eaf9299af3a6b471c13583 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 19 Dec 2025 15:26:24 -0600 Subject: [PATCH 07/14] skip 'rapids' metapackage, just to test --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 60e3ad2f..8e140daa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -106,7 +106,8 @@ conda list --show-channel-urls # Install RAPIDS rapids-mamba-retry install -y -n base \ - "rapids=${RAPIDS_VER}.*" \ + "cugraph=${RAPIDS_VER}.*" \ + "cuml=${RAPIDS_VER}.*" \ "python=${PYTHON_VER}.*" \ "cuda-version=${CUDA_VER%.*}.*" \ ipython \ From dcb9ac015728fe4e7eb9d960130f625b332acc02 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 22 Dec 2025 16:47:16 -0600 Subject: [PATCH 08/14] switch back to rapids metapackage --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8e140daa..60e3ad2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -106,8 +106,7 @@ conda list --show-channel-urls # Install RAPIDS rapids-mamba-retry install -y -n base \ - "cugraph=${RAPIDS_VER}.*" \ - "cuml=${RAPIDS_VER}.*" \ + "rapids=${RAPIDS_VER}.*" \ "python=${PYTHON_VER}.*" \ "cuda-version=${CUDA_VER%.*}.*" \ ipython \ From 56494e79698d68ef282798bf74c7ec0e0a4e6f70 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 7 Jan 2026 15:23:16 -0600 Subject: [PATCH 09/14] use a versions.yaml --- .github/workflows/build-cuvs-image.yml | 26 ++++++------- .github/workflows/build-rapids-image.yml | 29 +++++++------- .../workflows/build-test-publish-images.yml | 2 +- .hadolint.yaml | 2 +- .pre-commit-config.yaml | 2 +- ci/compute-build-args.sh | 38 +++++++++++++++++++ renovate.json | 12 ++++++ versions.yaml | 6 +++ 8 files changed, 86 insertions(+), 31 deletions(-) create mode 100755 ci/compute-build-args.sh create mode 100644 versions.yaml diff --git a/.github/workflows/build-cuvs-image.yml b/.github/workflows/build-cuvs-image.yml index 19d14d1c..fbf62fb5 100644 --- a/.github/workflows/build-cuvs-image.yml +++ b/.github/workflows/build-cuvs-image.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2025, NVIDIA CORPORATION. +# Copyright (c) 2025-2026, NVIDIA CORPORATION. name: build-cuvs on: @@ -94,6 +94,14 @@ jobs: buildkitd-config: /etc/buildkit/buildkitd.toml driver: docker-container endpoint: builders + - name: Generate Build Args + id: generate-build-args + run: ci/compute-build-args.sh + env: + CUDA_VER: ${{ inputs.CUDA_VER }} + LINUX_VER: ${{ inputs.LINUX_VER }} + PYTHON_VER: ${{ inputs.PYTHON_VER }} + RAPIDS_VER: ${{ inputs.RAPIDS_VER }} - name: Build cuVS Benchmarks GPU image uses: docker/build-push-action@v6 with: @@ -103,10 +111,8 @@ jobs: push: true pull: true build-args: | - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} + ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} +>>>>>>> Stashed changes tags: ${{ inputs.CUVS_BENCH_TAG }}-${{ matrix.ARCH }} # ensure only OCI mediatypes are used: https://docs.docker.com/build/exporters/#oci-media-types outputs: type=registry,oci-mediatypes=true @@ -119,10 +125,7 @@ jobs: # push: true # pull: true # build-args: | - # CUDA_VER=${{ inputs.CUDA_VER }} - # LINUX_VER=${{ inputs.LINUX_VER }} - # PYTHON_VER=${{ inputs.PYTHON_VER }} - # RAPIDS_VER=${{ inputs.RAPIDS_VER }} + # ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} # tags: ${{ inputs.CUVS_BENCH_DATASETS_TAG }}-${{ matrix.ARCH }} # outputs: type=registry,oci-mediatypes=true - name: Build cuVS Benchmarks CPU image @@ -135,10 +138,7 @@ jobs: push: true pull: true build-args: | - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} + ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} tags: ${{ inputs.CUVS_BENCH_CPU_TAG }}-${{ matrix.ARCH }} # ensure only OCI mediatypes are used: https://docs.docker.com/build/exporters/#oci-media-types outputs: type=registry,oci-mediatypes=true diff --git a/.github/workflows/build-rapids-image.yml b/.github/workflows/build-rapids-image.yml index b63b81b7..92034244 100644 --- a/.github/workflows/build-rapids-image.yml +++ b/.github/workflows/build-rapids-image.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2025, NVIDIA CORPORATION. +# Copyright (c) 2025-2026, NVIDIA CORPORATION. name: build-rapids on: @@ -93,6 +93,17 @@ jobs: driver: docker-container endpoint: builders version: 'v0.30.1' + - name: Generate Build Args + id: generate-build-args + run: ci/compute-build-args.sh + env: + CPU_ARCH: ${{ matrix.ARCH }} + CUDA_VER: ${{ inputs.CUDA_VER }} + LINUX_DISTRO: ${{ inputs.LINUX_DISTRO }} + LINUX_DISTRO_VER: ${{ inputs.LINUX_DISTRO_VER }} + LINUX_VER: ${{ inputs.LINUX_VER }} + PYTHON_VER: ${{ inputs.PYTHON_VER }} + RAPIDS_VER: ${{ inputs.RAPIDS_VER }} - name: Build base image uses: docker/build-push-action@v6 with: @@ -102,13 +113,7 @@ jobs: push: true pull: true build-args: | - CPU_ARCH=${{ matrix.ARCH }} - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_DISTRO=${{ inputs.LINUX_DISTRO }} - LINUX_DISTRO_VER=${{ inputs.LINUX_DISTRO_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} + ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} tags: ${{ inputs.BASE_TAG }}-${{ matrix.ARCH }} # ensure only OCI mediatypes are used: https://docs.docker.com/build/exporters/#oci-media-types outputs: type=registry,oci-mediatypes=true @@ -121,13 +126,7 @@ jobs: push: true pull: true build-args: | - CPU_ARCH=${{ matrix.ARCH }} - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_DISTRO=${{ inputs.LINUX_DISTRO }} - LINUX_DISTRO_VER=${{ inputs.LINUX_DISTRO_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} + ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} tags: ${{ inputs.NOTEBOOKS_TAG }}-${{ matrix.ARCH }} # ensure only OCI mediatypes are used: https://docs.docker.com/build/exporters/#oci-media-types outputs: type=registry,oci-mediatypes=true diff --git a/.github/workflows/build-test-publish-images.yml b/.github/workflows/build-test-publish-images.yml index 685ea555..771804a0 100644 --- a/.github/workflows/build-test-publish-images.yml +++ b/.github/workflows/build-test-publish-images.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2025, NVIDIA CORPORATION. +# Copyright (c) 2023-2026, NVIDIA CORPORATION. name: build and publish imgs workflow on: diff --git a/.hadolint.yaml b/.hadolint.yaml index f5b7750c..abc05cf4 100644 --- a/.hadolint.yaml +++ b/.hadolint.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2025, NVIDIA CORPORATION. +# Copyright (c) 2025-2026, NVIDIA CORPORATION. ignored: # warning: Pin versions in apt get install. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8919b4d4..29f575bb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2025, NVIDIA CORPORATION. +# Copyright (c) 2025-2026, NVIDIA CORPORATION. --- ci: autoupdate_schedule: 'monthly' diff --git a/ci/compute-build-args.sh b/ci/compute-build-args.sh new file mode 100755 index 00000000..38ffb60c --- /dev/null +++ b/ci/compute-build-args.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +set -euo pipefail + +# start with arguments provided by environment variables. Anything with a fallback is only used by +# a subset of images built here. +ARGS=" +CPU_ARCH: ${CPU_ARCH:-notset} +CUDA_VER: ${CUDA_VER} +LINUX_DISTRO: ${LINUX_DISTRO:-notset} +LINUX_DISTRO_VER: ${LINUX_DISTRO_VER:-notset} +LINUX_VER: ${LINUX_VER} +PYTHON_VER: ${PYTHON_VER} +RAPIDS_VER: ${RAPIDS_VER} +" +export ARGS + +# add in arguments parsed out of 'versions.yaml' +if [ -n "${GITHUB_ACTIONS:-}" ]; then +# on GitHub Actions, create a step output called 'DOCKER_BUILD_ARGS' with this information appended to it. +# +# That can be referenced like: +# +# - name: Build image +# uses: docker/build-push-action@v6 +# with: +# build-args: | +# ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} +# +cat < "${GITHUB_OUTPUT:-/dev/stdout}" +DOCKER_BUILD_ARGS<[^ ]+) depName=(?[^\\s]+)(?:\\s+versioning=(?[^\\n]+))?\\n(?[^:]+): (?[^\\n]+)" + ], + "depNameTemplate": "{{depName}}", + "datasourceTemplate": "{{datasource}}", + "versioningTemplate": "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}" + } ] } diff --git a/versions.yaml b/versions.yaml new file mode 100644 index 00000000..696b35c2 --- /dev/null +++ b/versions.yaml @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# renovate: datasource=docker depName=condaforge/miniforge3 versioning=docker +MINIFORGE_VER: 25.9.1-0 +# renovate: datasource=github-releases depName=mikefarah/yq +YQ_VER: 4.49.2 From af498f9622b41226e8d292a83707938592058d90 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 7 Jan 2026 15:25:36 -0600 Subject: [PATCH 10/14] copyrights --- .hadolint.yaml | 2 +- .pre-commit-config.yaml | 2 +- Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.hadolint.yaml b/.hadolint.yaml index abc05cf4..f5b7750c 100644 --- a/.hadolint.yaml +++ b/.hadolint.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2025-2026, NVIDIA CORPORATION. +# Copyright (c) 2025, NVIDIA CORPORATION. ignored: # warning: Pin versions in apt get install. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e1bc7b6a..04ae5ff2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2025-2026, NVIDIA CORPORATION. +# Copyright (c) 2025, NVIDIA CORPORATION. --- ci: autoupdate_schedule: 'monthly' diff --git a/Dockerfile b/Dockerfile index 26109754..303ed4ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -# Copyright (c) 2024-2025, NVIDIA CORPORATION. +# Copyright (c) 2024-2026, NVIDIA CORPORATION. ARG CUDA_VER=unset ARG PYTHON_VER=unset From 252316fe1529ba50c173e22f96d193fe18e4587d Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 7 Jan 2026 15:30:15 -0600 Subject: [PATCH 11/14] fix workflow --- .github/workflows/build-cuvs-image.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-cuvs-image.yml b/.github/workflows/build-cuvs-image.yml index 5250726c..40dc2079 100644 --- a/.github/workflows/build-cuvs-image.yml +++ b/.github/workflows/build-cuvs-image.yml @@ -107,7 +107,6 @@ jobs: pull: true build-args: | ${{ steps.generate-build-args.outputs.DOCKER_BUILD_ARGS }} ->>>>>>> Stashed changes tags: ${{ inputs.CUVS_BENCH_TAG }}-${{ matrix.ARCH }} # ensure only OCI mediatypes are used: https://docs.docker.com/build/exporters/#oci-media-types outputs: type=registry,oci-mediatypes=true From b4d6998a9e84cda533750152b63a4c774311477d Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 7 Jan 2026 15:45:53 -0600 Subject: [PATCH 12/14] prefer 'notset' to 'unset', remove unnecessary MINIFORGE_VER, alphabetize args --- Dockerfile | 88 +++++++++++++++++++++------------------ cuvs-bench/cpu/Dockerfile | 22 ++++++---- cuvs-bench/gpu/Dockerfile | 27 +++++++----- versions.yaml | 2 - 4 files changed, 77 insertions(+), 62 deletions(-) diff --git a/Dockerfile b/Dockerfile index 303ed4ff..b5bc8f01 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,21 @@ # syntax=docker/dockerfile:1 # Copyright (c) 2024-2026, NVIDIA CORPORATION. -ARG CUDA_VER=unset -ARG PYTHON_VER=unset +ARG CUDA_VER=notset ARG LINUX_DISTRO=ubuntu ARG LINUX_DISTRO_VER=22.04 ARG LINUX_VER=${LINUX_DISTRO}${LINUX_DISTRO_VER} - +ARG PYTHON_VER=notset ARG RAPIDS_VER=26.02 # Gather dependency information FROM python:${PYTHON_VER} AS dependencies -ARG CPU_ARCH -ARG CUDA_VER -ARG PYTHON_VER - -ARG RAPIDS_VER - +ARG CPU_ARCH=notset +ARG CUDA_VER=notset +ARG PYTHON_VER=notset ARG RAPIDS_BRANCH="main" - -ARG YQ_VER=4.49.2 +ARG RAPIDS_VER=notset +ARG YQ_VER=notset SHELL ["/bin/bash", "-euo", "pipefail", "-c"] @@ -33,18 +29,19 @@ COPY notebooks.sh /notebooks.sh # RUN <=4.0 is needed for the bit in /notebooks.sh that uses load() to read channels from /condarc wget -q https://github.com/mikefarah/yq/releases/download/v${YQ_VER}/yq_linux_${CPU_ARCH} -O /tmp/yq @@ -64,19 +61,21 @@ EOF # Base image FROM rapidsai/miniforge-cuda:${RAPIDS_VER}-cuda${CUDA_VER}-base-${LINUX_VER}-py${PYTHON_VER} AS base -ARG CUDA_VER -ARG PYTHON_VER - -ARG RAPIDS_VER +ARG CUDA_VER=notset +ARG PYTHON_VER=notset +ARG RAPIDS_VER=notset SHELL ["/bin/bash", "-euo", "pipefail", "-c"] RUN <=8.37.0' + 'rapids-cli==0.1.*' + 'openssl==3.6.0' +) rapids-mamba-retry install -y -n base \ - "rapids=${RAPIDS_VER}.*" \ - "python=${PYTHON_VER}.*" \ - "cuda-version=${CUDA_VER%.*}.*" \ - 'ipython>=8.37.0' \ - 'rapids-cli==0.1.*' \ - 'openssl==3.6.0' + "${PACKAGES_TO_INSTALL[@]}" + conda clean -afy EOF @@ -124,9 +127,9 @@ CMD ["ipython"] # Notebooks image FROM base AS notebooks -ARG CUDA_VER -ARG LINUX_DISTRO -ARG LINUX_DISTRO_VER +ARG CUDA_VER=notset +ARG LINUX_DISTRO=notset +ARG LINUX_DISTRO_VER=notset SHELL ["/bin/bash", "-euo", "pipefail", "-c"] @@ -144,10 +147,13 @@ conda clean -afy EOF RUN <=7.0.0' + 'jupyterlab-nvdashboard>=0.13.0' +) rapids-mamba-retry install -y -n base \ - "jupyterlab=4" \ - 'dask-labextension>=7.0.0' \ - 'jupyterlab-nvdashboard>=0.13.0' + "${PACKAGES_TO_INSTALL[@]}" conda clean -afy EOF diff --git a/cuvs-bench/cpu/Dockerfile b/cuvs-bench/cpu/Dockerfile index 2d18fbd7..b4349db0 100644 --- a/cuvs-bench/cpu/Dockerfile +++ b/cuvs-bench/cpu/Dockerfile @@ -1,12 +1,12 @@ # syntax=docker/dockerfile:1 -# Copyright (c) 2024-2025, NVIDIA CORPORATION. +# Copyright (c) 2024-2026, NVIDIA CORPORATION. -ARG PYTHON_VER=unset +ARG PYTHON_VER=notset ARG RAPIDS_VER=26.02 FROM condaforge/miniforge3:24.11.3-2 AS cuvs-bench-cpu -ARG RAPIDS_VER -ARG PYTHON_VER +ARG PYTHON_VER=notset +ARG RAPIDS_VER=notset COPY condarc /opt/conda/.condarc @@ -24,9 +24,12 @@ EOF # we need perl temporarily for the remaining benchmark perl scripts RUN < Date: Wed, 7 Jan 2026 15:46:26 -0600 Subject: [PATCH 13/14] match new renovate version --- renovate.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 0907c0ba..c7d9e6ec 100644 --- a/renovate.json +++ b/renovate.json @@ -26,7 +26,9 @@ "customManagers": [ { "customType": "regex", - "fileMatch": "versions.yaml", + "managerFilePatterns": [ + "/versions.yaml/" + ], "matchStrings": [ "# renovate: datasource=(?[^ ]+) depName=(?[^\\s]+)(?:\\s+versioning=(?[^\\n]+))?\\n(?[^:]+): (?[^\\n]+)" ], From a8cc963b884bdda44dffebc42b707fd824f96589 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 7 Jan 2026 16:06:40 -0600 Subject: [PATCH 14/14] bash array, not command evaluation --- Dockerfile | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index b5bc8f01..0507fd55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,12 +29,12 @@ COPY notebooks.sh /notebooks.sh # RUN <