Skip to content

Use GHA runner for release/1.1.x branch#457

Closed
jiwenc-nv wants to merge 1 commit into
NVIDIA:release/1.1.xfrom
jiwenc-nv:jiwenc/use-gha-1.1.x
Closed

Use GHA runner for release/1.1.x branch#457
jiwenc-nv wants to merge 1 commit into
NVIDIA:release/1.1.xfrom
jiwenc-nv:jiwenc/use-gha-1.1.x

Conversation

@jiwenc-nv
Copy link
Copy Markdown
Collaborator

@jiwenc-nv jiwenc-nv commented May 1, 2026

Summary by CodeRabbit

  • New Features

    • Added reprojection grid configuration controls to the WebXR client UI.
    • Introduced CloudXR runtime containerization support via NGC Docker image.
  • Bug Fixes

    • Improved Pico body tracking handling with graceful degradation when unsupported.
    • Optimized CloudXR library dependency handling and SDK download mechanism.
  • Documentation

    • Updated Isaac Lab compatibility references to version 3.0 Beta with latest documentation paths.
    • Expanded device support documentation and hardware requirements across use cases.
    • Enhanced build and installation instructions with new dependencies and parallel build support.
  • Chores

    • Bumped version to 1.1.x.
    • Updated CloudXR SDK to stable 6.1.0 release.
    • Increased NumPy minimum requirement to 1.23.0.

Co-authored-by: Copilot <copilot@github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

📝 Docs preview is not auto-deployed for fork PRs.

A maintainer with write access to NVIDIA/IsaacTeleop can deploy a preview by
commenting /preview-docs on this PR. Once deployed, the preview
will live at:

https://nvidia.github.io/IsaacTeleop/preview/pr-457/

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

Caution

Review failed

Failed to post review comments

📝 Walkthrough

Walkthrough

This pull request introduces CloudXR runtime infrastructure with Docker containers and Python entry points, adds a release-tag workflow for automated version management, extends the UI with reprojection grid configuration, updates numpy minimum version from 1.22+ to 1.23+, enhances documentation with device support details and use-case-driven requirements, makes the Pico tracker gracefully handle missing extensions, refactors tensor transform utilities to use DLPack directly, and adds corresponding test coverage for isolated NumPy versions and optional input toggling.

Changes

