diff --git a/docs/adr/0020-fases-de-build-sin-set-e.md b/docs/adr/0020-fases-de-build-sin-set-e.md index 83e91439..6b42b66d 100644 --- a/docs/adr/0020-fases-de-build-sin-set-e.md +++ b/docs/adr/0020-fases-de-build-sin-set-e.md @@ -60,6 +60,14 @@ finales**. - Las ~800 restantes **no están expuestas**: usan las fases que genera `resolve_phases`, que encadena con `&&` (`autoreconf -fi && ./configure …`), y `&&` sí propaga el fallo. +**Y el corpus YA resolvió esto a mano, en un tercio de los casos.** 53 de esas 142 recetas abren +alguna fase con un `set -e` propio — `wtype` es una de ellas. Eso son dos datos, no uno: + +1. **El default está mal y los autores ya lo sabían.** Nadie escribe `set -e` en 53 recetas por gusto; + se escribe después de que algo selle mal. Es la misma lección que este ADR, pagada de a una. +2. **Achica el radio de explosión.** Esas 53 ya corren bajo `set -e` y no romperían con `-ec`: la + migración no son 142 recetas, son **89** — las expuestas que todavía no se defienden solas. + ## Lo que hoy tapa el agujero, y por qué no alcanza En `zsh` el artefacto se salvó de verdad — pero no por el estado de salida, sino por **dos guardianes @@ -96,11 +104,12 @@ Lo que hay hoy es un **cribado sobre logs**, no una medición del radio de explo falta es: *¿cuántas de las 142 recetas expuestas dejan de sellar bajo `-ec`?* Y no se puede sacar leyendo: hay que reconstruirlas. - # sobre una muestra de las 142, con el lock tomado una sola vez (CLAUDE.md regla 1) + # sobre una muestra de las 89, con el lock tomado una sola vez (CLAUDE.md regla 1) flock -o work/.farm-build.lock bash -c 'for r in ; do takana --store ./store build "$r"; done' -Con `-ec` puesto y contando los que caen. Una muestra de 20 alcanza para decidir; el corpus entero es -la validación. **Hasta que ese número exista, este ADR no se adopta.** +Con `-ec` puesto y contando los que caen. La muestra sale de las **89 sin `set -e` propio**, no de las +142: las otras 53 ya corren así y no aportan información. Una muestra de 20 alcanza para decidir; el +corpus entero es la validación. **Hasta que ese número exista, este ADR no se adopta.** ## Consecuencias que se caen solas