From 66a2147d41ec1e4d8e6f8f57c262c6a5b4732a03 Mon Sep 17 00:00:00 2001 From: jichuanh Date: Tue, 19 May 2026 23:56:35 +0000 Subject: [PATCH 1/3] [Diag] Print numpy + bundled OpenBLAS hash at pytest session start Adds source/conftest.py so pytest dumps the resolved numpy version and the bundled OpenBLAS .so filename at session start. Used by the negative/positive arm validation PRs to capture which numpy bundle each CI test container ends up with after isaaclab.sh --install completes. The conftest.py imports numpy at module load. This is what pytest does naturally via isaaclab module imports anyway -- making the import explicit here only adds visibility, not crash conditions. --- source/conftest.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 source/conftest.py diff --git a/source/conftest.py b/source/conftest.py new file mode 100644 index 000000000000..e15dcb34658d --- /dev/null +++ b/source/conftest.py @@ -0,0 +1,23 @@ +# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md). +# All rights reserved. +# +# SPDX-License-Identifier: BSD-3-Clause + +"""Dep-manifest diagnostic: prints numpy version + bundled OpenBLAS hash at pytest session start. + +Loaded by pytest when collecting tests under ``source/``. Importing numpy here registers +its vendored OpenBLAS ``pthread_atfork`` handler in pytest's process, which is the same +process that later calls ``fork()`` via ``SimulationApp()``. The output identifies which +numpy + OpenBLAS bundle actually landed in each CI test container. +""" + +import os + +import numpy + +print(f"\n[dep-manifest] numpy {numpy.__version__}", flush=True) +_libs_dir = os.path.join(os.path.dirname(numpy.__file__), os.pardir, "numpy.libs") +if os.path.isdir(_libs_dir): + for _f in sorted(os.listdir(_libs_dir)): + if "openblas" in _f.lower(): + print(f"[dep-manifest] bundled openblas: {_f}", flush=True) From 5ac5cb518ffe820f4062693b1ed12a3fcede8648 Mon Sep 17 00:00:00 2001 From: jichuanh Date: Thu, 21 May 2026 22:30:54 +0000 Subject: [PATCH 2/3] [Diag] Cache-bust Dockerfile.base to force fresh pip resolve Trivial comment-only change to docker/Dockerfile.base so the ECR deps-cache hash (computed from file contents per .github/actions/ecr-build-push-pull) changes and the next Docker build re-resolves pip from scratch. Purpose: pick up the upstream cmeel-boost 1.90.0 + pin/libpinocchio 4.0.0 chain that landed on PyPI 2026-05-20 / 2026-05-21, which the cached deps image still misses. Negative-arm validation only -- do not merge. --- docker/Dockerfile.base | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/Dockerfile.base b/docker/Dockerfile.base index 39982b343d08..c3ae1cb67079 100644 --- a/docker/Dockerfile.base +++ b/docker/Dockerfile.base @@ -103,6 +103,7 @@ RUN touch /bin/nvidia-smi && \ mkdir -p /var/run/nvidia-persistenced && \ touch /var/run/nvidia-persistenced/socket +# Cache-bust marker (PR #5655 validation: force fresh pip resolve to pick up cmeel-boost 1.90.0). # On arm64, pre-install nlopt 2.6.2 (transitively pinned by isaacteleop[retargeters]). # There is no aarch64 wheel for this version, and pip's isolated build env hides the # system numpy from nlopt's cmake-based build, so we install it manually with From 5881a03d5bc6d27d22b012348332a6e39ded0b1a Mon Sep 17 00:00:00 2001 From: jichuanh Date: Mon, 25 May 2026 05:33:09 +0000 Subject: [PATCH 3/3] [Diag] Re-trigger after upstream pip_pink.toml prebundle bump Upstream NVIDIA-dev/IsaacSim landed the cmeel-stack version bumps in deps/pip_pink.toml (commit 88196eccd3 by ssulkunte, 2026-05-25 04:49 UTC): cmeel-boost 1.89.0 -> 1.90.0, pin 3.9.0 -> 4.0.0, libpinocchio 3.9.0 -> 4.0.0, etc. Bumping the cache-bust marker to force a fresh deps-cache miss + fresh resolve so this run picks up the new Isaac Sim base image and validates the auto-fix. Expected dep-manifest: numpy 2.4.6 + libscipy_openblas64_. --- docker/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile.base b/docker/Dockerfile.base index c3ae1cb67079..8f255ce9c3bf 100644 --- a/docker/Dockerfile.base +++ b/docker/Dockerfile.base @@ -103,7 +103,7 @@ RUN touch /bin/nvidia-smi && \ mkdir -p /var/run/nvidia-persistenced && \ touch /var/run/nvidia-persistenced/socket -# Cache-bust marker (PR #5655 validation: force fresh pip resolve to pick up cmeel-boost 1.90.0). +# Cache-bust marker (PR #5655 validation: force fresh pip resolve after upstream prebundle bump 2026-05-25). # On arm64, pre-install nlopt 2.6.2 (transitively pinned by isaacteleop[retargeters]). # There is no aarch64 wheel for this version, and pip's isolated build env hides the # system numpy from nlopt's cmake-based build, so we install it manually with