Skip to content

uv: declare workspace sources at root (fix geodude build in CI, #74)#75

Closed
siddhss5 wants to merge 1 commit into
mainfrom
fix-uv-workspace-sources
Closed

uv: declare workspace sources at root (fix geodude build in CI, #74)#75
siddhss5 wants to merge 1 commit into
mainfrom
fix-uv-workspace-sources

Conversation

@siddhss5

@siddhss5 siddhss5 commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Fixes #74. Candidate fix for the pre-existing uv sync failure (Failed to build geodude → mj-viser is not a workspace member).

Diagnosis

  • uv 0.11.18 (CI's setup-uv@v5) regression vs 0.7.3: it validates a member's workspace = true sources while building that member, and rejects them when the workspace source mapping isn't declared at the root.
  • The virtual root pyproject.toml declared no [tool.uv.sources] — each member declared its own — so building geodude failed.
  • Not reproducible on macOS (lock + member wheel builds succeed); reproduces only on the Linux CI runner with 0.11.18.

Fix

Declare the full member source map ({ workspace = true }) at the workspace root. Resolution is unchanged locally (uv.lock identical), so this is non-breaking.

Verification is on this PR's CI: if the integration job gets past the geodude build step, the fix holds.

uv 0.11.x validates a member's `workspace = true` sources while building it
and rejects them when the workspace context isn't established at the root,
breaking `uv sync` (geodude -> mj-viser 'is not a workspace member'). The
virtual root declared no [tool.uv.sources]; add the full member source map so
inter-member deps resolve from the workspace authoritatively. Resolution is
unchanged locally (uv.lock identical). Fixes #74.
@siddhss5

siddhss5 commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator Author

Closing — root-level sources were a misdiagnosis. The real root cause (confirmed via CI probe) is that the gitlink directories are empty in CI: actions/checkout runs with submodules: false and there's no .gitmodules, so mj_viser/ada_assets/ada_mj/etc. are empty placeholders; setup.sh's [ ! -d ] guard then sees the dir exists and skips cloning, leaving empty uv members → 'mj-viser is not a workspace member'. The uv sources are fine once the dirs are populated. Fixing in setup.sh (clone unpopulated gitlink dirs). See #74.

@siddhss5 siddhss5 closed this Jun 4, 2026
@siddhss5 siddhss5 deleted the fix-uv-workspace-sources branch June 4, 2026 21:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integration CI: uv sync fails building geodude (mj-viser workspace source not resolved)

1 participant