From 76581c06cf837234a59af48efffcce29679585da Mon Sep 17 00:00:00 2001 From: Siddhartha Srinivasa Date: Thu, 4 Jun 2026 14:19:23 -0700 Subject: [PATCH] setup.sh: populate empty gitlink placeholder dirs (fix CI) 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. --- setup.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/setup.sh b/setup.sh index 0fecc72..f32c6ae 100755 --- a/setup.sh +++ b/setup.sh @@ -36,11 +36,17 @@ cd "$(dirname "$0")" echo "==> Cloning repos..." for url in "${REPOS[@]}"; do dir=$(basename "$url") - if [ ! -d "$dir" ]; then + # Several siblings are tracked as gitlinks (submodule-style pointers) but + # there is no .gitmodules, so a fresh checkout leaves them as EMPTY + # placeholder directories. A plain `[ ! -d ]` guard would see the dir and + # skip it, leaving an empty (broken) uv workspace member. Detect a populated + # repo by its .git entry instead, and clone into the empty placeholder. + if [ -e "$dir/.git" ]; then + echo " $dir already present, skipping" + else echo " cloning $dir" + rm -rf "$dir" # drop the empty gitlink placeholder, if any git clone "$url" - else - echo " $dir already present, skipping" fi done