[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.
|
CI follow-up:
Validation:
|
## Description Initialize the OVPhysX benchmark articulation mock with `_sim_cfg = None`, matching the PhysX and Newton benchmark factories and the real articulation constructor. This prevents actuator collection setup from raising `AttributeError` in the kit-less benchmark test. This failure was exposed by CI on #7168 but is unrelated to that PR's wheel extras changes. ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Validation - `uv run --extra test python -m pytest source/isaaclab/test/benchmark/test_asset_suite_runtime_semantics.py -k ovphysx_data_targets --maxfail=1 -q` (skipped locally because CUDA is unavailable; the failing CI job exercises this path) - `uv run python tools/changelog/cli.py check develop` - `uv run isaaclab -f` ## Checklist - [x] I have read and understood the contribution guidelines - [x] I have run the pre-commit checks - [x] My changes generate no new warnings - [x] The existing benchmark test covers the regression - [x] I have added a changelog fragment for every touched package - [x] My name is present in the repository revision history
## Description Bundled backport to `release/3.0.0` to reduce CI load. Source PRs reviewed for this bundle: - #7020 — already represented in `release/3.0.0`; its cherry-pick was empty, so no duplicate commit was added. - #7207 - #7229 - #7227 - #7231 - #6762 - #7208 - #7168 — backports the current PR head while the source PR is still open. - #7157 - #7216 ## Type of change - Bug fix - Documentation update - Workflow / packaging update ## Checklist - [x] I have read and understood the contribution guidelines. - [x] I have run formatting checks. - [x] Documentation changes are included. - [x] Documentation build generates no new warnings. - [x] Focused regression coverage passed. - [x] Required changelog fragments are included by the source PRs. - [x] Contributors are already listed or included by the source PRs. --------- Signed-off-by: Kelly Guo <kellyg@nvidia.com> Co-authored-by: Mustafa H <34825877+StafaH@users.noreply.github.com> Co-authored-by: Richard Lei <rilei@nvidia.com> Co-authored-by: Mustafa Haiderbhai <mhaiderbhai@nvidia.com> Co-authored-by: Kelly Guo <kellyg@nvidia.com>
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.