Skip to content

[Fix] Cherry-pick docker install extension-startup fix (prebundle deletion, pin-pink)#6436

Open
hujc7 wants to merge 2 commits into
isaac-sim:release/3.0.0-beta2from
hujc7:jichuanh/cherrypick-6329-release-3.0.0-beta2
Open

[Fix] Cherry-pick docker install extension-startup fix (prebundle deletion, pin-pink)#6436
hujc7 wants to merge 2 commits into
isaac-sim:release/3.0.0-beta2from
hujc7:jichuanh/cherrypick-6329-release-3.0.0-beta2

Conversation

@hujc7

@hujc7 hujc7 commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Description

Cherry-pick of #6329 onto release/3.0.0-beta2 — the follow-up to #6295 for NVBug 6410989 (continuation of NVBug 6343978): Docker streaming works but the log floods with 438 [Error] lines and 14 Isaac Sim extensions fail to load. uv installs are unaffected.

1. Summary

  • Relaxed the vestigial packaging<24 bound in isaaclab_rl — it forced pip to downgrade packaging and delete it from the omni.isaac.core_archive prebundle, dangling the per-file symlink farm omni.services.pip_archive shares with it (13 extension startup failures).
  • Bumped pin-pink 3.1.03.3.0 at every pin site — isaacsim.robot_motion.pink needs pink.exceptions.NoSolutionFound (pink ≥ 3.3.0); pink 3.4+ stays excluded (pink_ik task-API break, Fix pink ik dep pinning #5846). The wheel spec's pin-pink>=2.3.6 also becomes ==3.3.0 (it currently resolves to 4.x).
  • Added the fail-loud post-install invariant: the install aborts when pip leaves a prebundled Isaac Sim package with a dangling __init__.py; other new dangling links only warn.

2. Backport adaptations vs #6329

This branch predates the #6009 dependency centralization, so:

  • Pin edits land in source/isaaclab/setup.py, source/isaaclab_rl/setup.py, and tools/wheel_builder/res/python_packages.toml instead of the root pyproject.toml.
  • The install CLI keeps its hardcoded _PINK_IK_STACK (bumped to 3.3.0); the pyproject-derived stack from [Fix] Stop docker installs breaking Isaac Sim extension startup (prebundle deletion, pin-pink) #6329 and its tests are not ported — the derivation would KeyError here since the root pyproject.toml has no pin entries on this branch.
  • import pytest added to test_install_prebundle.py (develop had it from an intermediate commit not on this branch).

3. Heads-up: the invariant can surface latent arm64 breakage

On develop, the first nightly image build containing #6329 failed its arm64 leg because the invariant caught a real prebundle breakage (Pillow deleted from omni.kit.pip_archive). If this release branch's arm64 docker build has a similar latent issue, the invariant will turn a silently-broken image into a failed build — that is by design, but worth knowing before merging.

4. Test plan

  • source/isaaclab/test/cli/ — 141 passed locally (prebundle invariant tests included).
  • PR CI green.

Cherry-pick of 3a315a0. Docker installs deleted packaging from
Isaac Sim's omni.isaac.core_archive prebundle (dangling the symlink
farm shared with omni.services.pip_archive; 13 extension startup
failures) and pinned pin-pink too old for Isaac Sim 6.x
(isaacsim.robot_motion.pink needs pink>=3.3).

Backport adaptations: this branch predates the isaac-sim#6009 dependency
centralization, so the packaging<24 relaxation and the pin-pink==3.3.0
bump land in source/isaaclab/setup.py, source/isaaclab_rl/setup.py and
tools/wheel_builder/res/python_packages.toml instead of the root
pyproject.toml, and the install CLI keeps its hardcoded _PINK_IK_STACK
(the pyproject-derived stack and its tests are not ported).

Fixes nvbugs 6410989.
@hujc7 hujc7 requested a review from Mayankm96 as a code owner July 9, 2026 04:13
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels Jul 9, 2026
@greptile-apps

