From 4639687d7efadc200b90e8069d5d0a81691131af Mon Sep 17 00:00:00 2001 From: Antoine RICHARD Date: Wed, 3 Jun 2026 01:39:30 +0100 Subject: [PATCH] Fix cloner lazy exports (#5920) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description Restores the package-level `isaaclab.cloner.resolve_clone_plan_source` lazy export used by the Newton RayCaster backend. This fixes Newton RayCaster task construction failures where `isaaclab_newton.sensors.ray_caster` could not import the helper from `isaaclab.cloner`. The PR also removes stale cloner stub exports that no longer have implementations, so every name in `isaaclab.cloner.__all__` resolves. These stale names were not caught by existing tests because no code or test imported or accessed `path_source_path` or `cfg_source_path`; `lazy_export()` can import the package and resolve other names without touching every `__all__` entry. No new dependencies are required for this change. @OctiZhangOctiZhang (), could you review? Fixes # (no linked issue) ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Screenshots Not applicable. ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - Ran `./isaaclab.sh -f`; `ruff` formatted one file, then the full hook set was blocked because `git-lfs` is not installed in this environment. - Ran `SKIP=check-git-lfs-pointers ./isaaclab.sh -f` after formatting; all non-LFS hooks passed. - [x] I have made corresponding changes to the documentation - No documentation update was needed for this import/export fix. - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - No test was added for this simple lazy-export correction. Validation was done with the Newton RayCaster repro and a one-off import scan. Note: existing `from isaaclab.cloner import _fabric_notices` test imports do not cover this lazy-export path because `_fabric_notices` is a real package submodule, while `resolve_clone_plan_source` is a function that must be declared in `__init__.pyi` for `lazy_export()` to expose it. - [x] I have added a changelog fragment under `source//changelog.d/` for every touched package (do **not** edit `CHANGELOG.rst` or bump `extension.toml` — CI handles that) - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there --- source/isaaclab/changelog.d/fix-cloner-lazy-exports.rst | 4 ++++ source/isaaclab/isaaclab/cloner/__init__.pyi | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 source/isaaclab/changelog.d/fix-cloner-lazy-exports.rst diff --git a/source/isaaclab/changelog.d/fix-cloner-lazy-exports.rst b/source/isaaclab/changelog.d/fix-cloner-lazy-exports.rst new file mode 100644 index 000000000000..5bd2abea6c1f --- /dev/null +++ b/source/isaaclab/changelog.d/fix-cloner-lazy-exports.rst @@ -0,0 +1,4 @@ +Fixed +^^^^^ + +* Fixed missing :mod:`isaaclab.cloner` lazy exports for clone-plan source resolution. diff --git a/source/isaaclab/isaaclab/cloner/__init__.pyi b/source/isaaclab/isaaclab/cloner/__init__.pyi index f3fc2801c6d1..348294dc1c12 100644 --- a/source/isaaclab/isaaclab/cloner/__init__.pyi +++ b/source/isaaclab/isaaclab/cloner/__init__.pyi @@ -6,13 +6,12 @@ __all__ = [ "CloneCfg", "ClonePlan", - "cfg_source_path", "disabled_fabric_change_notifies", "filter_collisions", "grid_transforms", "make_clone_plan", - "path_source_path", "random", + "resolve_clone_plan_source", "sequential", "usd_replicate", ] @@ -21,11 +20,10 @@ from .clone_plan import ClonePlan from .cloner_cfg import CloneCfg from .cloner_strategies import random, sequential from .cloner_utils import ( - cfg_source_path, disabled_fabric_change_notifies, filter_collisions, grid_transforms, make_clone_plan, - path_source_path, + resolve_clone_plan_source, usd_replicate, )