Publicar una generación completa¶
El lector nunca debe ver un sitio actualizado a medias. Es una propiedad de publicación, distinta del análisis y la renderización.
El invariante¶
Sea \(P\) el árbol publicado. Durante la preparación no cambia. El siguiente árbol \(Q\) está completo antes de decidir la confirmación. El diario identifica la salida y sus registros asociados.
La preparación puede fallar. Se abandona la generación incompleta. Una confirmación decidida puede interrumpirse. La siguiente construcción la completa o restaura a partir del diario, sin deducirlo del nombre del directorio temporal.
Por qué la caché está fuera de la salida¶
El intercambio de directorios mueve todo su contenido. Un diario interno se movería durante la operación que describe, perdiendo su ubicación estable cuando más se necesita. Guidedog guarda los registros fuera del árbol publicado. Por eso una salida personalizada usa una caché vecina.
Persistencia y visibilidad¶
Persistir el contenido de archivos no equivale a persistir los nombres de directorio. El algoritmo trata ambos antes de retirar el diario. Las plataformas intercambian directorios de forma distinta; el protocolo de recuperación lo contempla. Véanse lib/project/commit.odin y lib/project/publish.odin.
Esto protege la publicación del proyecto. No es una transacción distribuida con un proveedor externo. Copiar una construcción correcta al servidor es otra operación, responsabilidad de la herramienta de despliegue.