Skip to content

[Backport release/3.0.0] Bundle selected develop PRs - #7258

Merged
kellyguo11 merged 16 commits into
release/3.0.0from
antoiner/backport-release-3.0-batch-20260821
Aug 22, 2026
Merged

[Backport release/3.0.0] Bundle selected develop PRs#7258
kellyguo11 merged 16 commits into
release/3.0.0from
antoiner/backport-release-3.0-batch-20260821

Conversation

@AntoineRichard

@AntoineRichard AntoineRichard commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Description

Bundled backport to release/3.0.0 to reduce CI load.

Source PRs reviewed for this bundle:

Type of change

  • Bug fix
  • Documentation update
  • Workflow / packaging update

Checklist

  • I have read and understood the contribution guidelines.
  • I have run formatting checks.
  • Documentation changes are included.
  • Documentation build generates no new warnings.
  • Focused regression coverage passed.
  • Required changelog fragments are included by the source PRs.
  • Contributors are already listed or included by the source PRs.

StafaH and others added 13 commits August 21, 2026 13:02
## Description

Adds Mustafa Haiderbhai to the alphabetized developer list.

No dependencies are required.

## Type of change

- [x] Documentation update

## Testing

- `uv run --frozen isaaclab -f`
- `uv run --isolated --extra test -- make -C docs current-docs`

## Checklist

- [x] I have read and understood the contribution guidelines
- [x] I have run the pre-commit checks
- [x] I have made the corresponding documentation change
- [x] My changes generate no new warnings
- [x] Tests are not applicable because this only updates the developer
list
- [x] A changelog fragment is not applicable because no source package
is touched
- [x] I have added my name to `CONTRIBUTORS.md`
# Description

> [!IMPORTANT]
> Confirm the pull request base before submitting. Target `develop` for
all
> contributions. The `release/3.0.0-beta2` branch is a frozen stable
landing
> snapshot and is not used for ongoing maintenance.

<!--
Thank you for your interest in sending a pull request. Please make sure
to check the contribution guidelines.

Link:
https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html

💡 Please try to keep PRs small and focused. Large PRs are harder to
review and merge.
-->

Please include a summary of the change and which issue is fixed. Please
also include relevant motivation and context.
List any dependencies that are required for this change.

Fixes # (issue)

<!-- As a practice, it is recommended to open an issue to have
discussions on the proposed pull request.
This makes it easier for the community to keep track of what is being
developed or added, and if a given feature
is demanded by more than one party. -->

## Type of change

<!-- As you go through the list, delete the ones that are not
applicable. -->

- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (existing functionality will not work without user
modification)
- Documentation update

## Screenshots

Please attach before and after screenshots of the change if applicable.

<!--
Example:

| Before | After |
| ------ | ----- |
| _gif/png before_ | _gif/png after_ |

To upload images to a PR -- simply drag and drop an image while in edit
mode and it should upload the image directly. You can then paste that
source into the above before/after sections.
-->

## Checklist

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have added a changelog fragment under
`source/<pkg>/changelog.d/` for every touched package (do **not** edit
`CHANGELOG.rst` or bump `extension.toml` — CI handles that)
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->
# Description

Fix the recurring `isaaclab_rl` LEAPP export failure for
`Isaac-Reach-Franka` on Newton MJWarp.

The existing workaround passes `limit_cpu_threads=1` to `SimulationApp`,
but the failing stack is in OpenUSD's concurrent parser and OpenUSD
reads `PXR_WORK_THREAD_LIMIT` during process startup. Set that
environment variable on every LEAPP child process so USD is serialized
before any USD module is imported, while retaining the existing Kit-side
limit.

This keeps the current task and Newton backend coverage. It also adds a
deterministic subprocess probe for the environment contract.

Observed in unrelated PRs:

- #6762:
https://github.com/isaac-sim/IsaacLab/actions/runs/32343107298/job/96578439022
- #6673:
https://github.com/isaac-sim/IsaacLab/actions/runs/32419190550/job/96590692454
- #7207:
https://github.com/isaac-sim/IsaacLab/actions/runs/32418984574/job/96590568310

OpenUSD documents `PXR_WORK_THREAD_LIMIT=1` as single-threaded mode:
https://openusd.org/dev/api/thread_limits_8h.html

## Type of change

- Bug fix (non-breaking change which fixes an issue)

## Validation

- `uv run --extra sb3 --extra skrl --extra rl-games --extra leapp python
-m pytest source/isaaclab_rl/test/export/test_leapp_export_flow.py -k
'openusd_thread_limit or rsl_rl-Isaac-Reach-Franka' -vv` (2 passed)
- `uv run isaaclab -f`
- `uv run python tools/changelog/cli.py check develop`