greptile-apps Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes Docker install dependency handling for Isaac Sim prebundles and Pink IK. The main changes are:

  • Bumps Pink IK install pins to pin-pink==3.3.0.
  • Relaxes the packaging dependency bound in IsaacLab RL and wheel metadata.
  • Adds a post-install check for new dangling Isaac Sim prebundle symlinks.
  • Adds tests for the new prebundle integrity check.

Confidence Score: 4/5

The changed install path needs a fix for existing incompatible Pink installs.

  • The new stack pin installs pin-pink==3.3.0 only when the dependency probe fails.
  • An environment with Pink 3.4 or newer can pass that probe and keep the incompatible API.
  • The prebundle integrity check matches the intended Docker install failure mode.

source/isaaclab/isaaclab/cli/commands/install.py

Important Files Changed

Filename Overview
source/isaaclab/isaaclab/cli/commands/install.py Updates the Pink IK install stack and adds the new prebundle dangling-symlink snapshot/assert flow.
source/isaaclab/test/cli/test_install_prebundle.py Adds coverage for intact symlink farms, deleted shared package targets, preexisting dangling links, and warning-only dangling files.
source/isaaclab/setup.py Updates the platform-marked Pink IK dependency pin to pin-pink==3.3.0.
source/isaaclab_rl/setup.py Relaxes the packaging requirement so pip no longer downgrades the prebundled copy.
tools/wheel_builder/res/python_packages.toml Mirrors the Pink IK and packaging dependency updates in wheel metadata.
source/isaaclab/isaaclab/controllers/pink_ik/pink_ik.py Updates Pink IK error messages to recommend the new manual install stack.

Reviews (1): Last reviewed commit: "Cherry-pick #6329 docker install fixes t..." | Re-trigger Greptile

# ``cmeel.pth`` hook. DAQP provides the QP solver selected by the Pink IK controller.
_PINK_IK_STACK = ("pin", "pin-pink==3.1.0", "daqp==0.8.5")
# pin-pink: Isaac Sim 6.x needs >=3.3, 3.4+ breaks pink_ik; daqp >0.8.5 changes behavior.
_PINK_IK_STACK = ("pin", "pin-pink==3.3.0", "daqp==0.8.5")

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.

P1 Existing Pink Version Survives

When an environment already has pin-pink 3.4 or newer, the install probe can still pass because it only checks pinocchio, daqp, and qpsolvers. In that state ./isaaclab.sh -i skips the force reinstall, leaves the incompatible Pink API in place, and the Pink IK controller can still fail at runtime even though this stack pin is meant to keep installs on 3.3.0.

# Description

Documentation jobs are failing because of broken links from upstream
documentation:

was:
```
https://nvidia-isaac-ros.github.io/reference_workflows/isaac_for_manipulation/packages/isaac_ros_manipulation_ur_dnn_policy/index.html
```

is:
```
https://nvidia-isaac-ros.github.io/reference_workflows/isaac_for_manipulation/packages/isaac_ros_manipulation_dnn_policy/index.html
```

Fixes # (issue)

<!-- As a practice, it is recommended to open an issue to have
discussions on the proposed pull request.
This makes it easier for the community to keep track of what is being
developed or added, and if a given feature
is demanded by more than one party. -->

## Type of change

<!-- As you go through the list, delete the ones that are not
applicable. -->

- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (existing functionality will not work without user
modification)
- Documentation update

## Screenshots

Please attach before and after screenshots of the change if applicable.

<!--
Example:

| Before | After |
| ------ | ----- |
| _gif/png before_ | _gif/png after_ |

To upload images to a PR -- simply drag and drop an image while in edit
mode and it should upload the image directly. You can then paste that
source into the above before/after sections.
-->

## Checklist

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) 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

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->

(cherry picked from commit 1f92203)
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Jul 9, 2026
@hujc7 hujc7 requested a review from StafaH July 9, 2026 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants