catálogo objetivo P4: la cola de la granja pasa a ser derivada del grafo
drenar.py parte la deuda en ONDAS topológicas (una receta sólo espera por deps que también estén en deuda; las selladas ya están en el store). Onda 1 = construible ya; dentro de cada onda, orden por `unblocks` desc. Da lo que una lista plana no da: el orden correcto, la PROFUNDIDAD real de la cadena (pasos secuenciales = el reloj de pared) y qué paraleliza sin pisarse. base 0 en deuda imagen completa cli 0 en deuda imagen completa escritorio-kde 77 en deuda 12 ondas onda 1 = 1 receta: qtbase escritorio-mirada 4 en deuda 2 ondas onda 1 = 3 HALLAZGO: el escritorio KDE está serializado detrás de UNA receta. qtbase destraba 117 nodos y es lo único de la onda 1 — hasta que no esté sellada no hay nada que paralelizar, por más workers que se enciendan. Cambia la pregunta de "¿cuántas faltan?" (77, poco informativo) a "¿cuál es el camino crítico?". Dos correcciones salidas de mirar la salida: · el grafo se elige por la `cola` declarada en targets.toml, NO por cuál tiene más nodos: incoming-kde SOMBREA recetas canónicas, así que medir escritorio-mirada contra el grafo KDE medía una imagen que nadie construye (3 en deuda en vez de 4). El mismo atajo estaba en seed-graph.py --frontera; corregido en los dos. · regla de la fuente única implementada en deps_de(): manda la receta si existe, la semilla sólo si el nodo es `wanted`, marcando procedencia en la salida. Enchufado al latido: cosecha-cron regenera docs/state/drenaje.json junto al grafo y lo commitea ⇒ cola derivada y versionada, el git diff entre ciclos muestra qué salió de la deuda. NO lanza builds: eso cuesta € y sigue siendo decisión explícita (farm-up + campana-deuda.sh). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,10 @@ echo "==> regenerando grafo de estado"
|
||||
if [ -x "$HAMMER" ]; then
|
||||
scripts/build-state.py >/dev/null 2>&1 && echo " build-state.json ✓" || echo " ⚠ build-state.py falló"
|
||||
scripts/build-state.py --kde >/dev/null 2>&1 && echo " build-state-kde.json ✓" || echo " ⚠ build-state.py --kde falló"
|
||||
# Cola DERIVADA del grafo (P4): el orden de masticado por imagen, en ondas topológicas. No lanza
|
||||
# ningún build — sólo deja escrito qué conviene moler primero, para que la cola deje de ser una
|
||||
# lista escrita a mano. Barato (lee JSON, no hashea).
|
||||
scripts/drenar.py --todos >/dev/null 2>&1 && echo " drenaje.json ✓" || echo " ⚠ drenar.py falló"
|
||||
else
|
||||
echo " ⚠ sin binario hammer en $HAMMER — no regenero estado"
|
||||
fi
|
||||
@@ -89,7 +93,7 @@ fi
|
||||
# 4. Commitear SÓLO el estado firme (el avance que el humano sigue). Recetas nuevas que YO autoré se
|
||||
# commitean aparte, a mano, para no meter autoría a medias en un commit de cron.
|
||||
if [ "${NO_COMMIT:-}" != "1" ]; then
|
||||
git add docs/state/build-state.json docs/state/build-state-kde.json 2>/dev/null || true
|
||||
git add docs/state/build-state.json docs/state/build-state-kde.json docs/state/drenaje.json 2>/dev/null || true
|
||||
if ! git diff --cached --quiet 2>/dev/null; then
|
||||
git commit -q -m "estado: cosecha granja $(ts) — avance del árbol KDE" 2>/dev/null \
|
||||
&& { git push -q origin main 2>/dev/null && echo "==> estado commiteado+pusheado" \
|
||||
|
||||
Reference in New Issue
Block a user