What is the recommended method to declare dependencies for our extensions?

I am using a type LulaKinematicsSolver in my extension and saw an error

ImportError: DLL load failed while importing lula: The specified module could not be found

It was solved by adding “omni.isaac.motion_generation” = {} to the extension dependencies list.

Our list is still not exhaustive. Currently I would only add them when there is error, and it is required to fix, but this may not be ideal.

I would like to better understand how extension dependencies list is intended to be used and what the benefits are.

[dependencies]
"omni.kit.uiapp" = {}
"omni.isaac.ui" = {}
"omni.isaac.core" = {}
"omni.isaac.motion_generation" = {}

Even if I get an exhaustive list from the extension page, it’s not clear that adding all of them would add any benefit so I prefer not to list them so that I don’t have to keep the list in synch with the code.

1 Like

Thank you for your question about declaring dependencies for extensions in Isaac Sim. The recommended method for declaring dependencies is indeed through the [dependencies] section in your extension.toml file, as you’ve shown in your example.

For a comprehensive guide on managing extension dependencies, I recommend checking out these two official documentation pages:

  1. Extensions in-depth
  2. Application Dependencies Management