You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Docker] Install the Docker images from uv.lock (isaac-sim#7405)
## Summary
Docker images stop mutating Isaac Sim's shipped Python environment: the
previous build
replaced **41** of its packages, this one replaces **0**. All three
images install from
`uv.lock`, so builds are reproducible and
`[tool.uv].override-dependencies` apply.
# Description
The lock is the only path that applies
`[tool.uv].override-dependencies`, which pip cannot
read. The change is contained to the Docker build; `isaaclab.sh
--install` is unchanged.
- **Isaac Sim image** — `uv sync` resolves into a venv at
`/opt/isaaclab-venv`, built on Kit's
own interpreter. Isaac Sim is untouched, still reached through the
existing `_isaac_sim`
symlink, and `isaaclab.sh` sources `setup_python_env.sh` so `import
isaacsim` keeps working.
- **Kit-less image** — `uv sync` replaces the pip-style install,
retiring the duplicated
`tools/wheel_builder/uv-overrides.txt`.
- **cuRobo image** — same migration. Because Isaac Sim's site-packages
is no longer touched,
the image stops deleting the prebundled torch, re-bootstrapping `pip`
with `get-pip.py`, and
uninstalling `quadprog`. cuRobo is still built from its pinned commit.
- **No new extras** — the images use the ones that already exist.
`teleop` no longer bundles
the `isaacsim` wheel, so environments that already provide Kit do not
install a second,
version-mismatched copy; installs that need it use `--extra
teleop,isaacsim`, and the docs
say so wherever XR teleop appears (agreed with the teleop owner). `test`
is now the test
suite alone and `dev` adds the documentation toolchain, so the images
can install `test`
without shipping Sphinx and its GPL-3.0-or-later `docutils`, which the
Docker licence gate
rejects.
- **Image invariant test** — the images install with `uv sync`, which
never runs
`command_install`'s dangling-symlink guard, so isaac-sim#6329's protection would
have been lost. A
post-build step asserts no prebundled package lost its `__init__.py`,
bound to the digest
just built. It has already caught a real regression on a dependent
branch.
- **Removed** the `quadprog` uninstall (absent from the lock), the
`toml` install
(`install_deps.py` now uses stdlib `tomllib`), and the `imageio-ffmpeg`
uninstall
(excluded during the sync instead).
Newton resolves to 1.5.0 from the lock's pinned commit where the pip
path floated to
`release-1.5` HEAD (1.5.1); regenerating `uv.lock` is the lever if a
newer commit is needed.
`uv.lock` is regenerated with uv 0.9.25, the version the images pin.
Newer uv renormalises
environment markers and rewrites ~2200 lines with no semantic change.
## Type of change
- New feature (non-breaking change which adds functionality)
## Release backport
- [ ] <!-- backport-active-release --> Backport this pull request to the
active release branch after it merges into `develop`
## Checklist
- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) 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 — a post-build image-invariant test, plus building all
three images and diffing their package sets against the previous build
- [x] I have added a changelog fragment under
`source/<pkg>/changelog.d/` for every touched package
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
---------
Co-authored-by: ooctipus <zhengyuz@nvidia.com>
0 commit comments