Skip to content

[Test] Disable Warp autodiff in test suite - #7305

Merged
ooctipus merged 5 commits into
isaac-sim:developfrom
StafaH:ci/disable-warp-autodiff-tests
Aug 24, 2026
Merged

[Test] Disable Warp autodiff in test suite#7305
ooctipus merged 5 commits into
isaac-sim:developfrom
StafaH:ci/disable-warp-autodiff-tests

Conversation

@StafaH

@StafaH StafaH commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Disable Warp backward code generation before pytest collection to reduce cold kernel compile times.
  • Keep lightweight tooling compatible when Warp is not installed.
  • Run the test matrix when the root pytest configuration changes; the cache warmer uses the same configuration.

Validation

  • Warp-free tools tests: 29 passed
  • uv run isaaclab -f

@StafaH
StafaH requested a review from a team August 23, 2026 00:52
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 23, 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

The change disables Warp backward-code generation from the repo-root pytest configuration before test-module collection and extends the existing ordering regression test to cover that shared setting. The proposed changelog finding does not apply because the trusted repository rule requires package fragments for user-visible changes, while this is test-only infrastructure.

  • Design and architecture: The session-wide Warp setting is placed in the shared repo-root conftest, ensuring it is applied before test modules are collected and allowing test-runner consumers such as cache warming to inherit the behavior.
  • API: No public Isaac Lab APIs, CLI arguments, configuration fields, exports, or return types are changed. The compatibility surface is limited to pytest execution and Warp kernel generation during tests.
  • Implementation: The assignment occurs immediately after importing Warp and before pytest loads test modules. The added regression test resolves the repository root correctly and verifies that the shared conftest contains the expected setting. Its literal-string check is intentionally narrow and may require maintenance if the equivalent assignment is reformatted, but this is not a merge-blocking issue.

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 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR disables Warp backward-code generation in the repository-wide pytest configuration before test collection and extends the existing ordering regression coverage.

  • Imports Warp and sets enable_backward to false in the root conftest.
  • Adds a test asserting that the shared pytest configuration contains the setting.

Confidence Score: 4/5

The PR appears safe to merge, with one non-blocking weakness in the new regression test’s ability to detect ordering or executability regressions.

The runtime configuration is currently placed before imports that can create Warp modules, and existing tests do not rely on Warp autodiff; only the new guard’s future regression coverage is incomplete.

Files Needing Attention: source/isaaclab/test/test_scripts_warp_backward_ordering.py

Important Files Changed

Filename Overview
conftest.py Disables Warp backward generation before plugin registration and test collection; no current incompatible Warp-autodiff test usage was found.
source/isaaclab/test/test_scripts_warp_backward_ordering.py Adds coverage for the root conftest, but its substring-only assertion does not protect the required execution ordering.

Reviews (1): Last reviewed commit: "[Test] Disable Warp autodiff in tests" | Re-trigger Greptile

def test_shared_pytest_configuration_disables_warp_backward():
contents = (_REPO_ROOT / _TEST_CONFTEST).read_text()

assert _SETTING in contents, f"{_TEST_CONFTEST} does not set '{_SETTING}'"

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.

P2 Substring check misses ordering regressions

This assertion passes when the assignment appears after an import that creates Warp modules or survives only in a comment or string, so the cold-compilation regression can return without this ordering test detecting it. Match an executable assignment and verify its position, as the entry-script checks above do.

@ooctipus
ooctipus enabled auto-merge (squash) August 23, 2026 23:55
@ooctipus
ooctipus merged commit 1c9ba90 into isaac-sim:develop Aug 24, 2026
46 checks passed
ooctipus pushed a commit to ooctipus/IsaacLab that referenced this pull request Aug 24, 2026
## Summary

- Disable Warp backward code generation before pytest collection to
reduce cold kernel compile times.
- Keep lightweight tooling compatible when Warp is not installed.
- Run the test matrix when the root pytest configuration changes; the
cache warmer uses the same configuration.

## Validation

- Warp-free tools tests: 29 passed
- `uv run isaaclab -f`

(cherry picked from commit 1c9ba90)
ooctipus added a commit that referenced this pull request Aug 24, 2026
…#7303 (#7313)

# Description

Backports six merged PRs to `release/3.0.0` as separate
provenance-preserving cherry-picks:

| Source PR | Source commit | Backport commit | Scope |
| --- | --- | --- | --- |
| #7272 | `0081477fea2` | `c9fc1997476` | Fix scene-wide gravity
distributions for PhysX and OvPhysX. |
| #7121 | `9f65e3d4fd2` | `cce8acd84e1` | Fix backend-factory fallback
before simulator initialization. |
| #7183 | `3fcc9c6b824` | `99d58d3d3c4` | Streamline the getting-started
documentation. |
| #7306 | `6aad90be0ae` | `9a786cc028a` | Optimize Newton test runtime.
|
| #7305 | `1c9ba908cf1` | `a2dc8ce948e` | Disable Warp autodiff in the
test suite. |
| #7303 | `393fc37d2b0` | `249a5cb97d8` | Remove post-Hydra preset
resolution. |

#7272 forwards the validated `uniform`, `log_uniform`, or `gaussian`
distribution through both scene-wide backend paths. Newton behavior is
unchanged.

#7121 makes factory resolution fall back to Newton when no
`SimulationContext` exists while retaining the visualizer contract of
reporting no active backend before context creation.

#7183 is documentation-only. #7306 and #7305 change test infrastructure
only; they do not change runtime behavior.

#7303 makes `resolve_task_config` and `parse_env_cfg` the
task-composition boundary. Runtime consumers now require concrete
physics, renderer, and camera configurations and no longer attempt late
preset fallback after Hydra composition.

The branch was synchronized with the current `release/3.0.0` tip
containing #7301 before #7303 was applied. All six source cherry-picks
applied without conflicts. A file-by-file existence, mode, and blob
audit confirmed that every #7303 path matches its merged source commit
exactly.

## Validation

### #7272

- Regression verification against the unpatched `release/3.0.0` tip —
both PhysX and OvPhysX cases failed as expected.
- `uv run --extra test --frozen python -m pytest -q
source/isaaclab/test/envs/test_gravity_randomization.py
source/isaaclab/test/envs/test_mdp_event_selectors.py` — 7 passed.
- `uv run --extra test --extra ovphysx --frozen python -m pytest -q
source/isaaclab_ov/test/physics/test_ovphysx_gravity.py` — 1 passed.

### #7121

- Regression verification before the #7121 cherry-pick reproduced the
original `NoneType.physics_manager` failure.
- `uv run --extra test --frozen python -m pytest -q
source/isaaclab/test/utils/test_backend_utils.py
source/isaaclab/test/visualizers/test_visualizer.py` — 18 passed.

### #7183

- `uv run --frozen --extra test python -m pytest --noconftest -q
tools/test/test_environ_docs.py` — 26 passed.

### #7306

- All 9 affected paths match the merged source PR exactly.
- The full simulator-backed Newton suite is left to backport CI because
this local worktree does not include the full Isaac Sim runtime.

### #7305

- Loaded the root `conftest.py` successfully with Warp unavailable.
- Loaded it with Warp installed and confirmed `wp.config.enable_backward
is False`.

### #7303

- Hydra and Shadow Hand camera suites — 129 passed.
- Benchmark capture and RL entrypoint suites — 31 passed.
- Experimental frontend and custom-coupling suites — 74 passed, 1
skipped.
- Ruff and Ruff-format passed for every changed Python path.
- Source/backport audit — 54 paths checked, 0 mismatches.
- The Isaac Sim-backed integration case is left to CI because this local
worktree is kitless.

### Repository gates

- `git diff --check upstream/release/3.0.0...HEAD` — passed.

---------

Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
Co-authored-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
Co-authored-by: Mustafa H <34825877+StafaH@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants