Skip to content

Fix unresolved Git LFS assets in CI wheels - #1215

Merged
jiwenc-nv merged 1 commit into
mainfrom
jiwenc-nv/ci-lfs
Oct 9, 2026
Merged

jiwenc-nv merged 1 commit into
mainfrom
jiwenc-nv/ci-lfs

Conversation

@jiwenc-nv

@jiwenc-nv jiwenc-nv commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

The 1.5.166rc1 wheel contained Git LFS pointer text instead of the controller-guide PNGs, causing Pillow to fail during SO-101 XR teleoperation.

Enable lfs: true on the Ubuntu, pip, and Windows build checkouts so packaging receives the actual assets. This change adds only three workflow lines.

Validation: full pre-commit suite passes. The local ARM64 visualization wheel was rebuilt; both PNGs decode and their sizes match RECORD.

Pending: install the corrected CI wheel on Orin and rerun the original lerobot-teleoperate command with the robot twin enabled.

Summary by CodeRabbit

  • Chores
    • Ubuntu and Windows build workflows now check out Git LFS files.

Signed-off-by: Jiwen Cai <jiwenc@nvidia.com>
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/IsaacCapture/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 2ca277a4-020b-46ac-a683-d570180a74a8
📥 Commits

Reviewing files that changed from the base of the PR and between 6a43bc6 and d80d3ea.

📒 Files selected for processing (2)
  • .github/workflows/build-ubuntu.yml
  • .github/workflows/build-windows.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

The Ubuntu build and editable-install validation checkouts now enable Git LFS. The Windows checkout also enables Git LFS and retains recursive submodule checkout.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~4 minutes

Merge Risk: ⚪ Minimal · up to d80d3

The listed build workflows now fetch Git LFS assets, and no concrete merge-blocking risk is evident.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: enabling Git LFS assets in CI wheel builds.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@ivany-nv ivany-nv 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.

Summary
Turns on LFS for the three checkouts that build wheels, so controller-guide-*.png get packaged as real images and not as 132-byte pointer files. CI is green. I pulled the arm64/py3.12 wheel from the #1216 run: both PNGs are in it, about 1.5 MB each, with a valid PNG header. Good to merge as the hotfix. The two suggestions below can be follow-ups.

Legend: 🚫 BLOCKER = merge-blocking | 💡 SUGGESTION = meaningful improvement | 🧹 NIT = precise small correction

Finding
🚫 none
💡 .github/workflows/build-ubuntu.yml:297 - Nothing checks that a built wheel contains no LFS pointers. The bad 1.5.166rc1 wheel passed every CI gate and was published. Any checkout without LFS (a new workflow, a local build without git-lfs, pip install git+…) would ship a broken wheel again without anything failing. Add a step before upload that fails if any file in install/wheels/*.whl starts with version https://git-lfs.github.com/spec/v1.
💡 .github/workflows/build-ubuntu.yml:48 (also L325, windows L40) - lfs: true downloads every LFS object in the repo, about 80 MB of docs images, GIFs and meshes. These two PNGs (3 MB) are the only LFS files that end up in a wheel. With 14 checkouts per run, that is roughly 1.1 GB of LFS bandwidth per run, and every merge to main runs CI twice because of the release/1.6.x sync. If the LFS quota runs out, every one of these checkouts fails. Either drop lfs: true and run git lfs pull --include="src/python/**", or exempt these two PNGs in .gitattributes, as is already done for webxr_client/src/icons/*.svg. The .gitattributes exemption also means no builder needs LFS for them.
🧹 none

Actionables (copy-paste-ready for implementation agents)

Validate these suggestions in context before applying them. Skip anything already addressed, incorrect, or not worth the churn.

  • .github/workflows/build-ubuntu.yml:297 - Before "Upload wheel artifacts", add a step that unzips each install/wheels/*.whl and fails if any member starts with version https://git-lfs.github.com/spec/v1.
  • .gitattributes - Add src/python/*/viz/robot/controller-guide-*.png -filter binary, re-add both PNGs as regular blobs, and remove lfs: true from the three build checkouts.

@jiwenc-nv
jiwenc-nv merged commit 3641911 into main Oct 9, 2026
53 of 55 checks passed
@jiwenc-nv
jiwenc-nv deleted the jiwenc-nv/ci-lfs branch October 9, 2026 18:36

This branch was successfully deployed

1 active deployment
dev — d80d3ea6 Deployed Oct 9, 2026 by jiwenc-nv via publish-wheel #5398
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants