Skip to content

Use latest Isaac Sim image for CI#5628

Draft
kellyguo11 wants to merge 4 commits into
isaac-sim:developfrom
kellyguo11:ci-latest-0514
Draft

Use latest Isaac Sim image for CI#5628
kellyguo11 wants to merge 4 commits into
isaac-sim:developfrom
kellyguo11:ci-latest-0514

Conversation

@kellyguo11
Copy link
Copy Markdown
Contributor

Description

Move our CI pipeline back to using the nightly Isaac Sim image (removing the previous pin), as the Isaac Sim failure should now be addressed.

Type of change

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

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks 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 updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@kellyguo11 kellyguo11 requested a review from hhansen-bdai as a code owner May 15, 2026 06:40
@kellyguo11 kellyguo11 marked this pull request as draft May 15, 2026 06:40
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 15, 2026

Greptile Summary

This PR unpins the Isaac Sim CI image, reverting from a specific SHA digest back to the floating latest-develop tag after an upstream Isaac Sim issue was resolved.

  • Removes the @sha256:... digest from isaacsim_image_tag, so CI will now always pull the most recent latest-develop nightly build rather than a fixed, reproducible image.
  • This restores the pre-pin behaviour intentionally; no other files are changed.

Confidence Score: 4/5

Safe to merge; the change intentionally restores the pre-pin floating tag after an upstream fix.

The only meaningful risk is that the latest-develop nightly tag is mutable — if the upstream image regresses again, CI failures will appear without any repo-side change to point to, making diagnosis harder than it was with the pinned digest.

.github/workflows/config.yaml — the sole changed file; the floating tag is the one thing worth double-checking before merge.

Important Files Changed

Filename Overview
.github/workflows/config.yaml Removes pinned image digest from isaacsim_image_tag, reverting to the floating latest-develop tag for CI.

Reviews (1): Last reviewed commit: "Use latest Isaac Sim image for CI" | Re-trigger Greptile

# workflow via yq and exposed as job outputs (see e.g. .github/workflows/build.yaml).
isaacsim_image_name: nvcr.io/nvidian/isaac-sim
isaacsim_image_tag: latest-develop@sha256:0dd49a1121b297dc85eee7777a9c528318683dbe03b29fd01f2059ac1b099301
isaacsim_image_tag: latest-develop
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 Switching to a floating tag means each CI run may silently pull a different Isaac Sim nightly. If the nightly regresses again, failures will appear without an obvious change in the repo, making root-cause analysis harder. Consider re-pinning to the new digest once the nightly is confirmed stable, and only updating the pin intentionally going forward.

Suggested change
isaacsim_image_tag: latest-develop
isaacsim_image_tag: latest-develop@sha256:<new-digest-here>

Copy link
Copy Markdown

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI Configuration Review

This is a clean infrastructure change that removes the temporary SHA256 digest pin from the Isaac Sim Docker image tag.

Summary

The change reverts from a pinned image (latest-develop@sha256:0dd49a...) to the floating latest-develop tag. According to the PR description, this is appropriate because the upstream Isaac Sim issue that necessitated the pin has been resolved.

Analysis

What this changes:

  • All CI workflows that consume .github/workflows/config.yaml (build, docs, publish-images, etc.) will now pull whatever image latest-develop resolves to at execution time
  • Different CI runs may use different underlying images if NVIDIA pushes updates between runs

Trade-offs (informational, not blocking):

  • Benefit: CI stays current with Isaac Sim nightly improvements and fixes automatically
  • ⚠️ Trade-off: If a broken Isaac Sim nightly is pushed, CI could fail for reasons outside this repo's control. This is a known and accepted trade-off for projects tracking upstream development branches.

Verdict

Ship it. This is a straightforward, correct change with no code-level concerns. The decision to use floating tags vs pinned digests is a policy choice, and the team has clearly opted for staying current.

No action items required.


Update (186c08f):

⚠️ Scope change: This PR has grown significantly from a 1-line CI config change to a large feature/refactoring commit. The new changes include:

  • URDF/MJCF converter refactoring: Delegation to Isaac Sim's importer with new config options
  • Camera/sensor warp math helpers: New warp_math.py with orientation conversion and depth processing kernels
  • Import path standardization: from isaaclab.utils.configclass import configclass across ~80 files
  • New observation terms: stacked_image for frame-stacking camera observations
  • Newton renderer updates: ProxyArray integration for set_outputs/update_camera
  • Extensive new test coverage: MJCF, stacked image observations, etc.

