Skip to content

[CI] Cache tetrahedralization dependencies in the base image - #7937

Merged
StafaH merged 2 commits into
isaac-sim:developfrom
mataylor-nvidia:mataylor/fix-ovrtx-cache-warm-pytetwild
Sep 23, 2026
Merged

StafaH merged 2 commits into
isaac-sim:developfrom
mataylor-nvidia:mataylor/fix-ovrtx-cache-warm-pytetwild

Conversation

@mataylor-nvidia

@mataylor-nvidia mataylor-nvidia commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Description

The OVRTX cache warmer's Franka soft-body tests fail during scene setup with ModuleNotFoundError: No module named 'pytetwild'. Install the existing tetrahedralization extra when building the shared base image so the warmer and other deformable tests inherit it from the cached image.

Add --extra tetrahedralization to the image's existing frozen uv sync steps and remove the 12 duplicated pytetwild runtime requirements from the build workflow. The version range remains in pyproject.toml, and uv.lock selects the installed version. The existing dependency-image cache key already tracks both manifests and the Dockerfile, so dependency changes invalidate the cache automatically.

Observed failure: https://github.com/isaac-sim/IsaacLab/actions/runs/35643651003/job/106478957632

Type of change

  • Bug fix (CI dependency)

Validation

  • uv run --extra test --frozen python -m pytest -q docker/test/test_dockerfile_nonroot.py docker/test/test_security_dependencies.py — 36 tests and 11 subtests passed.
  • uv run isaaclab -f — all pre-commit checks passed using the existing validation environment and the upstream develop base for changelog validation.
  • Parsed and compared the workflow before and after the change: all 12 affected jobs use the base image, and all settings other than the removed package requirements are unchanged.
  • Exported the frozen tetrahedralization extra and verified it includes pytetwild, pyvista, and vtk.
  • git diff --check — passed.
  • The Docker image build and GPU warmer remain unverified locally; the dedicated warmer is skipped on pull-request events.

Release backport

  • Backport this pull request to the active release branch after it merges into develop

Checklist

  • Read the contribution guidelines.
  • Ran the repository formatting and lint checks.
  • No changelog fragment required: only Docker and CI configuration changed.

@mataylor-nvidia
mataylor-nvidia requested a review from a team September 21, 2026 23:30
@github-actions github-actions Bot added bug Something isn't working infrastructure labels Sep 21, 2026
@greptile-apps

greptile-apps Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge; the dependency addition follows existing workflow conventions and addresses the reported missing-module failure.

Summary

This PR adds the missing PyTetWild tetrahedralization dependency to the post-merge OVRTX shader-cache warmer.

  • Uses the same bounded pytetwild[all]>=0.3.0,<0.4 requirement as the rendering-correctness jobs.
  • Allows selected Franka soft-body rendering cases to complete scene setup and populate the shader cache.

Reviews (1) · Last reviewed commit: "Fix OVRTX cache warmer tetrahedralizatio..."

@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 narrowly adds pytetwild[all]>=0.3.0,<0.4 to the OVRTX cache warmer’s existing extra-package list, addressing the reported missing dependency without altering cache publication or job scheduling behavior.

  • Design and architecture: The dependency is added within the existing warm-ovrtx-cache job; job boundaries, gating, concurrency, and cache handling remain unchanged.
  • API: The extra-pip-packages action input remains a space-separated requirement string, with the existing OVRTX and PhysX pin outputs preserved. No public Isaac Lab API is affected.
  • Implementation: The requirement is bounded to the 0.3 release series and is placed alongside the warmer’s existing runtime dependencies. The GPU warmer was not executed locally, so successful installation and execution of the node IDs selected through .github/test-subsets/postmerge-rendering.toml remain to be confirmed by post-merge CI.

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.

@mataylor-nvidia mataylor-nvidia changed the title [CI] Install PyTetWild in the OVRTX cache warmer [CI] Cache tetrahedralization dependencies in the base image Sep 22, 2026
Comment thread docker/Dockerfile.base
# The image's package set. Kit ships in the base image, so the teleop stack comes without the
# ``isaacsim`` wheel; ``teleop`` itself is left exactly as tuned.
ARG IMAGE_EXTRAS="--extra sb3 --extra skrl --extra rl-games --extra rsl-rl --extra viser --extra rerun --extra mimic --extra teleop --extra test"
ARG IMAGE_EXTRAS="--extra sb3 --extra skrl --extra rl-games --extra rsl-rl --extra viser --extra rerun --extra mimic --extra teleop --extra test --extra tetrahedralization"

@mataylor-nvidia mataylor-nvidia Sep 22, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

image deps are cached across jobs so this would remove overhead.

another way this could be fixed is it could be layered in

- name: Layer CI test dependencies
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install \
              pytest pytest-mock junitparser flaky "coverage>=7.6.1 {tetrahedralization deps here}"

However, the docker change is much cleaner

@mataylor-nvidia

Copy link
Copy Markdown
Contributor Author

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 22, 2026
@StafaH
StafaH merged commit a3e0295 into isaac-sim:develop Sep 23, 2026
53 checks passed
@isaaclab-bot

isaaclab-bot Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Backported to release/3.0.0 as 5964017.

isaaclab-bot Bot pushed a commit that referenced this pull request Sep 23, 2026
## Description

The OVRTX cache warmer's Franka soft-body tests fail during scene setup
with `ModuleNotFoundError: No module named 'pytetwild'`. Install the
existing `tetrahedralization` extra when building the shared base image
so the warmer and other deformable tests inherit it from the cached
image.

Add `--extra tetrahedralization` to the image's existing frozen `uv
sync` steps and remove the 12 duplicated `pytetwild` runtime
requirements from the build workflow. The version range remains in
`pyproject.toml`, and `uv.lock` selects the installed version. The
existing dependency-image cache key already tracks both manifests and
the Dockerfile, so dependency changes invalidate the cache
automatically.

Observed failure:
https://github.com/isaac-sim/IsaacLab/actions/runs/35643651003/job/106478957632

## Type of change

- Bug fix (CI dependency)

## Validation

- `uv run --extra test --frozen python -m pytest -q
docker/test/test_dockerfile_nonroot.py
docker/test/test_security_dependencies.py` — 36 tests and 11 subtests
passed.
- `uv run isaaclab -f` — all pre-commit checks passed using the existing
validation environment and the upstream `develop` base for changelog
validation.
- Parsed and compared the workflow before and after the change: all 12
affected jobs use the base image, and all settings other than the
removed package requirements are unchanged.
- Exported the frozen `tetrahedralization` extra and verified it
includes `pytetwild`, `pyvista`, and `vtk`.
- `git diff --check` — passed.
- The Docker image build and GPU warmer remain unverified locally; the
dedicated warmer is skipped on pull-request events.

## Release backport

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

## Checklist

- [x] Read the contribution guidelines.
- [x] Ran the repository formatting and lint checks.
- [x] No changelog fragment required: only Docker and CI configuration
changed.

(cherry picked from commit a3e0295)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants