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 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)