dbf5b45acd
- .mcp.json - bash/functions/pipelines/full_git_push.sh - python/pyproject.toml - python/uv.lock - bash/functions/infra/jupyter_mcp_serve.md - bash/functions/infra/jupyter_mcp_serve.sh - dev/issues/0166-app-to-app-dependencies-tracking.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.3 KiB
3.3 KiB
id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
| id | title | status | type | domain | scope | priority | depends | blocks | related | created | updated | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0166 | Rastrear dependencias entre apps (app→app) para clonado/build reproducible | pendiente | enhancement |
|
registry-only | media | 2026-05-31 | 2026-05-31 |
|
0166 — Rastrear dependencias entre apps (app→app)
APP Metadata
| Campo | Valor |
|---|---|
| ID | 0166 |
| Estado | pendiente |
| Prioridad | media |
| Tipo | enhancement — metadata de apps + fn app clone / fn doctor |
Contexto
Durante la migración a Linux nativo (PC lucas-linux, 2026-05-31) al levantar los
servicios systemd hubo que clonar+compilar los apps de servicio. El build de
sqlite_api (projects/fn_monitoring/apps/sqlite_api) falló con:
handlers.go:13:2: package fn-registry/apps/data_factory/datafactory is not in std
sqlite_api importa un paquete de otro app (apps/data_factory/datafactory).
Como data_factory no estaba clonado, no compilaba. Hubo que clonarlo a mano para
desbloquear el build. No hay forma declarada de saber, antes de clonar/compilar un app,
qué otros apps necesita.
Problema
fn app clone <id>clona solo el repo pedido; no arrastra los apps de los que depende.fn sync locationslista paths por PC pero no relaciones app→app.- El grafo de dependencias entre apps es implícito (vive solo en los
importde Go), así que clonar el subset correcto en una máquina nueva es ensayo-error.
Objetivo
Hacer explícitas y consultables las dependencias app→app, para que:
- Se pueda saber qué apps dependen de qué apps (consulta / reporte).
fn app clone <id>pueda arrastrar los apps-dependencia (o al menos avisarlos).fn doctordetecte clones incompletos (app presente pero su dep ausente).
Propuesta (a concretar)
- Metadata declarada en
app.md: añadir campodepends_on_apps: [<id>...]en el frontmatter (análogo auses_functions/uses_typesde las funciones). - Detección automática (validación): un audit que parsee los
importde cada app, detecte imports de la formafn-registry/apps/<X>/...o.../projects/.../apps/<X>/...y compare condepends_on_apps(igual queaudit_uses_functionspara funciones).- Caso semilla confirmado:
sqlite_api→data_factory.
- Caso semilla confirmado:
fn app clone --with-deps <id>: resuelve el cierre transitivo dedepends_on_appsy clona todo lo necesario a las rutas depc_locations.fn doctor: marcar[incomplete-clone]si un app está clonado pero falta undepends_on_apps.
Notas
- Relacionado (mismo arrastre de migración, issues aparte si procede):
- Los
repo_urlde varios apps de servicio (registry_api,services_api) apuntan al aliasgitea.organic-machine.comque no resuelve; el host real esgitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com.fn app clonefalla por eso. - Los
go.modde los apps de servicio requierengo mod tidyantes de compilar (deps faltantes con go 1.26).
- Los
Criterio de hecho
- Campo
depends_on_appsdocumentado y poblado al menos ensqlite_api. - Audit que detecta imports app→app y reporta drift vs
depends_on_apps. fn app cloneresuelve dependencias (o las avisa).