## Checklist

- [x] I have read and understood the contribution guidelines
- [x] I have run the pre-commit checks with `uv run isaaclab -f`
- [x] Documentation is not required for this test-only mitigation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective
- [x] I have added a changelog fragment for every touched package
- [x] My name is already in `CONTRIBUTORS.md`
# Description

Fix the environments-page command builder and task browser:

- Make the pre-trained checkpoint control actionable from Train by
switching the command to Play, and disable it for Contrib and Warp.
- Add a Core / Contrib / Warp task-collection switch beside the task
picker and use it to partition both the picker and available-task list.
- Derive Warp-compatible tasks from the same frontend compatibility path
used at runtime, keep canonical task IDs, and emit `--frontend warp`.
- Align the `--task` dropdown with the physics selector below it.

## Type of change

- Bug fix
- Documentation update

## Validation

- `uv run isaaclab -f`
- `uv run python -m pytest --confcutdir=tools/test
tools/test/test_environ_docs.py::test_environment_browser_rows_include_concrete_core_and_contributed_selectors`
- `uv run --isolated --extra test -- make -C docs current-docs`
- `node --check docs/source/_static/css/environment-browser.js`
- Headless Chrome interaction check for Core, Contrib, Warp, and
pre-trained checkpoint command generation

The full `tools/test/test_environ_docs.py` file has one unrelated
existing failure in
`test_physics_names_for_docs_infers_physx_from_default`; the focused
environment-browser metadata test passes.

## 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
- [x] I have added focused coverage for the generated Warp metadata
- [x] No source package was changed, so no package changelog fragment is
required
- [x] My name already exists in `CONTRIBUTORS.md`
# Description

Add a pure uv workflow for isaacsim

Easy to use:

1. Clone your isaacsim repo somewhere.

2. run `uv run isaaclab --isaacsim_source <path_to_isaacsim>`

3. run training with isaacsim `uv run isaaclab train --task
Isaac-Cartpole physics=isaacsim_physx`

## Checklist

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have added a changelog fragment under
`source/<pkg>/changelog.d/` for every touched package (do **not** edit
`CHANGELOG.rst` or bump `extension.toml` — CI handles that)
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->

---------

Co-authored-by: Richard Lei <rilei@nvidia.com>
## Summary

- clear filtered force-matrix history during OVPhysX contact-sensor
resets
- preserve history for environments outside the reset mask
- add a CPU-only Warp regression test

## Testing

- `uv run --extra test python -m pytest
source/isaaclab_ov/test/sensors/test_contact_sensor_kernels.py`
- `uv run python tools/changelog/cli.py check develop`
- `uv run isaaclab -f`
@AntoineRichard
AntoineRichard requested a review from a team August 21, 2026 11:22
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Aug 21, 2026
@greptile-apps

greptile-apps Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This bundled backport revises installation extras and source-build support, improves the environment documentation browser, fixes contact-sensor history reset behavior, and updates CI, packaging, and documentation.

  • Separates Isaac Sim and standalone importers from the curated all extra and adds dedicated installation guidance.
  • Adds an Isaac Sim source-build CLI flow while preserving active uv-environment dependencies.
  • Adds Warp frontend filtering and non-RL command handling to the environment browser.
  • Clears force-matrix history during contact-sensor resets and adds regression coverage.
  • Updates wheel, kitless-container, license, and LEAPP test workflows.

Confidence Score: 5/5

The PR appears safe to merge because no concrete changed-code failure remains after checking the updated installation, runtime, documentation, and sensor-reset paths.

The revised extras are explicitly documented and validated, current environment-browser states produce supported commands, source-build delegation is covered by focused tests, and force-matrix history is now reset alongside the other contact-sensor buffers.

Important Files Changed

Filename Overview
pyproject.toml Splits standalone importers into an explicit extra and removes Isaac Sim from the curated all dependency set.
source/isaaclab/isaaclab/cli/commands/misc.py Adds platform-aware incremental Isaac Sim source building and live release-tree linking.
source/isaaclab/isaaclab/cli/utils.py Delegates Python commands through a linked Isaac Sim launcher while retaining the active environment interpreter and package paths.
tools/environ_docs.py Detects task compatibility with the experimental Warp frontend and serializes that capability into browser data.
docs/source/_static/css/environment-browser.js Adds core, contributed, and Warp task scopes plus valid non-RL command presentation and state transitions.
source/isaaclab_ov/isaaclab_ov/sensors/contact_sensor/kernels.py Extends sensor reset logic to clear force-matrix history for selected environments.
docker/Dockerfile.kitless Explicitly installs standalone asset importers with resolver overrides in the kitless image.
uv.lock Regenerates workspace metadata for the revised extras and updated local package versions.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Install["Isaac Lab installation"] --> All["all extra"]
  Install --> Importers["importers extra"]
  Install --> IsaacSim["isaacsim extra"]
  Install --> Source["Isaac Sim source build"]
  All --> Backends["OV + RL + visualizers"]
  Importers --> AssetTools["Standalone URDF/MJCF conversion"]
  IsaacSim --> WheelRuntime["Isaac Sim wheel runtime"]
  Source --> LiveRuntime["_isaac_sim live release tree"]
  LiveRuntime --> UvPython["Active uv Python environment"]
Loading

Reviews (1): Last reviewed commit: "Install importers in kitless Docker imag..." | 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 bundled backport consistently introduces opt-in importers and isaacsim extras, a live-linked Isaac Sim source-build workflow, environment-browser scope handling, and OVPhysX contact-history reset coverage. One installation skill still describes the superseded local-wheel workflow and must be synchronized with the implemented live-link command.

  • Design and architecture: The dependency split is propagated through package metadata, lock data, Docker installation, CI, and user documentation. The source-build design builds incrementally and links the live release tree without modifying pyproject.toml or uv.lock; the installation skill currently contradicts that design by claiming the command creates local-wheel metadata.
  • API: The renamed Sphinx directives, optional extras, --isaacsim_source CLI option, and contact-reset kernel signature have aligned in-repository producers and consumers. However, skills/user/install-isaac-lab/reference.md documents a nonexistent isaacsim-local extra and nonexistent find-links/project-file edits, so its prescribed verification command does not match the new CLI contract.
  • Implementation: The live-link command, Python-launcher delegation, environment-browser row generation and state transitions, Newton mask normalization, and contact-sensor history clearing were traced with their associated tests. The required fix is limited to replacing the stale source-build skill instructions with the implemented live-link verification path.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

- Isaac Sim source build (`installation-method-source`) runs the same script against the locally built Isaac Sim wheels:

```bash
uv run --extra isaacsim-local python scripts/tutorials/00_sim/create_empty.py --viz kit

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.

🟡 Warning · Api — Skill documents nonexistent isaacsim-local extra

This verification step tells users to run uv run --extra isaacsim-local ... and states that uv run isaaclab --isaacsim_source <path> writes find-links = ["_isaac_sim_wheels"] and an isaacsim-local extra into pyproject.toml. The command added here only builds and symlinks _isaac_sim, and both the changelog fragment and installation/index.rst state that pyproject.toml and uv.lock stay unchanged; no such extra exists, so this command fails. Point the source-build route at the same live-link verification the docs use.

rilei-nvidia and others added 3 commits August 21, 2026 16:11
# Description

ovstage 0.1.1 fixes nvbug 6490020 so the OVRTX ovstage path no longer
needs its per-frame host round-trip

- Write transforms and points straight from their Warp GPU buffers;
make_dltensor now folds a producer's trailing axes into the lane count
omni:xform and points expect.
- Order those writes with write_attribute(cuda_stream=...) instead of
blocking the host on wp.synchronize_device, as the legacy binding path
already does.
- Drop the _OVSTAGE_AVAILABLE guard: ovstage is an unconditional
dependency of isaaclab_ov, so the fallback was unreachable.

## Type of change

- New feature (non-breaking change which adds functionality)

## Checklist

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have added a changelog fragment under
`source/<pkg>/changelog.d/` for every touched package (do **not** edit
`CHANGELOG.rst` or bump `extension.toml` — CI handles that)
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
# Description

Fixes `mdp.image(normalize=True)` returning colorized
semantic-segmentation observations as `uint8`. The normalizer now
recognizes the renderer contract for this output (RGBA `uint8`) and
returns the same normalized `float32` representation used for RGB-like
images. Raw `int32` semantic-ID maps remain unchanged.

No new dependencies.

## Type of change

- [x] Bug fix (non-breaking change which fixes an issue)

## Screenshots

Not applicable.

## Checklist

- [x] I have read and understood the contribution guidelines
- [x] I have run the pre-commit checks with `uv run isaaclab -f`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have added a changelog fragment under
`source/<pkg>/changelog.d/` for every touched package
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
…-20260821

Signed-off-by: Kelly Guo <kellyg@nvidia.com>
@kellyguo11
kellyguo11 merged commit 40f7415 into release/3.0.0 Aug 22, 2026
105 of 108 checks passed
@kellyguo11
kellyguo11 deleted the antoiner/backport-release-3.0-batch-20260821 branch August 22, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

4 participants