Avoid duplicate MuJoCo schema registration - #7393
Conversation
Greptile SummaryThe PR removes the redundant
Confidence Score: 5/5The PR appears safe to merge with no concrete blocking or non-blocking defects identified. The supported Kit dependency stack supplies Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Import isaaclab] --> B[Locate mujoco_usd_converter]
B --> C[Expose converter plugins through PXR_PLUGINPATH_NAME]
C --> D[OpenUSD builds schema registry]
D --> E[MjcSceneAPI available]
F[Kit experiences] -->|No redundant omni.usd.schema.mujoco dependency| D
Reviews (1): Last reviewed commit: "Avoid duplicate MuJoCo schema registrati..." | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The dependency removal consistently avoids duplicate MuJoCo schema registration in both Kit experiences, but the changelog describes schema unavailability rather than the duplicate-registration error actually fixed.
- Design and architecture: The change consolidates schema exposure through Isaac Lab’s existing
PXR_PLUGINPATH_NAMEsetup and removes the redundantomni.usd.schema.mujocoregistration path from both GUI and headless experiences. - API: No public Python API changes are introduced. The externally visible change is limited to Kit experience dependencies and release documentation.
- Implementation: Both experience files remove the redundant dependency consistently, and the added docstring records the registration constraint. The changelog should be corrected to say that startup no longer reports duplicate
mjcPhysicsplugin registration, rather than claiming the schema was reported unavailable.
Minor fixes needed. Posted 1 actionable finding inline.
Automated review; human maintainers own approval decisions.
| Fixed | ||
| ^^^^^ | ||
|
|
||
| * Fixed Kit visualizer startup reporting that the ``mjcPhysics`` schema was unavailable when the |
There was a problem hiding this comment.
🔵 Suggestion · Implementation — Changelog describes the wrong startup symptom
The fragment says startup reported that mjcPhysics "was unavailable", but the added docstring and the actual change address the opposite case: the schema was already available and the extra omni.usd.schema.mujoco extension logged its duplicate plugin registration as an error. Users matching the release note against their startup log will look for the wrong message. Reword to state that the redundant Kit extension was removed to avoid duplicate mjcPhysics schema registration.
|
run-ci |
|
CI follow-up: commit Local validation after the follow-up:
No regression test was added, as requested. The older x86 installation job failure is unrelated to this patch: its log reports CUDA error 999 and a Newton version assertion. |
|
run-ci |
|
run-ci |
# Description Isaac Lab exposes the codeless `mjcPhysics` plugin through `PXR_PLUGINPATH_NAME` before OpenUSD builds its schema registry. The Kit experiences also enabled `omni.usd.schema.mujoco`, which bundles a second plugin with the same name and reports the duplicate registration as an error even though the schema is already available. This change removes the redundant extension dependency from the GUI and headless Kit experiences. It keeps the early Isaac Lab schema exposure needed by kitless MJCF conversion and documents why Kit must not register a second copy. No Kit extension replaces `omni.usd.schema.mujoco`: importing `isaaclab` adds the standalone `mujoco_usd_converter/plugins` directory to `PXR_PLUGINPATH_NAME`, and the OpenUSD `Plug.Registry` discovers its codeless schema metadata. This is the same mechanism in Kit and kitless processes. No new dependencies are required. ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Screenshots Not applicable; this removes a startup log error. ## Validation - Live `isaaclab.python.kit` experience: launched successfully with `headless=True`; `MjcSceneAPI` and the `mjcPhysics` plugin were available, `omni.usd.schema.mujoco` remained disabled, and the duplicate-registration error had zero matches - Fresh kitless probe: `AppLauncher.is_available()` was false while `MjcSceneAPI` and `mjcPhysics` were available from the standalone converter plugin directory - Existing kitless MJCF converter suite: 12 passed - Existing experience-file tests: 6 passed - Changelog validation against `upstream/develop`: passed - Full repository formatting and pre-commit gate: passed No new regression test was added, as requested. ## Checklist - [x] I have read and understood the contribution guidelines - [x] I have run the pre-commit checks - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] I have added a changelog fragment under `source/isaaclab/changelog.d/` - [x] My name already exists in `CONTRIBUTORS.md` (cherry picked from commit 493e3e3)
|
Backported to |
Description
Isaac Lab exposes the codeless
mjcPhysicsplugin throughPXR_PLUGINPATH_NAMEbefore OpenUSD builds its schema registry. The Kit experiences also enabledomni.usd.schema.mujoco, which bundles a second plugin with the same name and reports the duplicate registration as an error even though the schema is already available.This change removes the redundant extension dependency from the GUI and headless Kit experiences. It keeps the early Isaac Lab schema exposure needed by kitless MJCF conversion and documents why Kit must not register a second copy.
No Kit extension replaces
omni.usd.schema.mujoco: importingisaaclabadds the standalonemujoco_usd_converter/pluginsdirectory toPXR_PLUGINPATH_NAME, and the OpenUSDPlug.Registrydiscovers its codeless schema metadata. This is the same mechanism in Kit and kitless processes.No new dependencies are required.
Type of change
Release backport
developScreenshots
Not applicable; this removes a startup log error.
Validation
isaaclab.python.kitexperience: launched successfully withheadless=True;MjcSceneAPIand themjcPhysicsplugin were available,omni.usd.schema.mujocoremained disabled, and the duplicate-registration error had zero matchesAppLauncher.is_available()was false whileMjcSceneAPIandmjcPhysicswere available from the standalone converter plugin directoryupstream/develop: passedNo new regression test was added, as requested.
Checklist
source/isaaclab/changelog.d/CONTRIBUTORS.md