From 7f0130fc8bfe6edd0ac1ff2d0ac5219a1719ca8e Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 08:41:50 -0800 Subject: [PATCH 1/7] exit with error if creating python environment fails --- features/src/rapids-build-utils/devcontainer-feature.json | 4 ++-- .../opt/rapids-build-utils/bin/post-start-command.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/features/src/rapids-build-utils/devcontainer-feature.json b/features/src/rapids-build-utils/devcontainer-feature.json index b388be5c3..514acf415 100644 --- a/features/src/rapids-build-utils/devcontainer-feature.json +++ b/features/src/rapids-build-utils/devcontainer-feature.json @@ -8,9 +8,9 @@ }, "postStartCommand": [ "/bin/bash", - "-li", + "-lic", "+o", "history", - "rapids-post-start-command" + "rapids-post-start-command || true" ] } diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh index f919ac1c9..7a275dc1b 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh @@ -6,7 +6,7 @@ if ! test -n "${SKIP_RAPIDS_BUILD_UTILS_POST_START_COMMAND:+x}"; then rapids-make-vscode-workspace --update & rapids-merge-compile-commands-json > ~/compile_commands.json & if test -n "${PYTHON_PACKAGE_MANAGER:+x}"; then - rapids-make-"${PYTHON_PACKAGE_MANAGER}"-env "$@" || true; + rapids-make-"${PYTHON_PACKAGE_MANAGER}"-env "$@"; fi wait fi From 051d655214121cd114dbfd93f680132d224e54c2 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 08:42:23 -0800 Subject: [PATCH 2/7] bump feature version --- features/src/rapids-build-utils/devcontainer-feature.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/src/rapids-build-utils/devcontainer-feature.json b/features/src/rapids-build-utils/devcontainer-feature.json index 514acf415..ef51ec2b9 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": "26.4.3", + "version": "26.4.4", "description": "A feature to install the RAPIDS devcontainer build utilities", "containerEnv": { "BASH_ENV": "/etc/bash.bash_env" From 2dde70815b4462194bddce95ee0bedb0bce04892 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 08:52:49 -0800 Subject: [PATCH 3/7] print exit code --- .../opt/rapids-build-utils/bin/make-conda-env.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh index 0a5b5e591..ab26ed797 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh @@ -55,6 +55,7 @@ make_conda_env() { echo ""; conda env create "${q[@]}" -n "${env_name}" -f "${new_env_path}" --solver=libmamba; + echo "conda env create exit code: $?" >&2 # If the conda env does exist but it's different from the generated one, # print the diff between the envs and update it elif ! diff -BNqw "${old_env_path}" "${new_env_path}" >/dev/null 2>&1; then @@ -74,6 +75,7 @@ make_conda_env() { rm -rf "${HOME}/.conda/envs/${env_name}"; conda env create "${q[@]}" -n "${env_name}" -f "${new_env_path}" --solver=libmamba; + echo "conda env create exit code: $?" >&2 fi cp -a "${new_env_path}" "${old_env_path}"; From 6f589aff36ef9b4f955af45ce40bfb6034fe6b5c Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 09:02:39 -0800 Subject: [PATCH 4/7] bump feature version --- features/src/rapids-build-utils/devcontainer-feature.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/src/rapids-build-utils/devcontainer-feature.json b/features/src/rapids-build-utils/devcontainer-feature.json index ef51ec2b9..0396549bb 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": "26.4.4", + "version": "26.4.5", "description": "A feature to install the RAPIDS devcontainer build utilities", "containerEnv": { "BASH_ENV": "/etc/bash.bash_env" From 3ae6d002329267ae124dc40a1393d72163f38f44 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 09:02:49 -0800 Subject: [PATCH 5/7] print exit code --- .../opt/rapids-build-utils/bin/post-start-command.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh index 7a275dc1b..e0a7648ec 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh @@ -7,6 +7,7 @@ if ! test -n "${SKIP_RAPIDS_BUILD_UTILS_POST_START_COMMAND:+x}"; then rapids-merge-compile-commands-json > ~/compile_commands.json & if test -n "${PYTHON_PACKAGE_MANAGER:+x}"; then rapids-make-"${PYTHON_PACKAGE_MANAGER}"-env "$@"; + echo "rapids-make-"${PYTHON_PACKAGE_MANAGER}"-env exit code: $?" >&2 fi wait fi From 86b87c8ef53c0f9a763db730f94ee7113fdd5ed7 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 09:23:07 -0800 Subject: [PATCH 6/7] set -e in rapids-post-start-command --- .../opt/rapids-build-utils/bin/make-conda-env.sh | 2 -- .../opt/rapids-build-utils/bin/post-start-command.sh | 10 ++++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh index ab26ed797..0a5b5e591 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/make-conda-env.sh @@ -55,7 +55,6 @@ make_conda_env() { echo ""; conda env create "${q[@]}" -n "${env_name}" -f "${new_env_path}" --solver=libmamba; - echo "conda env create exit code: $?" >&2 # If the conda env does exist but it's different from the generated one, # print the diff between the envs and update it elif ! diff -BNqw "${old_env_path}" "${new_env_path}" >/dev/null 2>&1; then @@ -75,7 +74,6 @@ make_conda_env() { rm -rf "${HOME}/.conda/envs/${env_name}"; conda env create "${q[@]}" -n "${env_name}" -f "${new_env_path}" --solver=libmamba; - echo "conda env create exit code: $?" >&2 fi cp -a "${new_env_path}" "${old_env_path}"; diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh index e0a7648ec..6bea2d8ad 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/bin/post-start-command.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -if ! test -n "${SKIP_RAPIDS_BUILD_UTILS_POST_START_COMMAND:+x}"; then +_rapids_post_start_command() { + local -; + set -euo pipefail; + rapids-generate-scripts; rapids-update-build-dir-links -j & rapids-make-vscode-workspace --update & rapids-merge-compile-commands-json > ~/compile_commands.json & if test -n "${PYTHON_PACKAGE_MANAGER:+x}"; then rapids-make-"${PYTHON_PACKAGE_MANAGER}"-env "$@"; - echo "rapids-make-"${PYTHON_PACKAGE_MANAGER}"-env exit code: $?" >&2 fi wait +} + +if ! test -n "${SKIP_RAPIDS_BUILD_UTILS_POST_START_COMMAND:+x}"; then + _rapids_post_start_command "$@" <&0; fi From d00026b112fa50095fdf656d37dd7dde1fedbb84 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 6 Mar 2026 14:15:01 -0800 Subject: [PATCH 7/7] use devcontainers key for rapidsmpf dependencies --- .../src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml | 2 ++ 1 file changed, 2 insertions(+) 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 21debac7c..aa4b5be2a 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 @@ -130,6 +130,8 @@ repos: - name: rapidsmpf path: rapidsmpf git: {<<: *git_defaults, repo: rapidsmpf} + dependency_keys: + - devcontainers cpp: - name: rapidsmpf sub_dir: cpp