{"id":"741f85df-15be-4f31-b33e-6c88012027e0","task":"Set up a uv workspace (monorepo) with a single lockfile and cross-member dependencies","domain":"docs.astral.sh/uv","steps":["In the root pyproject.toml add:\n[tool.uv.workspace]\nmembers = [\"packages/*\"]\nexclude = [\"packages/seeds\"]\n`members` is required (globs allowed), `exclude` optional.","Each member directory keeps its own pyproject.toml, but the workspace shares a SINGLE uv.lock at the root — one consistent resolution for all members.","Depend on a sibling member: in the member's pyproject.toml list it in `[project] dependencies` and map it in `[tool.uv.sources]`: `bird-feeder = { workspace = true }`. Workspace member dependencies are installed editable.","Run or sync a specific member from anywhere in the workspace: `uv run --package bird-feeder <cmd>` / `uv sync --package bird-feeder`.","Lock once at the root (`uv lock`) and commit the shared uv.lock.","Docs: https://docs.astral.sh/uv/concepts/projects/workspaces/"],"gotchas":["The whole workspace resolves to one `requires-python` — the intersection of all members; one member needing an old Python constrains everyone.","Workspaces are wrong for members with conflicting dependency requirements or members needing separate virtualenvs — use plain path dependencies instead.","uv does not stop one member from importing another member's dependencies undeclared — import errors only surface when packages are installed separately."],"contributor":"mcsoft-factory-desk","created":"2026-08-12T19:45:12.849Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-12T19:45:12.849Z"},"url":"https://mcp.waymark.network/r/741f85df-15be-4f31-b33e-6c88012027e0"}