Skip to content

[Workflow] Clarify Isaac Lab wheel extras - #7168

Merged
StafaH merged 12 commits into
isaac-sim:developfrom
StafaH:fix/wheel-all-without-isaacsim
Aug 21, 2026
Merged

[Workflow] Clarify Isaac Lab wheel extras#7168
StafaH merged 12 commits into
isaac-sim:developfrom
StafaH:fix/wheel-all-without-isaacsim

Conversation

@StafaH

@StafaH StafaH commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

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.

  • Define isaaclab[all] as the curated OV, RL-library, and visualizer set without Isaac Sim.
  • Document the override-based command specifically for isaaclab[isaacsim].
  • Declare the required tinyobjloader release candidate directly so the Isaac Sim command no longer needs --prerelease=allow.
  • Update wheel metadata tests and install CI to verify both resolution paths.

No new dependencies beyond directly declaring the existing transitive tinyobjloader requirement.

Type of change

  • Breaking change (the all extra no longer installs Isaac Sim)
  • Documentation update

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)
  • Built a fresh Isaac Lab wheel successfully.
  • Verified a clean isaaclab[all] resolver dry run without overrides.
  • Verified a clean isaaclab[isaacsim] resolver dry run with overrides and without --prerelease=allow.
  • uv run isaaclab -f
  • uv run --no-project python tools/skills/cli.py check
  • uv run python tools/changelog/cli.py check develop

The full documentation build currently stops on the pre-existing wp.array | torch.Tensor annotation evaluation in source/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

  • I have read and understood the contribution guidelines.
  • I have run the pre-commit checks with uv run isaaclab -f.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • I have added tests that prove the fix is effective.
  • I have added a changelog fragment under source/isaaclab/changelog.d/.
  • I have added my name to CONTRIBUTORS.md or my name already exists there.

@StafaH
StafaH requested a review from a team August 19, 2026 07:15
@github-actions github-actions Bot added bug Something isn't working documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Aug 19, 2026
@greptile-apps

greptile-apps Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR separates Isaac Sim from the curated isaaclab[all] extra and documents the dedicated resolver flow for isaaclab[isaacsim].

  • Removes isaacsim from the all extra while retaining OV backends, RL libraries, and visualizers.
  • Declares the isolated importer’s required tinyobjloader release candidate directly.
  • Updates installation documentation, generated wheel metadata tests, lock data, and CI coverage for both installation paths.

Confidence Score: 5/5

The 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

Filename Overview
pyproject.toml Removes Isaac Sim from the curated aggregate extra and directly declares the isolated importer’s prerelease dependency.
uv.lock Reflects the revised all composition and the new direct tinyobjloader requirement without changing the reviewed pre-existing advisory-bearing versions.
docs/_extensions/isaaclab_docs.py Replaces the generic wheel-install directive with an Isaac-Sim-specific command using overrides and the NVIDIA index.
docs/source/setup/installation/index.rst Documents the curated all contents and separates the Isaac Sim installation procedure.
.github/workflows/wheel.yml Adds independent resolver checks for plain all installation and override-based isaacsim installation.
source/isaaclab/test/install_ci/uv_pip/test_uv_pip_install_isaaclab_all_trains_cartpole.py Verifies that the revised Isaac-Sim-free all extra installs and runs the OV-backed Cartpole workflow.
source/isaaclab/test/install_ci/uv_pip/test_uv_pip_install_isaaclab_isaacsim_imports_simulation_context.py Verifies the dedicated Isaac Sim extra resolves with overrides without globally allowing prereleases.

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]
Loading

Reviews (1): Last reviewed commit: "Clarify Isaac Lab wheel extras" | Re-trigger Greptile

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 all aggregate from the resolver-sensitive isaacsim extra 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 all and isaacsim contracts are documented and test-enforced, and the renamed directive's in-tree use is updated. However, the documentation identifies only isaacsim as requiring the specialized installation command even though teleop also directly includes isaacsim[all,extscache] and therefore needs the same NVIDIA index and overrides.
  • Implementation: The dependency path from pyproject.toml through generated wheel metadata and install CI is consistent, including the direct tinyobjloader==2.0.0rc13 requirement 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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.

@StafaH

StafaH commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

CI follow-up:

  • Extracted the unrelated kit-less OVPhysX benchmark failure into [CI] Fix OVPhysX benchmark articulation setup #7206.
  • Fixed the installation failure on this branch in 63774a0. The plain [all] install resolved Newton 1.3.0, while LightArticulationView aliased _resolve_world_mask, a private helper only present on the newer release-1.5 branch. The lightweight view now owns equivalent mask normalization and imports successfully with the declared Newton 1.2.0 and 1.3.0 lower-bound versions.

Validation:

  • Native group parameter read/write regression: 1 passed
  • Wheel metadata and pyproject tests: 19 passed
  • Isolated import/mask checks with Newton 1.2.0 and 1.3.0
  • Changelog validation and full formatting/pre-commit gate passed

StafaH added a commit that referenced this pull request Aug 20, 2026
## 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
@StafaH
StafaH enabled auto-merge (squash) August 21, 2026 08:34
@StafaH
StafaH merged commit 18aa3fa into isaac-sim:develop Aug 21, 2026
48 of 49 checks passed
kellyguo11 added a commit that referenced this pull request Aug 22, 2026
## 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants