Skip to content

[Backport] PR #7389 to release/3.0.0 - #7581

Closed
isaaclab-bot[bot] wants to merge 1 commit into
release/3.0.0from
backport/release/3.0.0/pr-7389
Closed

[Backport] PR #7389 to release/3.0.0#7581
isaaclab-bot[bot] wants to merge 1 commit into
release/3.0.0from
backport/release/3.0.0/pr-7389

Conversation

@isaaclab-bot

@isaaclab-bot isaaclab-bot Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Backports #7389 to release/3.0.0.

The original cherry-pick conflicted. An NVIDIA inference model proposed this resolution, and deterministic validation confirmed that it changes no paths outside the original PR. Because conflict resolution cannot be certified as an exact patch replay, this PR is intentionally a draft and requires release-maintainer review.

Field Commit
Original merged change 9adf4831384dbe9320de72e9b7809c0d87252b9a
Release base used 355dc9ba107527d7baae7600e89229a89d4e4628
Proposed backport 53b77121e69f2d52fcc842bd791536ce8777e35a

A handful of unit tests inspect repository artifacts that only exist in
a source checkout (`apps`, `scripts`, the root `pyproject.toml`,
`uv.lock`, `tools/wheel_builder`, and the workflow files). Run from an
installed package they fail because those paths are absent. This gates
them behind a shared `source_checkout_root` session fixture that locates
the checkout and skips the test when it is not present, and returns the
root path so the tests stop recomputing it by hand.

The fixture lives in `source/isaaclab/test/conftest.py`. The affected
tests now take `source_checkout_root` and drop their local
`_repo_root()` helpers, so the gating is explicit at the test and the
requirement is hard to forget: a checkout-only test needs the root
anyway, so it asks for the fixture and gets the skip for free.

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

- [x] <!-- backport-active-release --> Backport this pull request to the
active release branch after it merges into `develop`

- [x] I have read and understood the contribution guidelines
- [x] I have run the `pre-commit` checks with `./isaaclab.sh --format`
- [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
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

(cherry picked from commit 9adf483)
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Sep 4, 2026
@kellyguo11
kellyguo11 marked this pull request as ready for review September 4, 2026 21:12
@kellyguo11
kellyguo11 requested a review from a team September 4, 2026 21:12
@kellyguo11

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@greptile-apps

greptile-apps Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This backport gates tests that inspect repository-only artifacts behind a shared source-checkout fixture.

  • Adds a session-scoped fixture that locates the checkout root and skips affected tests when it is unavailable.
  • Updates application, CLI metadata, wheel-builder, teleoperation, and script-ordering tests to obtain repository paths through that fixture.
  • Preserves release-specific teleoperation dependency and wheel-console expectations during conflict resolution.

Confidence Score: 5/5

The PR appears safe to merge after the requested release-maintainer review of the conflict resolution.

The fixture is discoverable by every changed test, resolves correctly in supported source-checkout layouts, and intentionally skips only tests whose required repository artifacts are unavailable; no actionable regression remains.

Important Files Changed

Filename Overview
source/isaaclab/test/conftest.py Adds the shared checkout-root discovery and skip behavior used by repository-artifact tests.
source/isaaclab/test/cli/test_uv_run_pyproject.py Routes root project, documentation, lock, and workflow reads through the checkout fixture while preserving release-specific assertions.
source/isaaclab/test/cli/test_wheel_builder_metadata.py Routes wheel-builder scripts and metadata artifacts through the checkout fixture without changing subprocess semantics.
source/isaaclab/test/cli/test_teleop_entrypoints.py Uses the fixture for teleoperation script and dependency metadata checks.
source/isaaclab/test/app/test_experience_files.py Resolves application experience files relative to the discovered source checkout.
source/isaaclab/test/test_scripts_warp_backward_ordering.py Gates repository script-ordering checks through the shared fixture and applies the unit marker at module scope.

Reviews (1): Last reviewed commit: "Gate checkout-only tests with a root fix..." | 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

This test-infrastructure backport centralizes source-checkout discovery in a session-scoped source_checkout_root fixture and updates repository-artifact tests to use it. The accompanying .skip changelog fragment appropriately marks the change as non-user-visible.

  • Design and architecture: The shared fixture replaces duplicated parent-index and repository-root discovery logic across app, CLI, metadata, wheel-builder, and script-ordering tests. Its placement covers the converted test subdirectories, while skipping when no source checkout exists intentionally supports installed-package test runs.
  • API: No public API, CLI option, default, export, or documented behavior changes. install.ISAACLAB_ROOT is patched only within a test, and the changelog treatment follows the repository guidance for test-only changes.
  • Implementation: Converted helper signatures and call sites are updated consistently, path construction still targets the checkout root, and the module-level pytestmark preserves the unit marker. One non-blocking tradeoff is that the teleop dispatch test now also detects disagreement between the CLI's configured root and the discovered checkout root, which could fail in a non-editable installation run beside a checkout.

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.

@kellyguo11 kellyguo11 closed this Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants