diff --git a/.devcontainer/cuda11.8-conda/devcontainer.json b/.devcontainer/cuda11.8-conda/devcontainer.json
index 033251e3..0b5e7406 100644
--- a/.devcontainer/cuda11.8-conda/devcontainer.json
+++ b/.devcontainer/cuda11.8-conda/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "11.8",
"PYTHON_PACKAGE_MANAGER": "conda",
- "BASE": "rapidsai/devcontainers:24.08-cpp-cuda11.8-mambaforge-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-cuda11.8-mambaforge-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda11.8-conda"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda11.8-conda"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda11.8-pip/devcontainer.json b/.devcontainer/cuda11.8-pip/devcontainer.json
index 27016dbb..47d2b224 100644
--- a/.devcontainer/cuda11.8-pip/devcontainer.json
+++ b/.devcontainer/cuda11.8-pip/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "11.8",
"PYTHON_PACKAGE_MANAGER": "pip",
- "BASE": "rapidsai/devcontainers:24.08-cpp-cuda11.8-ucx1.15.0-openmpi-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-cuda11.8-ucx1.17.0-openmpi-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda11.8-pip"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda11.8-pip"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda12.0-conda/devcontainer.json b/.devcontainer/cuda12.0-conda/devcontainer.json
index 5f5ad18a..aaafda77 100644
--- a/.devcontainer/cuda12.0-conda/devcontainer.json
+++ b/.devcontainer/cuda12.0-conda/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "12.0",
"PYTHON_PACKAGE_MANAGER": "conda",
- "BASE": "rapidsai/devcontainers:24.08-cpp-mambaforge-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-mambaforge-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda12.0-conda"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda12.0-conda"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda12.0-pip/devcontainer.json b/.devcontainer/cuda12.0-pip/devcontainer.json
index 9bea22d5..f3d0688d 100644
--- a/.devcontainer/cuda12.0-pip/devcontainer.json
+++ b/.devcontainer/cuda12.0-pip/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "12.0",
"PYTHON_PACKAGE_MANAGER": "pip",
- "BASE": "rapidsai/devcontainers:24.08-cpp-cuda12.0-ucx1.15.0-openmpi-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-cuda12.0-ucx1.17.0-openmpi-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda12.0-pip"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda12.0-pip"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda12.2-conda/devcontainer.json b/.devcontainer/cuda12.2-conda/devcontainer.json
index 5c1fceaf..3011015a 100644
--- a/.devcontainer/cuda12.2-conda/devcontainer.json
+++ b/.devcontainer/cuda12.2-conda/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "12.2",
"PYTHON_PACKAGE_MANAGER": "conda",
- "BASE": "rapidsai/devcontainers:24.08-cpp-mambaforge-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-mambaforge-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda12.2-conda"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda12.2-conda"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda12.2-pip/devcontainer.json b/.devcontainer/cuda12.2-pip/devcontainer.json
index f79ed098..8e1898e2 100644
--- a/.devcontainer/cuda12.2-pip/devcontainer.json
+++ b/.devcontainer/cuda12.2-pip/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "12.2",
"PYTHON_PACKAGE_MANAGER": "pip",
- "BASE": "rapidsai/devcontainers:24.08-cpp-cuda12.2-ucx1.15.0-openmpi-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-cuda12.2-ucx1.17.0-openmpi-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda12.2-pip"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda12.2-pip"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda12.5-conda/devcontainer.json b/.devcontainer/cuda12.5-conda/devcontainer.json
index fa822661..e840eb04 100644
--- a/.devcontainer/cuda12.5-conda/devcontainer.json
+++ b/.devcontainer/cuda12.5-conda/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "12.5",
"PYTHON_PACKAGE_MANAGER": "conda",
- "BASE": "rapidsai/devcontainers:24.08-cpp-mambaforge-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-mambaforge-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda12.5-conda"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda12.5-conda"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.devcontainer/cuda12.5-pip/devcontainer.json b/.devcontainer/cuda12.5-pip/devcontainer.json
index edff5afe..1d520184 100644
--- a/.devcontainer/cuda12.5-pip/devcontainer.json
+++ b/.devcontainer/cuda12.5-pip/devcontainer.json
@@ -5,13 +5,13 @@
"args": {
"CUDA": "12.5",
"PYTHON_PACKAGE_MANAGER": "pip",
- "BASE": "rapidsai/devcontainers:24.08-cpp-cuda12.5-ucx1.15.0-openmpi-ubuntu22.04"
+ "BASE": "rapidsai/devcontainers:24.10-cpp-cuda12.5-ucx1.17.0-openmpi-ubuntu22.04"
}
},
"runArgs": [
"--rm",
"--name",
- "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.08-cuda12.5-pip"
+ "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-24.10-cuda12.5-pip"
],
"hostRequirements": {"gpu": "optional"},
"features": {
diff --git a/.github/workflows/build-all-rapids-repos.yml b/.github/workflows/build-all-rapids-repos.yml
index 7582aa2b..1d6a0fae 100644
--- a/.github/workflows/build-all-rapids-repos.yml
+++ b/.github/workflows/build-all-rapids-repos.yml
@@ -27,7 +27,7 @@ jobs:
if: needs.check-event.outputs.ok == 'true'
needs: check-event
secrets: inherit
- uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-24.08
+ uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-24.10
permissions:
actions: read
packages: read
diff --git a/USAGE.md b/USAGE.md
index cbd23fda..d389dd32 100644
--- a/USAGE.md
+++ b/USAGE.md
@@ -19,11 +19,11 @@ The features that comprise the image are noted in the image tags. If no version
The pre-built images can be used as the `"image"`, or as the base of a Dockerfile in `"build"`, in `devcontainer.json`:
-devcontainer.json using pre-built image
{
"image": "rapidsai/devcontainers:24.08-cpp-llvm16-cuda12.0-nvhpc23.5-ubuntu22.04",
"hostRequirements": { "gpu": true },
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind"
}
+devcontainer.json using pre-built image
{
"image": "rapidsai/devcontainers:24.10-cpp-llvm16-cuda12.0-nvhpc23.5-ubuntu22.04",
"hostRequirements": { "gpu": true },
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind"
}
You can also build a custom devcontainer by composing individual features:
-devcontainer.json using individual features
{
"image": "ubuntu:22.04",
"features": {
"ghcr.io/rapidsai/devcontainers/features/cmake:24.8": {},
"ghcr.io/rapidsai/devcontainers/features/ninja:24.8": {},
"ghcr.io/rapidsai/devcontainers/features/sccache:24.8": {
"version": "0.5.4"
}
},
"overrideFeatureInstallOrder": [
"ghcr.io/rapidsai/devcontainers/features/cmake",
"ghcr.io/rapidsai/devcontainers/features/ninja",
"ghcr.io/rapidsai/devcontainers/features/sccache"
],
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind"
}
+devcontainer.json using individual features
{
"image": "ubuntu:22.04",
"features": {
"ghcr.io/rapidsai/devcontainers/features/cmake:24.10": {},
"ghcr.io/rapidsai/devcontainers/features/ninja:24.10": {},
"ghcr.io/rapidsai/devcontainers/features/sccache:24.10": {
"version": "0.5.4"
}
},
"overrideFeatureInstallOrder": [
"ghcr.io/rapidsai/devcontainers/features/cmake",
"ghcr.io/rapidsai/devcontainers/features/ninja",
"ghcr.io/rapidsai/devcontainers/features/sccache"
],
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind"
}
> **NOTE:** Feature updates published since your most recent image build will invalidate your docker image layer cache, meaning it can take the [devcontainers CLI](https://github.com/devcontainers/cli) longer to initialize containers composed from individual features.
diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh
index 40500fef..d30992d3 100755
--- a/ci/release/update-version.sh
+++ b/ci/release/update-version.sh
@@ -22,7 +22,7 @@ NEXT_MINOR=$(echo $NEXT_FULL_TAG | awk '{split($0, a, "."); print a[2]}')
NEXT_PATCH=$(echo $NEXT_FULL_TAG | awk '{split($0, a, "."); print a[3]}')
NEXT_SHORT_TAG=${NEXT_MAJOR}.${NEXT_MINOR}
NEXT_FULL_TAG=${NEXT_MAJOR}.${NEXT_MINOR}.${NEXT_PATCH}
-NEXT_UCX_PY_VERSION="$(curl -sL https://version.gpuci.io/rapids/${NEXT_SHORT_TAG})"
+NEXT_UCXX_SHORT_TAG="$(curl -sL https://version.gpuci.io/rapids/${NEXT_SHORT_TAG})"
# Need to distutils-normalize the versions for some use cases
CURRENT_SHORT_TAG_PEP440=$(python -c "from setuptools.extern import packaging; print(packaging.version.Version('${CURRENT_SHORT_TAG}'))")
@@ -46,7 +46,7 @@ for file in $(find .devcontainer -name devcontainer.json); do
done
sed_runner "s/branch-[[:digit:]]\{2\}\.[[:digit:]]\+/branch-${NEXT_SHORT_TAG}/g" ./features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml
-sed_runner "s/branch-0.[[:digit:]]\+/branch-${NEXT_UCX_PY_VERSION}/g" ./features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml
+sed_runner "s/branch-0.[[:digit:]]\+/branch-${NEXT_UCXX_SHORT_TAG}/g" ./features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml
for file in $(find features -name devcontainer-feature.json); do
tmp=$(mktemp)
diff --git a/features/src/cccl-dev/devcontainer-feature.json b/features/src/cccl-dev/devcontainer-feature.json
index a352a387..16a3f589 100644
--- a/features/src/cccl-dev/devcontainer-feature.json
+++ b/features/src/cccl-dev/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "NVIDIA CCCL development utilities",
"id": "cccl-dev",
- "version": "24.8.1",
+ "version": "24.10.0",
"description": "A feature to install NVIDIA CCCL development utilities",
"options": {
"litVersion": {
diff --git a/features/src/cmake/devcontainer-feature.json b/features/src/cmake/devcontainer-feature.json
index 3113c143..61a59a85 100644
--- a/features/src/cmake/devcontainer-feature.json
+++ b/features/src/cmake/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "CMake",
"id": "cmake",
- "version": "24.8.1",
+ "version": "24.10.0",
"description": "A feature to install CMake",
"options": {
"version": {
diff --git a/features/src/cuda/devcontainer-feature.json b/features/src/cuda/devcontainer-feature.json
index b1303314..69178cfe 100644
--- a/features/src/cuda/devcontainer-feature.json
+++ b/features/src/cuda/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "CUDA Toolkit",
"id": "cuda",
- "version": "24.8.2",
+ "version": "24.10.0",
"description": "A feature to install the NVIDIA CUDA Toolkit",
"options": {
"version": {
diff --git a/features/src/gcc/devcontainer-feature.json b/features/src/gcc/devcontainer-feature.json
index 3bc51d0a..fb8044b9 100644
--- a/features/src/gcc/devcontainer-feature.json
+++ b/features/src/gcc/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "GCC",
"id": "gcc",
- "version": "24.8.1",
+ "version": "24.10.0",
"description": "A feature to install gcc",
"options": {
"version": {
diff --git a/features/src/gitlab-cli/devcontainer-feature.json b/features/src/gitlab-cli/devcontainer-feature.json
index 6e9cea34..e07494ef 100644
--- a/features/src/gitlab-cli/devcontainer-feature.json
+++ b/features/src/gitlab-cli/devcontainer-feature.json
@@ -1,6 +1,6 @@
{
"id": "gitlab-cli",
- "version": "24.8.1",
+ "version": "24.10.0",
"name": "GitLab CLI",
"documentationURL": "https://github.com/rapidsai/devcontainers/features/tree/main/src/gitlab-cli",
"description": "Installs the GitLab CLI. Auto-detects latest version and installs needed dependencies.",
diff --git a/features/src/llvm/devcontainer-feature.json b/features/src/llvm/devcontainer-feature.json
index 0745dc7c..da88710b 100644
--- a/features/src/llvm/devcontainer-feature.json
+++ b/features/src/llvm/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "LLVM compilers and tools",
"id": "llvm",
- "version": "24.8.2",
+ "version": "24.10.1",
"description": "A feature to install LLVM compilers and tools",
"options": {
"version": {
diff --git a/features/src/mambaforge/devcontainer-feature.json b/features/src/mambaforge/devcontainer-feature.json
index 5fe11349..cc57822b 100644
--- a/features/src/mambaforge/devcontainer-feature.json
+++ b/features/src/mambaforge/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "Mambaforge",
"id": "mambaforge",
- "version": "24.8.1",
+ "version": "24.10.0",
"description": "A feature to install mambaforge",
"options": {
"version": {
diff --git a/features/src/ninja/devcontainer-feature.json b/features/src/ninja/devcontainer-feature.json
index 5183fd69..47eb0b00 100644
--- a/features/src/ninja/devcontainer-feature.json
+++ b/features/src/ninja/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "Ninja build",
"id": "ninja",
- "version": "24.8.2",
+ "version": "24.10.0",
"description": "A feature to install ninja-build",
"options": {
"version": {
diff --git a/features/src/nvhpc/devcontainer-feature.json b/features/src/nvhpc/devcontainer-feature.json
index 1edd98b7..d8c61b80 100644
--- a/features/src/nvhpc/devcontainer-feature.json
+++ b/features/src/nvhpc/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "NVHPC SDK",
"id": "nvhpc",
- "version": "24.8.2",
+ "version": "24.10.0",
"description": "A feature to install the NVHPC SDK",
"options": {
"version": {
diff --git a/features/src/oneapi/devcontainer-feature.json b/features/src/oneapi/devcontainer-feature.json
index 9ed4f484..ea971222 100644
--- a/features/src/oneapi/devcontainer-feature.json
+++ b/features/src/oneapi/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "Intel oneapi toolchain",
"id": "oneapi",
- "version": "24.8.1",
+ "version": "24.10.0",
"description": "A feature to install the Intel oneapi toolchain",
"options": {
"version": {
diff --git a/features/src/openmpi/devcontainer-feature.json b/features/src/openmpi/devcontainer-feature.json
index c0773ca0..a8bc4468 100644
--- a/features/src/openmpi/devcontainer-feature.json
+++ b/features/src/openmpi/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "OpenMPI",
"id": "openmpi",
- "version": "24.8.1",
+ "version": "24.10.0",
"description": "A feature to install OpenMPI with optional CUDA and UCX support",
"options": {
"version": {
diff --git a/features/src/rapids-build-utils/devcontainer-feature.json b/features/src/rapids-build-utils/devcontainer-feature.json
index d180b627..b6792894 100644
--- a/features/src/rapids-build-utils/devcontainer-feature.json
+++ b/features/src/rapids-build-utils/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "NVIDIA RAPIDS devcontainer build utilities",
"id": "rapids-build-utils",
- "version": "24.8.16",
+ "version": "24.10.10",
"description": "A feature to install the RAPIDS devcontainer build utilities",
"containerEnv": {
"BASH_ENV": "/etc/bash.bash_env"
diff --git a/features/src/rapids-build-utils/install.sh b/features/src/rapids-build-utils/install.sh
index 85bdbedb..893d1d7a 100644
--- a/features/src/rapids-build-utils/install.sh
+++ b/features/src/rapids-build-utils/install.sh
@@ -33,13 +33,22 @@ fi
source /etc/lsb-release;
-if [[ ! "23.04" > "${DISTRIB_RELEASE}" ]]; then
- BREAK_PACKAGES="--break-system-packages";
+declare -a _PIP_INSTALL_ARGS=()
+declare -a _PIP_UPGRADE_ARGS=(--upgrade)
+
+if [[ "${DISTRIB_RELEASE}" > "22.04" ]]; then
+ _PIP_INSTALL_ARGS+=(--break-system-packages);
+ if [[ "${DISTRIB_RELEASE}" > "23.04" ]]; then
+ _PIP_UPGRADE_ARGS+=(--ignore-installed);
+ fi
fi
-# Install the rapids dependency file generator and conda-merge
-/usr/bin/python3 -m pip install $BREAK_PACKAGES -U pip;
-/usr/bin/python3 -m pip install $BREAK_PACKAGES 'rapids-dependency-file-generator<1.14' conda-merge toml;
+/usr/bin/python3 -m pip install "${_PIP_INSTALL_ARGS[@]}" "${_PIP_UPGRADE_ARGS[@]}" pip;
+# Install RAPIDS dependency file generator, conda-merge, and toml
+/usr/bin/python3 -m pip install "${_PIP_INSTALL_ARGS[@]}" \
+ 'rapids-dependency-file-generator<1.14' \
+ conda-merge \
+ toml;
# Install RAPIDS build utility scripts to /opt/
diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-pip-dependencies.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-pip-dependencies.sh
index af4b818d..4a1ec400 100755
--- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-pip-dependencies.sh
+++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-pip-dependencies.sh
@@ -79,6 +79,7 @@ make_pip_dependencies() {
cuda="${cuda_version}"
cuda_suffixed=true
py="${python_version}"
+ use_cuda_wheels=false
);
# add extra arguments (if there are conflicts, e.g. 'py=3.10;py=3.11', it's fine... the last one will win)
diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/python-conda-pkg-names.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/python-conda-pkg-names.sh
index e0c8d55d..6cbbba61 100755
--- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/python-conda-pkg-names.sh
+++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/python-conda-pkg-names.sh
@@ -37,15 +37,16 @@ python_conda_pkg_names() {
if test -d ~/"${!repo_path:-}/.git"; then
# the regex will continue until morale improves
- find ~/"${!repo_path}/" \
- -type f -name 'meta.yaml' \
- ! -path '*/.conda/*' \
- ! -path '*/build/*' \
- ! -path '*/_skbuild/*' \
- -exec grep -E 'name: ?' {} \; \
- 2>/dev/null \
- | tr -d '[:blank:]' \
- | cut -d':' -f2 \
+ find ~/"${!repo_path}/" \
+ -type f -name 'meta.yaml' \
+ ! -path '*/.conda/*' \
+ ! -path '*/build/*' \
+ ! -path '*/_skbuild/*' \
+ ! -path '*/target/cmake-build/*' \
+ -exec grep -E 'name: ?' {} \; \
+ 2>/dev/null \
+ | tr -d '[:blank:]' \
+ | cut -d':' -f2 \
;
fi
done
diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/cpp.build.tmpl.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/cpp.build.tmpl.sh
index 4c79bffa..7bd7448e 100755
--- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/cpp.build.tmpl.sh
+++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/cpp.build.tmpl.sh
@@ -17,6 +17,9 @@ build_${CPP_LIB}_cpp() {
local -;
set -euo pipefail;
+ # Stop the sccache server in case we need to reload credentials before starting the next build
+ sccache --stop-server >/dev/null 2>&1 || true;
+
eval "$(\
PARALLEL_LEVEL=${PARALLEL_LEVEL:-$(nproc --all)} \
MAX_TOTAL_SYSTEM_MEMORY="${MAX_TOTAL_SYSTEM_MEMORY:-${CPP_MAX_TOTAL_SYSTEM_MEMORY}}" \
diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.build.wheel.tmpl.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.build.wheel.tmpl.sh
index 56fbc1d5..164bfae0 100755
--- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.build.wheel.tmpl.sh
+++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.build.wheel.tmpl.sh
@@ -21,6 +21,9 @@ build_${PY_LIB}_python_wheel() {
local -;
set -euo pipefail;
+ # Stop the sccache server in case we need to reload credentials before starting the next build
+ sccache --stop-server >/dev/null 2>&1 || true;
+
eval "$( \
PARALLEL_LEVEL=${PARALLEL_LEVEL:-$(nproc --all)} \
rapids-get-num-archs-jobs-and-load "$@" \
@@ -96,9 +99,9 @@ build_${PY_LIB}_python_wheel() {
PARALLEL_LEVEL="${n_jobs}" \
CMAKE_ARGS="${cmake_args[*]@Q}" \
SKBUILD_BUILD_OPTIONS="${ninja_args[*]}" \
+ SKBUILD_BUILD_VERBOSE="${v:+True}" \
SKBUILD_LOGGING_LEVEL="${v:+INFO}" \
SKBUILD_INSTALL_STRIP="${strip:+True}" \
- SKBUILD_CMAKE_VERBOSE="${v:+True}" \
SKBUILD_CMAKE_BUILD_TYPE="${build_type}" \
CMAKE_BUILD_PARALLEL_LEVEL="${n_jobs}" \
NVCC_APPEND_FLAGS="${nvcc_append_flags}" \
diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.install.tmpl.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.install.tmpl.sh
index 89e9d3a9..3af8073d 100755
--- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.install.tmpl.sh
+++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/tmpl/python.install.tmpl.sh
@@ -21,6 +21,9 @@ install_${PY_LIB}_python() {
local -;
set -euo pipefail;
+ # Stop the sccache server in case we need to reload credentials before starting the next build
+ sccache --stop-server >/dev/null 2>&1 || true;
+
eval "$( \
PARALLEL_LEVEL=${PARALLEL_LEVEL:-$(nproc --all)} \
rapids-get-num-archs-jobs-and-load "$@" \
@@ -114,9 +117,9 @@ install_${PY_LIB}_python() {
PARALLEL_LEVEL="${n_jobs}" \
CMAKE_ARGS="${cmake_args[*]@Q}" \
SKBUILD_BUILD_OPTIONS="${ninja_args[*]}" \
+ SKBUILD_BUILD_VERBOSE="${v:+True}" \
SKBUILD_LOGGING_LEVEL="${v:+INFO}" \
SKBUILD_INSTALL_STRIP="${strip:+True}" \
- SKBUILD_CMAKE_VERBOSE="${v:+True}" \
SKBUILD_CMAKE_BUILD_TYPE="${build_type}" \
CMAKE_BUILD_PARALLEL_LEVEL="${n_jobs}" \
NVCC_APPEND_FLAGS="${nvcc_append_flags}" \
diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml b/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml
index b74e6f76..2f6dad5f 100755
--- a/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml
+++ b/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml
@@ -1,6 +1,6 @@
x-git-defaults: &git_defaults
host: github
- tag: branch-24.08
+ tag: branch-24.10
upstream: rapidsai
x-rapids-build-backend-args: &rapids_build_backend_args |
@@ -28,7 +28,7 @@ repos:
- name: ucxx
path: ucxx
- git: {<<: *git_defaults, repo: ucxx, tag: branch-0.39}
+ git: {<<: *git_defaults, repo: ucxx, tag: branch-0.40}
cpp:
- name: ucxx
sub_dir: cpp
@@ -39,7 +39,7 @@ repos:
-DUCXX_ENABLE_RMM=ON
python:
- name: ucxx
- sub_dir: python
+ sub_dir: python/ucxx
depends: [ucxx]
args: {cmake: -DFIND_UCXX_CPP=ON, install: *rapids_build_backend_args}
- name: distributed-ucxx
@@ -78,6 +78,13 @@ repos:
sub_dir: cpp/libcudf_kafka
depends: [cudf]
python:
+ - name: libcudf
+ sub_dir: python/libcudf
+ depends: [cudf]
+ - name: pylibcudf
+ sub_dir: python/pylibcudf
+ depends: [cudf]
+ args: {cmake: -DFIND_CUDF_CPP=ON, install: *rapids_build_backend_args}
- name: cudf
sub_dir: python/cudf
depends: [cudf]
@@ -249,6 +256,9 @@ repos:
sub_dir: cpp
depends: [cudf]
python:
+ - name: libcuspatial
+ sub_dir: python/libcuspatial
+ depends: [cuspatial]
- name: cuproj
sub_dir: python/cuproj
depends: [rmm]
@@ -263,4 +273,4 @@ repos:
- name: cuspatial
sub_dir: python/cuspatial
depends: [cuspatial]
- args: {cmake: -DFIND_CUSPATIAL_CPP=ON, install: *rapids_build_backend_args}
+ args: {install: *rapids_build_backend_args}
diff --git a/features/src/rust/devcontainer-feature.json b/features/src/rust/devcontainer-feature.json
index f21b6b04..8d56e018 100644
--- a/features/src/rust/devcontainer-feature.json
+++ b/features/src/rust/devcontainer-feature.json
@@ -1,6 +1,6 @@
{
"id": "rust",
- "version": "24.8.1",
+ "version": "24.10.0",
"name": "Rust",
"documentationURL": "https://github.com/rapidsai/devcontainers/features/tree/main/src/rust",
"description": "Installs Rust, common Rust utilities, and their required dependencies",
diff --git a/features/src/sccache/.bashrc b/features/src/sccache/.bashrc
index 799d21b2..fa591c23 100644
--- a/features/src/sccache/.bashrc
+++ b/features/src/sccache/.bashrc
@@ -1,5 +1,4 @@
export RUSTC_WRAPPER=${RUSTC_WRAPPER:-/usr/bin/sccache};
-export SCCACHE_IDLE_TIMEOUT=${SCCACHE_IDLE_TIMEOUT:-32768};
export CMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER:-/usr/bin/sccache};
export CMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER:-/usr/bin/sccache};
export CMAKE_CUDA_COMPILER_LAUNCHER=${CMAKE_CUDA_COMPILER_LAUNCHER:-/usr/bin/sccache};
diff --git a/features/src/sccache/devcontainer-feature.json b/features/src/sccache/devcontainer-feature.json
index 708d58cb..17f4a3ce 100644
--- a/features/src/sccache/devcontainer-feature.json
+++ b/features/src/sccache/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "sccache",
"id": "sccache",
- "version": "24.8.1",
+ "version": "24.10.1",
"description": "A feature to install sccache",
"options": {
"version": {
diff --git a/features/src/ucx/devcontainer-feature.json b/features/src/ucx/devcontainer-feature.json
index 17d14299..02a6b407 100644
--- a/features/src/ucx/devcontainer-feature.json
+++ b/features/src/ucx/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "UCX",
"id": "ucx",
- "version": "24.8.3",
+ "version": "24.10.0",
"description": "A feature to install UCX",
"options": {
"version": {
diff --git a/features/src/utils/.bashrc b/features/src/utils/.bashrc
index 5096c8ba..c79c76fd 100644
--- a/features/src/utils/.bashrc
+++ b/features/src/utils/.bashrc
@@ -3,7 +3,7 @@
export PYTHONSAFEPATH="${PYTHONSAFEPATH:-1}";
# Append history lines as soon as they're entered
-export PROMPT_COMMAND="${PROMPT_COMMAND:-}";
+export PROMPT_COMMAND="${PROMPT_COMMAND:-history -a}";
if test -n "${PROMPT_COMMAND##*"history -a"*}"; then
export PROMPT_COMMAND="history -a; $PROMPT_COMMAND";
diff --git a/features/src/utils/devcontainer-feature.json b/features/src/utils/devcontainer-feature.json
index c72771a1..7fb87a98 100644
--- a/features/src/utils/devcontainer-feature.json
+++ b/features/src/utils/devcontainer-feature.json
@@ -1,7 +1,7 @@
{
"name": "devcontainer-utils",
"id": "utils",
- "version": "24.8.6",
+ "version": "24.10.3",
"description": "A feature to install RAPIDS devcontainer utility scripts",
"containerEnv": {
"BASH_ENV": "/etc/bash.bash_env"
diff --git a/features/src/utils/install.sh b/features/src/utils/install.sh
index 9b1e869d..56894de9 100644
--- a/features/src/utils/install.sh
+++ b/features/src/utils/install.sh
@@ -31,12 +31,18 @@ check_packages "${PKGS[@]}";
source /etc/lsb-release;
-if [[ ! "23.04" > "${DISTRIB_RELEASE}" ]]; then
- BREAK_PACKAGES="--break-system-packages";
+# Upgrade system pip
+declare -a _PIP_INSTALL_ARGS=()
+declare -a _PIP_UPGRADE_ARGS=(--upgrade)
+
+if [[ "${DISTRIB_RELEASE}" > "22.04" ]]; then
+ _PIP_INSTALL_ARGS+=(--break-system-packages);
+ if [[ "${DISTRIB_RELEASE}" > "23.04" ]]; then
+ _PIP_UPGRADE_ARGS+=(--ignore-installed);
+ fi
fi
-# upgrade pip
-/usr/bin/python3 -m pip install $BREAK_PACKAGES -U pip;
+/usr/bin/python3 -m pip install "${_PIP_INSTALL_ARGS[@]}" "${_PIP_UPGRADE_ARGS[@]}" pip;
# Install yq if not installed
if ! type yq >/dev/null 2>&1; then
diff --git a/features/src/utils/opt/devcontainer/bin/vault/s3/creds/generate.sh b/features/src/utils/opt/devcontainer/bin/vault/s3/creds/generate.sh
index ec21641b..5f6f8185 100755
--- a/features/src/utils/opt/devcontainer/bin/vault/s3/creds/generate.sh
+++ b/features/src/utils/opt/devcontainer/bin/vault/s3/creds/generate.sh
@@ -75,7 +75,7 @@ Successfully authenticated with vault!
____EOF
local -r generated_at="$(date '+%s')";
- local ttl="${VAULT_S3_TTL:-"28800"}";
+ local ttl="${VAULT_S3_TTL:-"43200"}";
local uri="${VAULT_S3_URI:-"v1/aws/creds/devs"}";
if grep -qE '^[0-9]$' <<< "${ttl}"; then
diff --git a/features/src/utils/opt/devcontainer/bin/vault/s3/creds/schedule.sh b/features/src/utils/opt/devcontainer/bin/vault/s3/creds/schedule.sh
index 2d2b4735..3e1f98b2 100755
--- a/features/src/utils/opt/devcontainer/bin/vault/s3/creds/schedule.sh
+++ b/features/src/utils/opt/devcontainer/bin/vault/s3/creds/schedule.sh
@@ -8,22 +8,23 @@ schedule_s3_creds_refresh() {
. devcontainer-utils-debug-output 'devcontainer_utils_debug' 'vault-s3 vault-s3-creds-schedule';
local -r now="$(date '+%s')";
- local ttl="${VAULT_S3_TTL:-"28800"}";
+ local ttl="${VAULT_S3_TTL:-"43200"}";
ttl="${ttl%s}";
local -r stamp="$(cat ~/.aws/stamp 2>/dev/null || echo "${now}")";
- local then="$((ttl - (now - stamp)))";
- then="$((then < ttl ? then : ttl))";
- then="$((((then + 59) / 60) * 60))";
+ local ttime="$((ttl - (now - stamp)))";
+ ttime="$((ttime < ttl ? ttime : ttl))";
+ ttime="$((( (ttime + 59) / 60) * 60))";
- # Regenerate if within 5 minutes of keys expiring
- if test "${then}" -le 300; then
+ # Regenerate creds if within `min(ttl / 5, 2hrs)` of keys expiring
+ local refresh_window="$(((ttl / 5) > 7200 ? 7200 : ttl / 5))";
+
+ if test "${ttime}" -le "${refresh_window}"; then
if devcontainer-utils-vault-s3-creds-generate; then
devcontainer-utils-vault-s3-creds-schedule;
fi
else
- # Regenerate 5 minutes before keys expire
- then="$((now + then - 300))";
+ ttime="$((now + ttime - refresh_window))";
crontab -u "$(whoami)" -r 2>/dev/null || true;
@@ -34,7 +35,7 @@ schedule_s3_creds_refresh() {
cat <<________EOF | tee -a /var/log/devcontainer-utils/vault-s3-creds-refresh.log
$(date --date="@${now}")
-Scheduling cron to regerate S3 creds $(date -u --date="@$((then - now))" '+%T') from now.
+Scheduling cron to regerate S3 creds $(date -u --date="@$((ttime - now))" '+%T') from now.
________EOF
cat <<________EOF | crontab -u "$(whoami)" -
@@ -47,7 +48,7 @@ SCCACHE_BUCKET="${SCCACHE_BUCKET:-}"
SCCACHE_REGION="${SCCACHE_REGION:-}"
VAULT_GITHUB_ORGS="${VAULT_GITHUB_ORGS:-}"
AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION:-}"
-$(date --date="@${then}" '+%M %H %d %m %w') \
+$(date --date="@${ttime}" '+%M %H %d %m %w') \
devcontainer-utils-vault-s3-creds-schedule
________EOF
diff --git a/features/src/utils/opt/devcontainer/bin/vault/s3/creds/test.sh b/features/src/utils/opt/devcontainer/bin/vault/s3/creds/test.sh
index 78ed0682..27e01ba7 100755
--- a/features/src/utils/opt/devcontainer/bin/vault/s3/creds/test.sh
+++ b/features/src/utils/opt/devcontainer/bin/vault/s3/creds/test.sh
@@ -14,7 +14,7 @@ test_aws_creds() {
if test -f ~/.aws/stamp; then
local -r now="$(date '+%s')";
local -r stamp="$(cat ~/.aws/stamp)";
- local ttl="${VAULT_S3_TTL:-"28800"}";
+ local ttl="${VAULT_S3_TTL:-"43200"}";
if [ $((now - stamp)) -ge "${ttl%s}" ]; then
exit 1;
fi
diff --git a/image/.devcontainer/Dockerfile b/image/.devcontainer/Dockerfile
index 49146752..a5fca818 100644
--- a/image/.devcontainer/Dockerfile
+++ b/image/.devcontainer/Dockerfile
@@ -3,3 +3,5 @@ FROM ${BASE}
ARG RAPIDS_VERSION
ENV RAPIDS_VERSION=$RAPIDS_VERSION
+
+RUN if grep ubuntu:x:1000:1000 /etc/passwd >/dev/null; then userdel -f -r ubuntu; fi
diff --git a/matrix.yml b/matrix.yml
index 08a07816..87899546 100644
--- a/matrix.yml
+++ b/matrix.yml
@@ -1,7 +1,7 @@
x-cuda-prev-min: &cuda_prev_min { name: "cuda", version: "11.1" }
x-cuda-prev-max: &cuda_prev_max { name: "cuda", version: "11.8" }
x-cuda-curr-min: &cuda_curr_min { name: "cuda", version: "12.0" }
-x-cuda-curr-max: &cuda_curr_max { name: "cuda", version: "12.5" }
+x-cuda-curr-max: &cuda_curr_max { name: "cuda", version: "12.6" }
x-cuda-curr-max: &cuda_curr_max_rapids { name: "cuda", version: "12.5" }
x-gcc-6: &gcc_6 { name: "gcc", version: "6" }
@@ -12,10 +12,10 @@ x-gcc-10: &gcc_10 { name: "gcc", version: "10" }
x-gcc-11: &gcc_11 { name: "gcc", version: "11" }
x-gcc-12: &gcc_12 { name: "gcc", version: "12" }
x-gcc-13: &gcc_13 { name: "gcc", version: "13" }
-x-gcc-env: &gcc_env {CC: "gcc", CXX: "g++", CUDAHOSTCXX: "g++"}
+x-gcc-env: &gcc_env { CC: "gcc", CXX: "g++", CUDAHOSTCXX: "g++" }
x-oneapi: &oneapi_2022 { name: "oneapi", version: "2023.2.0" }
-x-oneapi-env: &onapi_env {CC: "icc", CXX: "icpc", CUDAHOSTCXX: "icpc" }
+x-oneapi-env: &onapi_env { CC: "icc", CXX: "icpc", CUDAHOSTCXX: "icpc" }
x-llvm-9: &llvm_9 { name: "llvm", version: "9" }
x-llvm-10: &llvm_10 { name: "llvm", version: "10" }
@@ -28,22 +28,23 @@ x-llvm-16: &llvm_16 { name: "llvm", version: "16" }
x-llvm-17: &llvm_17 { name: "llvm", version: "17" }
x-llvm-prev: &llvm_18 { name: "llvm", version: "18" }
x-llvm-curr: &llvm_19 { name: "llvm", version: "19" }
-x-llvm-env: &llvm_env {CC: "clang", CXX: "clang++", CUDAHOSTCXX: "clang++"}
+x-llvm-env: &llvm_env { CC: "clang", CXX: "clang++", CUDAHOSTCXX: "clang++" }
-x-nvhpc-prev: &nvhpc_prev { name: "nvhpc", version: "24.3" }
-x-nvhpc-curr: &nvhpc_curr { name: "nvhpc", version: "24.5" }
+x-nvhpc-prev: &nvhpc_prev { name: "nvhpc", version: "24.5" }
+x-nvhpc-curr: &nvhpc_curr { name: "nvhpc", version: "24.7" }
-x-nvhpc-env: &nvhpc_env {CC: "nvc", CXX: "nvc++"}
+x-nvhpc-env: &nvhpc_env { CC: "nvc", CXX: "nvc++", CUDAHOSTCXX: "nvc++" }
x-mambaforge: &conda { name: "mambaforge" }
x-python: &python { name: "ghcr.io/devcontainers/features/python:1.6.2", version: "os-provided", installTools: "false", hide: true }
-x-ucx-rapids: &ucx_rapids {name: "ucx", version: "1.17.0"}
-x-openmpi: &openmpi {name: "openmpi"}
+x-ucx-rapids: &ucx_rapids { name: "ucx", version: "1.17.0" }
+x-openmpi: &openmpi { name: "openmpi" }
x-cccl-dev: &cccl_dev { name: "cccl-dev", hide: true }
-x-clangd-dev: &clangd_dev {name: "llvm", version: "19", packages: "clangd", hide: true}
-x-clang-format-cccl: &clang_format_cccl {name: "llvm", version: "18", packages: "clang-format", hide: true}
-x-clang-format-rapids: &clang_format_rapids {name: "llvm", version: "16", packages: "clang-format", hide: true}
+x-clangd-dev: &clangd_dev { name: "llvm", version: "dev", packages: "clangd", hide: true }
+x-clangd-dev-bionic: &clangd_dev_bionic { name: "llvm", version: "19", packages: "clangd", hide: true }
+x-clang-format-cccl: &clang_format_cccl { name: "llvm", version: "18", packages: "clang-format llvm-tools", hide: true }
+x-clang-format-rapids: &clang_format_rapids { name: "llvm", version: "16", packages: "clang-format", hide: true }
# CCCL only needs a subset of the full CTK:
x-cccl-cuda-opts: &cccl_cuda_opts {
@@ -60,104 +61,103 @@ include:
- os: "ubuntu:18.04"
images:
- - {features: [*python, *gcc_6, {<<: *cuda_prev_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_7, {<<: *cuda_prev_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_8, {<<: *cuda_prev_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_9, {<<: *cuda_prev_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *llvm_9, {<<: *cuda_prev_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *oneapi_2022, {<<: *cuda_prev_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env}
+ - { features: [*python, *gcc_6, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_7, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_8, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_9, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *llvm_9, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev_bionic, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *oneapi_2022, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev_bionic, *cccl_dev], env: *onapi_env }
- os: "ubuntu:20.04"
images:
- - {features: [*python, *gcc_7, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_7, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_8, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_8, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_9, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_9, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_10, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_10, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *llvm_9, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_9, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_10, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_10, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_11, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_11, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_12, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_12, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_13, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_13, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_14, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_14, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *oneapi_2022, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env}
+ - { features: [*python, *gcc_7, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_7, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_8, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_8, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_9, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_9, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_10, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_10, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *llvm_9, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_9, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_10, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_10, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_11, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_11, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_12, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_12, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_13, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_14, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_14, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *oneapi_2022, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env }
- os: "ubuntu:22.04"
images:
- - {features: [*python, *nvhpc_prev, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *nvhpc_env}
- - {features: [*python, *nvhpc_curr, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *nvhpc_env}
- - {features: [*python, *gcc_11, {<<: *cuda_prev_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_11, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_11, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_12, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_12, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_13, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *gcc_13, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
- - {features: [*python, *llvm_15, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_15, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_16, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_16, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_17, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_17, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_18, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_18, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_19, {<<: *cuda_curr_min, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *llvm_19, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env}
- - {features: [*python, *oneapi_2022, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env}
-
-# Hack for getting gcc-13.2
-- os: "ubuntu:23.04"
+ - { features: [*python, *nvhpc_prev, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *nvhpc_env }
+ - { features: [*python, *nvhpc_curr, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *nvhpc_env }
+ - { features: [*python, *gcc_11, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_11, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_11, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_12, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_12, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_13, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
+ - { features: [*python, *llvm_15, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_15, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_16, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_16, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_17, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_17, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_18, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_18, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_19, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *llvm_19, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
+ - { features: [*python, *oneapi_2022, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env }
+
+- os: "ubuntu:24.04"
images:
- - {features: [*python, *gcc_13, {<<: *cuda_curr_max, <<: *cccl_cuda_opts}, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env}
+ - { features: [*python, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- os: "windows"
images:
# lowest CUDA version
- - {features: [{<<: *cuda_prev_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.14" }]} # MSVC 2017
- - {features: [{<<: *cuda_prev_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.15" }]} # MSVC 2017
- - {features: [{<<: *cuda_prev_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.16" }]} # MSVC 2017
- - {features: [{<<: *cuda_prev_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.27" }]} # MSVC 2019
- - {features: [{<<: *cuda_prev_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.28" }]} # MSVC 2019
- - {features: [{<<: *cuda_prev_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.29" }]} # MSVC 2019
+ - { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.14" }] } # MSVC 2017
+ - { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.15" }] } # MSVC 2017
+ - { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.16" }] } # MSVC 2017
+ - { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.27" }] } # MSVC 2019
+ - { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.28" }] } # MSVC 2019
+ - { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
# middlest CUDA version
- - {features: [{<<: *cuda_curr_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.29" }]} # MSVC 2019
- - {features: [{<<: *cuda_curr_min, <<: *cccl_cuda_opts}, { name: "cl", version: "14.36" }]} # MSVC 2022
+ - { features: [{ <<: *cuda_curr_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
+ - { features: [{ <<: *cuda_curr_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.36" }] } # MSVC 2022
# highest CUDA version
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.14" }]} # MSVC 2017
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.15" }]} # MSVC 2017
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.16" }]} # MSVC 2017
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.27" }]} # MSVC 2019
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.28" }]} # MSVC 2019
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.29" }]} # MSVC 2019
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.37" }]} # MSVC 2022
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.38" }]} # MSVC 2022
- - {features: [{<<: *cuda_curr_max, <<: *cccl_cuda_opts}, { name: "cl", version: "14.39" }]} # MSVC 2022
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.14" }] } # MSVC 2017
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.15" }] } # MSVC 2017
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.16" }] } # MSVC 2017
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.27" }] } # MSVC 2019
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.28" }] } # MSVC 2019
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.37" }] } # MSVC 2022
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.38" }] } # MSVC 2022
+ - { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.39" }] } # MSVC 2022
# RAPIDS devcontainers
- os: "ubuntu:22.04"
images:
# cuda
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_prev_max], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_min], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max_rapids], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_prev_max, *ucx_rapids, *openmpi], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_min, *ucx_rapids, *openmpi], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max, *ucx_rapids, *openmpi], env: *gcc_env}
- - {features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max_rapids, *ucx_rapids, *openmpi], env: *gcc_env}
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_prev_max], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_min], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max_rapids], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_prev_max, *ucx_rapids, *openmpi], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_min, *ucx_rapids, *openmpi], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max, *ucx_rapids, *openmpi], env: *gcc_env }
+ - { features: [*python, *clang_format_rapids, *clangd_dev, *cuda_curr_max_rapids, *ucx_rapids, *openmpi], env: *gcc_env }
# mambaforge
- - features: [*conda]
+ - { features: [*conda], env: { "PYTHON_VERSION": "3.12" } }
###
# Legacy CUDA 11.x + mambaforge image. Needed so the cudatoolkit 11.x
@@ -166,4 +166,4 @@ include:
###
# cuda-mambaforge
- - features: [*cuda_prev_max, *conda]
+ - { features: [*cuda_prev_max, *conda], env: { "PYTHON_VERSION": "3.12" } }