diff --git a/source/isaaclab/changelog.d/pv-log-kit-version.rst b/source/isaaclab/changelog.d/pv-log-kit-version.rst new file mode 100644 index 000000000000..a951551cc345 --- /dev/null +++ b/source/isaaclab/changelog.d/pv-log-kit-version.rst @@ -0,0 +1,4 @@ +Added +^^^^^ + +* Added Kit version, kernel version, and git hash logging to :class:`~isaaclab.app.AppLauncher` startup. diff --git a/source/isaaclab/isaaclab/app/app_launcher.py b/source/isaaclab/isaaclab/app/app_launcher.py index d9330c2e5eeb..4f5ce1836358 100644 --- a/source/isaaclab/isaaclab/app/app_launcher.py +++ b/source/isaaclab/isaaclab/app/app_launcher.py @@ -341,6 +341,9 @@ def __init__(self, launcher_args: argparse.Namespace | dict | None = None, **kwa # use __stderr__ which is never suppressed. print("[ISAACLAB] AppLauncher initialization complete", file=sys.__stderr__, flush=True) + # Log Kit/runtime version information for diagnostics. + self._log_kit_version_info() + # Ensure SimulationApp.close() is called on normal process exit so Kit # shuts down cleanly instead of relying on __del__ (which logs a warning # and can leave GPU resources in a bad state for the next test). @@ -1374,6 +1377,22 @@ def _hide_play_button(self, flag): play_button_group._play_button.visible = not flag # type: ignore play_button_group._play_button.enabled = not flag # type: ignore + def _log_kit_version_info(self): + """Log Kit and runtime version information.""" + import carb + import omni.kit.app + + app = omni.kit.app.get_app() + tokens = carb.tokens.get_tokens_interface() + + kit_version = app.get_kit_version() + kernel_version = app.get_kernel_version() + kit_git_hash = tokens.resolve("${kit_git_hash}") or "unknown" + + print(f"[ISAACLAB] Kit version: {kit_version}", file=sys.__stderr__, flush=True) + print(f"[ISAACLAB] Kit kernel: {kernel_version}", file=sys.__stderr__, flush=True) + print(f"[ISAACLAB] Kit hash: {kit_git_hash}", file=sys.__stderr__, flush=True) + def _abort_signal_handle_callback(self, signal, frame): """Handle the abort/segmentation/kill signals.""" # close the app