[Backport release/3.0.0] Bundle remaining develop PRs - #7331
Conversation
…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)
There was a problem hiding this comment.
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 onclone_maskand 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_idsis empty and avoids unnecessary ID materialization. Cross-device indexing is handled by moving column indices to theenv_idsdevice, with dedicated CUDA coverage. ADR links and anchors resolve to the added guidance, and the touched source package includes its.skipchangelog 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 SummaryThis backport bundles test-run failure classification, clone-query vectorization, corrected wheel-builder guidance, and expanded success-driven ADR documentation.
Confidence Score: 5/5The 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
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)
Description
Backports five merged
developPRs not already represented onrelease/3.0.0or covered by #7300:4fa20fc8a5f8110c816d0a2ae0878a26668b21a601587ed3ad455461a775d46fcf2c07bbb43a94249489a089a00278f0fde8af682bfcb9Each 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
Validation
uv run --frozen --extra test python -m pytest -q source/isaaclab/test/cloner/test_clone_plan_algebra.py— 85 passed.resolve_exit_codeoutcomes, 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.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.Screenshots
Not applicable.
Checklist
-xprovenance are preserved.