[Workflow] Clarify Isaac Lab wheel extras - #7168
Conversation
Greptile SummaryThe PR separates Isaac Sim from the curated
Confidence Score: 5/5The PR appears safe to merge, with the package metadata, documentation, and installation checks consistently reflecting the new extras split. No concrete changed-code failure remains; the supported installation paths are represented consistently in package metadata, documentation, lock data, and CI coverage. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
Wheel[isaaclab wheel] --> All[isaaclab all]
All --> OV[OV backends]
All --> RL[RL libraries]
All --> Viz[Visualizers]
Wheel --> Sim[isaaclab isaacsim]
Sim --> Overrides[Version overrides]
Sim --> Nvidia[NVIDIA package index]
Wheel --> Tiny[tinyobjloader 2.0.0rc13]
Reviews (1): Last reviewed commit: "Clarify Isaac Lab wheel extras" | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The extras split is internally consistent across package metadata, lockfile, tests, CI, changelog, and the renamed Sphinx directive. Two documentation issues remain: the generic extras guidance overlooks that teleop also needs the Isaac Sim resolver configuration, and the new subsection structure incorrectly places shared PyTorch installation steps under the Isaac Sim-only heading.
- Design and architecture: Separating the curated
allaggregate from the resolver-sensitiveisaacsimextra is coherent. The package metadata, lockfile, generated-wheel expectations, CI resolution paths, and breaking-change migration note agree. The installation-page hierarchy should be corrected so common wheel setup is not presented as Isaac Sim-specific. - API: The changed
allandisaacsimcontracts are documented and test-enforced, and the renamed directive's in-tree use is updated. However, the documentation identifies onlyisaacsimas requiring the specialized installation command even thoughteleopalso directly includesisaacsim[all,extscache]and therefore needs the same NVIDIA index and overrides. - Implementation: The dependency path from
pyproject.tomlthrough generated wheel metadata and install CI is consistent, including the directtinyobjloader==2.0.0rc13requirement and removal of--prerelease=allow. The remaining implementation concern is documentation integration: the shared CUDA PyTorch and architecture-specific instructions now fall under the Isaac Sim subsection despite also applying to non-Isaac-Sim wheel installations.
Minor fixes needed. Posted 2 actionable findings inline.
Automated review; human maintainers own approval decisions.
| Add extras to the package requirement when your project needs them. For a standalone environment, | ||
| use ``uv pip install "isaaclab[<extra>]"``; for a uv project, use | ||
| ``uv add "isaaclab[<extra>]"``. | ||
| Add extras to the package requirement when your project needs them. Except for ``isaacsim``, use |
There was a problem hiding this comment.
🔵 Suggestion · Api — Carve-out omits the teleop extra
The teleop extra also requires isaacsim[all,extscache]==6.0.1.0 (see [project.optional-dependencies]), which the table itself documents as coming from pypi.nvidia.com. Naming isaacsim as the sole exception implies plain uv pip install "isaaclab[teleop]" works, but it needs the same index and overrides. List teleop alongside isaacsim in the exception sentence.
| remain opt-in. | ||
|
|
||
| .. isaaclab-uv-wheel-install:: | ||
| Installing the ``isaacsim`` extra |
There was a problem hiding this comment.
🔵 Suggestion · Implementation — New subsection scopes generic PyTorch steps to Isaac Sim
The new heading uses the same ~ level as "Optional extras", so the following "Install the CUDA-enabled PyTorch build" tab-set and aarch64 prerequisite notes now read as part of the Isaac Sim-only subsection. Those steps apply to every wheel install, including isaaclab[all], which no longer carries Isaac Sim. Place the Isaac Sim subsection after the PyTorch instructions, or give the PyTorch block its own sibling heading.
Description
Clarify the Isaac Lab Python package installation flow by keeping Isaac Sim out of the curated
isaaclab[all]extra and documenting its resolver requirements separately.isaaclab[all]as the curated OV, RL-library, and visualizer set without Isaac Sim.isaaclab[isaacsim].tinyobjloaderrelease candidate directly so the Isaac Sim command no longer needs--prerelease=allow.No new dependencies beyond directly declaring the existing transitive
tinyobjloaderrequirement.Type of change
allextra no longer installs Isaac Sim)Screenshots
Not applicable.
Validation
uv run python -m pytest source/isaaclab/test/cli/test_uv_run_pyproject.py source/isaaclab/test/cli/test_wheel_builder_metadata.py -q(19 passed)isaaclab[all]resolver dry run without overrides.isaaclab[isaacsim]resolver dry run with overrides and without--prerelease=allow.uv run isaaclab -fuv run --no-project python tools/skills/cli.py checkuv run python tools/changelog/cli.py check developThe full documentation build currently stops on the pre-existing
wp.array | torch.Tensorannotation evaluation insource/isaaclab_physx/isaaclab_physx/assets/rigid_object_collection/kernels.py; the changed documentation and directives pass the repository RST, spelling, formatting, and Python checks.Checklist
uv run isaaclab -f.source/isaaclab/changelog.d/.CONTRIBUTORS.mdor my name already exists there.