Conversation
Nothing in either runtime image invoked git. CI materialises its `lfs: true` checkout on the runner before bind-mounting the tree in, and the `git+https://` dependencies still resolve because the kit-less builder stage keeps git. Shipping the upstream Git LFS binary also exposed its Go module manifest to dependency scanners, which is what nvbug 6782864 reports against `golang.org/x/crypto v0.54.0`. Removing the pair resolves that by elimination rather than by waiting on an upstream release. The dangerous state is half the pair: `git-lfs install --system` sets `filter.lfs.required=true`, so a git without the filter binary fails every call on an LFS tree. The contract tests now assert both are absent from the runtime stages and that the builder stage keeps git.
Collaborator
Author
|
run-ci |
The base image is single stage, so ``uv sync`` resolves the ``git+https://`` requirements in the image itself and needs a git executable; removing it failed the build with "Git executable not found". Reinstate git in the apt set and purge it with the last sync that needs it, so the shipped filesystem still carries neither git nor Git LFS. Purging takes only git's own dependencies with it -- git-man, libcurl3t64-gnutls and liberror-perl -- because autoremove skips anything another package still requires.
Collaborator
Author
|
run-ci |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Isaac Lab's containers stop shipping
gitand Git LFS — nothing in either runtime image used them,and their removal clears the three
golang.org/x/cryptoscanner findings in nvbug 6782864 outrightinstead of waiting on an upstream Git LFS release.
Description
docker/scripts/install_git_lfs.sh(added in #7811) installed the upstream Git LFS 3.8.0 binary inboth images. That binary embeds a full Go module manifest, so dependency scanners read
golang.org/x/crypto v0.54.0out of it and raised GO-2026-6303 / 6354 / 6355. No upstream Git LFSrelease carries the fixed
x/crypto v0.56.0yet, so the finding could not be remediated in place.Neither image needs the pair:
lfs: truecheckout on the runner and bind-mounts the resulting tree in;no step then runs
gitinside the container.git+https://dependencies (rl-games,robomimic) resolve in the kit-less builderstage, which keeps
git. Only the runtime stage loses it.setuptools_scm— andtools/conftest.pymakes no git calls.Removing only one of the pair is the state that breaks:
git-lfs install --systemsetsfilter.lfs.required=true, so agitwithout the filter binary fails every call on an LFS tree.That is the failure the old
Dockerfile.kitlesscomment recorded; the comment now records thehazard instead of the workaround.
Breaking change
Anything that shells out to
gitfrom inside a container now fails, includingisaaclab.utils.assets.retrieve_git_asset_pathfor remote git asset sources and the benchmarkversion recorder. Install
gitin a derived image, or resolve those paths on the host and mount theresult. Captured in the changelog fragment.
Validation
Built
Dockerfile.kitlesslocally from this branch and checked the image, not the exit code:git/git-lfsonPATHfilter.lfs.*system configrl_gamesin the venv (builder resolved itsgit+URL)import isaaclab, isaaclab_tasks+ gym registryIsaac-taskspytest source/isaaclab/test/utils --collect-onlyThe 3 errors are all
ImportError: AppLauncher requires the full Isaac Sim runtime— pre-existingfor a kit-less image, unrelated to this change.
Dockerfile.basewas not built locally; CI is its first build.test_runtime_images_ship_neither_git_nor_git_lfsfails against the unmodified Dockerfiles andpasses with them, and
test_kitless_builder_keeps_git_for_vcs_dependenciesguards the builder stageso a later cleanup cannot silently break dependency resolution.
Type of change
Release backport
developChecklist
pre-commitchecks with./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched packageCONTRIBUTORS.mdor my name already exists there