Cohort / File(s) Summary
CI/Workflow Configuration
.github/workflows/build-ubuntu.yml, .github/workflows/release-tag.yml
Updated job scheduling to use per-architecture runner labels with explicit GPU mapping. Introduced new manually-dispatched release workflow with environment gating, version verification, patch computation, CI status checks, idempotent tag creation, and draft release generation using GitHub API.
CloudXR SDK & Environment
deps/cloudxr/.env.default
Removed pre-release suffixes (-rc2, -rc6) from CloudXR runtime and web SDK versions, pinning both to stable 6.1.0 release.
CloudXR Runtime Docker & Infrastructure
deps/cloudxr/Dockerfile.runtime-ngc, deps/cloudxr/docker-compose.yaml, deps/cloudxr/runtime/entrypoint-ngc.sh, deps/cloudxr/runtime/main.py, scripts/download_cloudxr_runtime_sdk.sh, scripts/run_cloudxr_via_docker.sh
New multi-stage NGC runtime Dockerfile with Vulkan/graphics support, Python service runner using ctypes to interface with libcloudxr.so, entrypoint script for directory/file setup and state reset, Docker Compose service with healthcheck and named volume, and updated scripts for SDK download and service orchestration.
CloudXR SDK Download Refactoring
scripts/download_cloudxr_sdk.sh
Replaced ngc CLI-based download with direct wget to public NGC REST API, removing CLI dependency and improving download robustness.
CloudXR Test Dockerfile
deps/cloudxr/Dockerfile.test
Split isaacteleop installation into two separate uv pip install commands, removing explicit numpy constraint from second install.
CloudXR Reprojection Grid Config (TypeScript/React)
deps/cloudxr/webxr_client/helpers/DeviceProfiles.ts, deps/cloudxr/webxr_client/helpers/react/CloudXRComponent.tsx, deps/cloudxr/webxr_client/helpers/utils.ts
Extended CloudXRConfig interface with optional reprojectionGridCols and reprojectionGridRows properties, updated device-specific defaults for quest2 and pico4ultra, added utility function getGridFromInputs for parsing grid dimensions.
CloudXR Reprojection Grid UI
deps/cloudxr/webxr_client/src/CloudXR2DUI.tsx, deps/cloudxr/webxr_client/src/index.html
Added UI inputs and validation for depth reprojection mesh grid dimensions, integrated grid validation into connect-button state logic, updated configuration persistence and device profile application to include reprojection grid values.
NumPy Dependency Updates
src/core/python/requirements.txt, examples/oxr/python/pyproject.toml, examples/retargeting/python/pyproject.toml, examples/teleop_session_manager/python/pyproject.toml
Consistently bumped NumPy minimum requirement from 1.22.2 to 1.23.0 across core and example projects.
Documentation Updates
README.md, docs/source/getting_started/build_from_source.rst, docs/source/getting_started/quick_start.rst, docs/source/index.rst, docs/source/overview/ecosystem.rst, docs/source/references/license.rst, docs/source/references/requirements.rst
Updated Isaac Lab compatibility references from "3.0 EA" to "3.0 Beta", added patchelf to Ubuntu prerequisites, restructured requirements into use-case-driven sections with detailed component tables, broadened Meta Quest device support, refined Pico OS constraints, updated documentation links to develop branch, added NVIDIA Sphinx Theme to license exceptions, enhanced "Next Steps" with new ROS teleoperation card.
Documentation Styling
docs/source/_static/css/custom.css
Added targeted styling for next-steps section cards, figure image pointer-events control, and trademark notice text color.
Configuration & Version
.nspect-allowlist.toml, VERSION
Added allowlist configuration excluding docs directory, updated version from 1.0.x to 1.1.x.
Core CMake Build
src/core/cloudxr/python/CMakeLists.txt
Added conditional patchelf step to remove spurious libssl.so.3 dependency from libcloudxr.so during SDK extraction.
CloudXR Runtime Python
src/core/cloudxr/python/runtime.py
Updated native library loading to optionally apply RTLD_DEEPBIND flag when platform-supported.
Pico Body Tracker Robustness
src/core/deviceio/cpp/full_body_tracker_pico.cpp
Modified constructor to enter limp mode without throwing when body tracking is unsupported, removed constructor-time extension validation, added null-handle guards in update path.
Transform Utilities Refactoring
src/core/retargeting_engine/python/utilities/transform_utils.py, src/core/retargeting_engine/python/utilities/hand_transform.py, src/core/retargeting_engine/python/utilities/head_transform.py, src/core/retargeting_engine/python/utilities/controller_transform.py
Introduced _copy_tensor_group_slots_from_dlpack_input helper to replace per-slot deep-copy, preventing DLPack aliasing and eliminating redundant np.from_dlpack conversions by passing output buffers directly to transform functions.
Transform Tests
src/core/retargeting_engine_tests/python/test_transforms.py, src/core/retargeting_engine_tests/python/test_transform_numpy_versions.py, src/core/retargeting_engine_tests/python/transform_numpy_version_smoke.py
Added regression test suite for optional input toggling in HeadTransform, ControllerTransform, and HandTransform; introduced parametrized test spawning subprocess for isolated NumPy version testing (1.23.5 and 2.0+); added standalone smoke-test script validating head transform behavior across NumPy families.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 hop hop, new release flows to bind,
grids of light and docker designs,
tensors dance through dlpack's embrace,
trackers graceful when features can't trace—
version one-dot-one lights up the way! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 53.85% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Use GHA runner for release/1.1.x branch' is vague and does not clearly convey the main changes in the PR. The changeset includes significant updates: version bump to 1.1.x, new release workflow, CloudXR SDK version updates, new Docker runtime setup, WebXR reprojection grid features, documentation updates, and retargeting engine improvements. The title only mentions GHA runner configuration and is too narrow to represent the scope of this release. Consider a more descriptive title that captures the main release objectives, such as 'Release 1.1.x with CloudXR updates and reprojection grid features' or breakdown into multiple scoped PRs if the changes represent distinct features.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch jiwenc/use-gha-1.1.x

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@jiwenc-nv jiwenc-nv changed the base branch from main to release/1.1.x May 1, 2026 22:21
@jiwenc-nv jiwenc-nv closed this May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants