Skip to content

[Backport release/3.0.0] Bundle remaining develop PRs - #7331

Merged
kellyguo11 merged 6 commits into
isaac-sim:release/3.0.0from
kellyguo11:kellyg/backport-remaining-develop-prs-3.0.0
Aug 26, 2026
Merged

[Backport release/3.0.0] Bundle remaining develop PRs#7331
kellyguo11 merged 6 commits into
isaac-sim:release/3.0.0from
kellyguo11:kellyg/backport-remaining-develop-prs-3.0.0

Conversation

@kellyguo11

@kellyguo11 kellyguo11 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Description

Backports five merged develop PRs not already represented on release/3.0.0 or covered by #7300:

Source PR Source commit Backport commit Scope
#7235 4fa20fc8a5f 8110c816d0a Report distinct exit codes for failed, crashed, timed-out, and startup-hung test runs.
#6597 2ae0878a266 68b21a60158 Correct the stale wheel-builder dependency-pin reference.
#7320 7ed3ad45546 1a775d46fcf Add success-driven ADR guidance and evaluation coverage to the domain-randomization skill.
#7319 2c07bbb43a9 4249489a089 Vectorize clone-plan environment-ID queries.
#7316 a00278f0fde 8af682bfcb9 Extend Core Lift and Reorient episodes and pose-command resampling intervals.

Each merged source commit was cherry-picked with -x. All five applied without conflicts and have stable patch IDs identical to their source commits.

#7233 is intentionally excluded because its existing backport is #7300.

Type of change

  • Bug fix
  • Performance improvement
  • Task configuration update
  • Developer tooling improvement
  • Documentation update

Validation

  • uv run --frozen --extra test python -m pytest -q source/isaaclab/test/cloner/test_clone_plan_algebra.py — 85 passed.
  • Validated the six representative resolve_exit_code outcomes, including mixed-failure precedence.
  • uv run --no-project python tools/skills/cli.py check — 21 skills validated.
  • uv run --frozen --extra test python -m pytest --noconftest -q source/isaaclab_tasks/test/core/test_lift_env_cfg.py — 3 passed.
  • Programmatic Lift/Reorient config assertions confirmed the 4–6 second resampling interval and 12-second episode length.
  • Ruff, Ruff-format, and RST hooks passed for the Extend Core Lift and Reorient episode duration #7316 paths.
  • The original four-PR branch passed ISAACLAB_CHANGELOG_BASE_REF=release/3.0.0 uv run --frozen isaaclab -f; Extend Core Lift and Reorient episode duration #7316's source commit also passed its full formatting and changelog validation.
  • git diff --check kelly/kellyg/backport-remaining-develop-prs-3.0.0...HEAD — passed for the added Extend Core Lift and Reorient episode duration #7316 commit.
  • Stable patch IDs match all five merged source commits; Extend Core Lift and Reorient episode duration #7316 also has exact mode/blob parity on both affected paths.

Screenshots

Not applicable.

Checklist

  • I have read and understood the contribution guidelines.
  • I have run the repository formatting or focused pre-commit checks appropriate to each source PR.
  • Documentation and skill guidance from the source PRs are included unchanged.
  • My changes generate no new warnings.
  • Existing and backported tests cover the changed behavior.
  • Touched release-managed source packages carry their source changelog fragments.
  • Source authorship and -x provenance are preserved.

myurasov-nv and others added 4 commits August 24, 2026 19:52
…ac-sim#7235)

# Description

Every failure mode in the individual-test orchestrator exits `1`, so a
crashed process, a hung test, and a failing assertion cannot be told
apart from the exit code. The orchestrator already separates them
internally: it counts `Failing`, `Crashed`, `Startup Hang`, and
`Timeout`, and prints each in the result summary. This carries that
distinction into the exit code and prints the resolved code with a
label.

`1` still means failing assertions. A crashed process is `20`, a timeout
`21`, and a startup hang `22`. When a run hits more than one, the code
reports the outcome that proved the least, so a crash outranks a
timeout, which outranks a startup hang. `0` is unchanged, and callers
that only check for a non-zero code are unaffected.

| Before | After |
| ------ | ----- |
| A lost GPU, a 1000 second hang, and a pixel mismatch all end in
`Process completed with exit code 1` | The same 3 runs exit `20`, `21`,
and `1`, each printed as `Exit Code: N (label)` in the summary |

## Reproduction

1. Run a suite through the orchestrator and read the exit code:

   ```
./isaaclab.sh -p -m pytest --ignore=tools/conftest.py tools -v
--junitxml=tests/report.xml; echo "exit=$?"
   ```

2. Make one file reach its hard timeout, by lowering the timeout for
that file or running a test that sleeps past it.

Observed before this change: the summary reports `Timeout: 1` while the
run reports `exit=1`, the same code a failing assertion produces.

3. Repeat with this change.

Observed: the summary reports `Exit Code: 21 (timeout)` and the run
reports `exit=21`, while a run whose only failures are assertions still
reports `exit=1`.

## Type of change

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

## Screenshots

Not applicable; the change has no rendered output.

## Checklist

- [x] 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`: not run; no dev setup on this machine. The
diff was checked by hand for line length and whitespace, and `python3 -m
py_compile tools/conftest.py` passes
- [ ] I have made corresponding changes to the documentation: not
applicable; each code is documented where it is defined and printed in
the run summary
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works: not added; the counters are computed inside
`pytest_sessionstart`, and `tools/conftest.py` takes over any pytest
session that loads it, so a test in the same directory cannot drive this
path in-process. `resolve_exit_code` was instead checked over all 16
combinations of the 4 counters, confirming that each mode maps to its
own code and that zero versus non-zero matches the previous expression
exactly
- [ ] 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): not
applicable; no package under `source/` is touched
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

(cherry picked from commit 4fa20fc)
)

# Description

Fixes three references that drifted from the single-source-of-truth root
`pyproject.toml`: the wheel builder comment pointed at
`python_packages.toml` (removed long ago), `daily-compatibility.yml`
parsed `[tool.isaaclab.versions]` with a hand-written regex (now
`tomllib`, byte-identical output), and the pip-installation docs claimed
`rl_games` is excluded from the wheel extras while `gen_pyproject.py`
actually includes it in `all`/`rl-games`.

| | Before | After |
|---|---|---|
| Wheel builder comment | references nonexistent `python_packages.toml`
| describes the actual copy step |
| OV pins in daily-compatibility | regex over raw TOML text | `tomllib`
parse |
| Docs `all` extra | "SB3, SKRL, RSL-RL" | full list incl. RL-Games,
Rerun, Mimic, RLinf |

## Reproduction

1. `grep python_packages.toml -r .` returns only the stale comment; no
such file exists.
2. `python3 tools/wheel_builder/gen_pyproject.py pyproject.toml
/tmp/p.toml 1.2.3 && grep rl-games /tmp/p.toml` shows `rl_games` in the
`rl-games` and `all` extras, contradicting the docs note.
3. Run both the old regex and new `tomllib` snippets against
`pyproject.toml`: identical output.

## Checklist

- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

Co-authored-by: AntoineRichard <antoiner@nvidia.com>
(cherry picked from commit 2ae0878)
## Summary

- Add success-driven ADR routing to the existing domain-randomization
skill.
- Add one compact manager-based gravity example using a task-owned
scheduler and modify_term_cfg.
- Validate exact endpoints and link the curriculum guide and Core Lift
source.

## Testing

- Repository skill validator: 21 skills validated.
- Python example syntax: 2 examples validated.
- Full formatting and pre-commit checks passed.

(cherry picked from commit 7ed3ad4)
# Description
Gather clone-plan env ids in one indexing step

This replaces some Python loops with vectorized numpy calls and improves
startup performance.

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

- (Startup performance enhancement)

## 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
-->

(cherry picked from commit 2c07bbb)
@kellyguo11
kellyguo11 requested a review from a team August 25, 2026 02:54
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Aug 25, 2026

@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

Reviewed the bundled backports covering distinct test-runner exit codes, vectorized clone-plan environment-ID queries, ADR skill guidance, and the wheel-builder comment correction. The changed paths are internally consistent and supported by focused tests or documentation updates.

  • Design and architecture: The test runner now centralizes failure precedence in resolve_exit_code, while clone-query row filtering operates directly on clone_mask and environment-ID gathering remains encapsulated in _row_env_ids. The ADR guidance consistently uses a task-owned scheduler with manager-based curriculum terms.
  • API: Clone query results preserve tuple ordering and correctly translate mask columns through env_ids, including mixed CPU/CUDA placement. Test assertion failures retain exit code 1, while crashes, timeouts, and startup hangs intentionally gain distinct nonzero codes. External automation that matches exact exit codes rather than checking for nonzero status remains the principal compatibility consideration.
  • Implementation: The mask-based populated-row check is equivalent to testing whether _row_env_ids is empty and avoids unnecessary ID materialization. Cross-device indexing is handled by moving column indices to the env_ids device, with dedicated CUDA coverage. ADR links and anchors resolve to the added guidance, and the touched source package includes its .skip changelog fragment.

No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.

Automated review; human maintainers own approval decisions.

@greptile-apps

greptile-apps Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This backport bundles test-run failure classification, clone-query vectorization, corrected wheel-builder guidance, and expanded success-driven ADR documentation.

  • Adds distinct exit codes for assertion failures, crashes, timeouts, and startup hangs.
  • Vectorizes clone-plan environment-ID gathering across tensor devices and expands regression coverage.
  • Documents manager-based ADR using the existing Core Lift scheduler and curriculum utilities.
  • Corrects the wheel-builder inventory comment.

Confidence Score: 5/5

The PR appears safe to merge, with no actionable correctness, security, or compatibility failures identified.

The vectorized clone queries preserve the documented tensor contract, the test wrappers forward the new nonzero statuses, and the ADR guidance matches the current repository APIs and configuration shapes.

Important Files Changed

Filename Overview
tools/conftest.py Adds deterministic failure-category exit-code resolution and reports the selected code in the test summary.
source/isaaclab/isaaclab/cloner/query.py Replaces per-element environment-ID extraction with device-aware tensor gathering while preserving row-population semantics.
source/isaaclab/test/cloner/test_clone_plan_algebra.py Expands coverage for partially populated clone rows, empty nearer templates, and cross-device environment-ID gathering.
skills/user/domain-randomization-events/examples.md Adds a success-driven gravity ADR example consistent with the repository’s Core Lift curriculum implementation.
tools/wheel_builder/build.sh Corrects a stale explanatory comment without changing build behavior.

Reviews (1): Last reviewed commit: "Vectorize clone plan queries (#7319)" | Re-trigger Greptile

## Summary

- Changed the Core Lift and Reorient pose-command resampling range from
3–5 seconds to 4–6 seconds.
- Removed the ReorientEnvCfg 2–3 second post-init override so
CommandsCfg remains the single source of truth.
- Extended the episode length from 6 to 12 seconds.

This gives policies more time to complete each commanded goal while
retaining multiple goals per episode.

## Testing

- Focused lift config tests: 3 passed.
- Formatting and style hooks passed.
- The isaaclab_tasks changelog fragment passed validation against
upstream/develop.

(cherry picked from commit a00278f)
@ooctipus
ooctipus requested a review from hujc7 as a code owner August 25, 2026 03:16
@kellyguo11
kellyguo11 merged commit bb9fd13 into isaac-sim:release/3.0.0 Aug 26, 2026
77 of 79 checks passed
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