[Backport] PR #7389 to release/3.0.0 - #7581
Conversation
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)
|
run-ci |
Greptile SummaryThis backport gates tests that inspect repository-only artifacts behind a shared source-checkout fixture.
Confidence Score: 5/5The 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
Reviews (1): Last reviewed commit: "Gate checkout-only tests with a root fix..." | Re-trigger Greptile |
There was a problem hiding this comment.
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_ROOTis 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
pytestmarkpreserves 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.
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.
9adf4831384dbe9320de72e9b7809c0d87252b9a355dc9ba107527d7baae7600e89229a89d4e462853b77121e69f2d52fcc842bd791536ce8777e35a