Lección 2.5 Comprobar cada cambio
Conservar una versión que pueda rastrearse
Relacionar el resultado construido con el código, las dependencias y la ejecución que lo produjo.
Una cocina entrega el pedido que preparó. Si lo vuelve a cocinar antes de llevarlo a la mesa, tendrá que comprobar ese segundo resultado. Con una aplicación, reconstruir después de probar introduce la misma pregunta: ¿seguimos entregando lo que revisamos?
Un artefacto es un resultado conservado de una ejecución: un paquete, un informe o archivos construidos. Su utilidad está en relacionar lo que se comprobó con lo que se entregará, sin depender de que alguien recuerde qué carpeta utilizó.
Una entrega con identidad
En nuestro caso ficticio, un paquete podría reunir la aplicación, la regla del pedido y un manifiesto. Este último es una ficha de identificación: versión, origen del código, condiciones de construcción y huellas de los archivos. Este ejemplo resume su estructura, sin representar una entrega real:
Versión: demo-1
Origen: revisión de código identificada
Intérprete: Python 3.12
Contenido: aplicación + regla del pedido
Comprobaciones: resultados asociados a esta revisión
Huella: SHA-256 del paquete conservado
«Versión final» no alcanza. Dos archivos pueden llevar el mismo nombre y contener cosas diferentes. El identificador de código ayuda a conocer el origen, pero también importan las dependencias y la configuración utilizadas al construir.
Qué demuestra una huella
SHA-256 resume un archivo en una huella que permite contrastarlo con una referencia. Una coincidencia aporta evidencia de que los bytes no cambiaron respecto a esa referencia; no prueba que el software esté libre de errores ni que su autor sea confiable. La procedencia de la referencia también importa.
Si alguien modifica el paquete después de las pruebas, necesitamos tratarlo como otro resultado. Si solo cambia una configuración del destino, el archivo puede conservar su huella y comportarse de otra manera. Identidad del paquete y condiciones de operación se revisan por separado.
Conservar requiere una decisión
En plataformas como GitHub Actions se puede conservar un artefacto durante un plazo configurado, dentro de los límites de la plataforma y del repositorio. El periodo debe permitir rastrear entregas y recuperar versiones según las necesidades del proyecto. «Se guardó» no significa «estará disponible cuando lo necesitemos».
Dos cajas con la misma etiqueta
Dos paquetes dicen «demo-1», pero sus huellas son distintas. Solo uno tiene pruebas asociadas. ¿Cuál puede avanzar y qué evidencia falta para el otro?
El nombre no decide
Puede evaluarse el paquete que está relacionado con las comprobaciones y el origen revisados. El otro necesita identificar su contenido y volver a comprobarlo. Elegir el archivo más reciente no sustituye esa relación.