Previous inline comment status:

  • ✅ The original CI config change remains valid; my suggestion about re-pinning is informational, not blocking.

New changes assessment:

  • The import path changes are mechanical and correct.
  • The converter refactoring delegates to upstream Isaac Sim APIs — cleaner architecture.
  • The warp math kernels are well-documented with clear derivations.
  • New tests exercise the added functionality.

No new blocking issues identified in the incremental diff.


Update (c06d99c):

This commit focuses on CI refactoring and OVRTX renderer memory optimization:

CI Changes

  • Removed extra-pip-packages: "ovrtx" from the 3 generic isaaclab_tasks test shards — OVRTX is no longer needed there
  • Added 2 new dedicated CI jobs:
    • test-rendering-correctness: Runs in-kit rendering tests (test_rendering_*.py, non-kitless)
    • test-rendering-correctness-kitless: Runs kitless OVRTX tests with extra-pip-packages: "ovrtx"
  • Both new jobs have continue-on-error: true — appropriate for experimental/non-blocking tests
  • Updated tools/test_settings.py with RENDERING_CORRECTNESS_TESTS and RENDERING_CORRECTNESS_KITLESS_TESTS lists to exclude these from generic shards

OVRTX Renderer Memory Optimization

  • Eliminated disk I/O: Stage export now uses ExportToString()open_usd_from_string() instead of writing temp files
  • Removed temp_usd_suffix config option (breaking change, documented in changelog)
  • Changed temp_usd_dir default from temp dir to None — disk write only when explicitly configured for debugging
  • Backward compatibility: OVRTX < 0.3.0 still writes to disk (falls back to temp dir)

Assessment

✅ Clean, well-structured changes
✅ Proper changelog entries added
✅ Memory optimization is a clear improvement for production use
✅ CI job separation makes rendering tests more maintainable

No blocking issues.


Update (0a9b9af):

This is a large commit covering several areas:

1. Install CI Test Suite Expansion

  • Added test_isaaclabx_i_mimic.py, test_isaaclabx_i_none.py, test_isaaclabx_i_rl.py, test_isaaclabx_i_visualizer.py, test_isaaclabx_integrated.py for comprehensive install scenario testing
  • Added Conda_Mixin in utils.py for conda environment testing support
  • Updated existing install tests to use new -i none (core only) and feature-selector patterns

2. Ray Caster Backend Refactoring (PhysX + Newton)

  • New PhysX backend: isaaclab_physx/sensors/ray_caster/ with direct RigidBodyView pose tracking
  • New Newton backend: isaaclab_newton/sensors/ray_caster/ with site-based pose tracking via NewtonManager.cl_register_site
  • Fixed sensor pose tracking regression when parented under rigid bodies
  • Mesh transform updates now write directly to Warp arrays (bypassing torch staging)

3. Test Cleanup

  • Removed AppLauncher boilerplate from ~20 unit test files that don't require Isaac Sim runtime
  • Test files for utils, configclass, math, noise, etc. now run standalone with just Warp

4. Docker CI Improvements (tools/run_install_ci.py)

  • Added --conda flag for layered conda image builds
  • Improved JUnit XML result extraction via docker cp instead of bind mounts
  • Better container lifecycle management with named containers

5. Package Updates

  • rsl-rl-lib upgraded from 3.1.2 to 5.0.1 in wheel builder config
  • robomimic moved from opt-in extra to required dependency for isaaclab_mimic on Linux
  • Version bumps: isaaclab_newton 0.11.0, isaaclab_physx 0.9.0, isaaclab_ov 0.2.1, isaaclab_ovphysx 2.0.0, isaaclab_tasks 1.8.0

6. Task Config Additions

  • Added raycaster-camera depth presets (raycaster_depth64/128/256) for Dexsuite Kuka-Allegro manipulation task

Assessment

✅ Ray caster refactoring addresses the pose tracking regression correctly
✅ Test cleanup is appropriate — these tests don't need Isaac Sim
✅ Install CI expansion provides better coverage for the modular install system
✅ Docker CI improvements are sensible for CI reliability
✅ Changelog entries present for all version bumps

No new blocking issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants