Allow reusing Xcode.app's per-workspace DerivedData (avoid duplicate builds); static XCODEBUILDMCP_DERIVED_DATA_PATH can't map per workspace
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- build-system, tooling
Direzione di ricerca
Inizia da resolveEffectiveDerivedDataPath e verifica l’isolamento per workspace introdotto da #340. Esamina il modo in cui le cartelle DerivedData di Xcode.app espongono WorkspacePath in info.plist, quindi definisci come devono funzionare i percorsi di corrispondenza e di fallback. Il lavoro è completato quando ogni workspace può riutilizzare il proprio DerivedData della GUI senza collisioni, mentre i workspace privi di una cartella esistente mantengono un isolamento deterministico.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version: 2.7.0
Problem
For derived data the MCP currently offers two modes, neither of which lets agent builds share Xcode.app's DerivedData per workspace:
- Default: per-workspace isolation (#340), but under the MCP's own tree (
~/Library/Developer/XcodeBuildMCP/workspaces/<workspace>/DerivedData). This is separate from Xcode.app's~/Library/Developer/Xcode/DerivedData/<Workspace>-<hash>, so a project built both in the GUI and via the MCP is built and stored twice — double the disk and no incremental reuse across the two. XCODEBUILDMCP_DERIVED_DATA_PATH: a single static path applied to every call (resolveEffectiveDerivedDataPathreturns it verbatim). With multiple workspaces/worktrees, they all collide in one folder → build-product clobbering and full rebuilds.
Request
A mode to resolve derived data to the existing Xcode.app DerivedData folder for each workspace (e.g. matching WorkspacePath in each folder's info.plist), and/or per-workspace configurability instead of a single static override.
This would let a repo built in both Xcode and the MCP share one DerivedData per workspace — no duplication, true incremental reuse between interactive and agent builds.
Workaround
I currently achieve this with a client-side PreToolUse hook that rewrites each build/test call's derivedDataPath to the matching GUI folder (looked up via WorkspacePath in each folder's info.plist), falling back to a deterministic per-workspace path when no GUI folder exists yet. Happy to share it if useful.
Related
- #340 (per-workspace DerivedData isolation) — implemented isolation, but into the MCP's own tree rather than Xcode.app's.
- #283 (tilde expansion in config'd derived data path).
- Lingua principale
- TypeScript
- Stelle
- 6.4k
- Fork
- 320
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di getsentry/XcodeBuildMCP
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
getsentry/XcodeBuildMCP#520 ·
-
Warden weekly sweep Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
getsentry/XcodeBuildMCP#495 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
getsentry/XcodeBuildMCP#534 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
getsentry/XcodeBuildMCP#533 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
getsentry/XcodeBuildMCP#526 ·
Tutte le issue di getsentry/XcodeBuildMCP
Issue simili
-
S: triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
fix(errors): EHOSTUNREACH from a happy-eyeballs connect is reported as a resolver error (STAMP-80) Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
snapshot-labs/stamp#666 ·
-
fix(api): prevent leaderboard SSE heartbeat from starting after disconnect during initial load Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
GauravKarakoti/SecureFlow#1070 · 1 commento ·
-
feature:Languages/Translations good first issue ready Web
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
digitalfabrik/integreat-app#4394 ·