setup.sh: populate empty gitlink placeholder dirs (fix CI, #74)#78
Merged
Conversation
Several siblings are tracked as gitlinks without a .gitmodules, so a fresh checkout (actions/checkout submodules:false) leaves them as empty placeholder directories. The previous `[ ! -d ]` guard saw the dir and skipped cloning, leaving empty uv workspace members -> 'mj-viser is not a workspace member' and `uv sync` failing while building geodude. Detect a populated repo via its .git entry and clone into the empty placeholder instead. Fixes #74.
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.
Root cause (confirmed via CI probe)
Several siblings are tracked as gitlinks (submodule-style pointers) but the repo has no
.gitmodules. So on a fresh CI checkout (actions/checkoutwithsubmodules: false),mj_viser,ada_assets,ada_mj,mj_manipulator_ros, … are left as empty placeholder directories.setup.sh's[ ! -d "$dir" ]guard then saw the dir exists and printed "already present, skipping" — never cloning them. Empty dirs = broken uv workspace members →uv syncfailed building geodude with "mj-viser is not a workspace member."The uv
[tool.uv.sources]were a red herring (they resolve fine once the member dirs are populated — verified locally).Fix
Detect a populated repo by its
.gitentry rather than mere directory existence, and clone into the empty placeholder. One-line logic change.Fixes #74. Verified on this PR's CI: if
uv syncgets past the empty-member errors, the fix holds.