En el desarrollo de software , una compilación neutral es una compilación de software que refleja el estado actual del código fuente registrado en el sistema de control de versiones del código fuente por los desarrolladores y realizado en un entorno neutral (un entorno no utilizado para el desarrollo).
Una construcción nocturna es una construcción neutral que se lleva a cabo automáticamente. Estos suelen tener lugar cuando es probable que nadie esté trabajando en la oficina para que no haya cambios en el código fuente durante la compilación. Los resultados de la compilación son inspeccionados por los programadores que llegan, quienes generalmente dan prioridad a asegurarse de que los cambios recientes en el código fuente no hayan interrumpido el proceso de compilación o la funcionalidad del software. Las compilaciones nocturnas también garantizan que las herramientas de compilación no se hayan roto debido a las actualizaciones del sistema y, por lo tanto, a menudo se ejecutan tanto si el código fuente ha cambiado como si no.
Por el contrario, los entornos de integración continua reconstruyen automáticamente el proyecto cada vez que se registran los cambios, a menudo varias veces al día, y brindan comentarios más inmediatos; sin embargo, no incluyen necesariamente las compilaciones nocturnas. Como resultado, las actualizaciones del compilador y de las herramientas pueden interrumpir la capacidad de compilar proyectos antiguos fácilmente sin previo aviso. No obstante, las técnicas de CI se consideran el enfoque más moderno. Los trabajos de CI a menudo se ejecutan en máquinas virtuales aisladas y, por lo general, también incluyen pruebas automatizadas.
Cuando alguien dice que un desarrollador "rompió la compilación", efectivamente está diciendo que un desarrollador verificó el código que muy bien podría haber compilado (y con suerte también se ejecutó correctamente) en su cuenta, pero no compila (y por lo tanto, no se puede ejecutar) en la cuenta de otra persona. Por lo general, esto se debe a cambios adicionales específicos del desarrollador que no se registraron o (en el caso de variables de entorno , etc.) fueron modificaciones a sistemas que no estaban bajo control de revisión . Uno de los casos más comunes es recordar registrar todos los archivos modificados , pero olvidar agregar los archivos recién creados al repositorio. Si los otros desarrolladores revisan el nuevo código sin ser conscientes del problema, su trabajo puede detenerse mientras esperan que se solucione el problema (o intentan solucionarlo ellos mismos, lo que puede ser aún más problemático si varios desarrolladores intente solucionar el problema al mismo tiempo). Naturalmente, esto puede resultar en una pérdida significativa de productividad.
Las compilaciones neutrales son importantes para los procesos de desarrollo de software que se ejecutan a altas cargas con horarios cortos (ver programación extrema , inicio ). No tenerlos significa que cualquier compilación que deba crearse para el departamento de garantía de calidad del software utilizará código que puede estar en medio de modificaciones importantes y que, por lo tanto, es mejor dejarlo fuera de una compilación destinada a una validación independiente, particularmente una compilación que se evaluado para una posible liberación.
Peligros
Algunos obstáculos para un proceso de construcción neutral confiable son:
- Obtener un sistema de automatización de compilación coherente y un conjunto de archivos de control de proyectos.
- Tener el mismo sistema operativo y la misma configuración de herramientas que las máquinas de desarrollo.
- Configure un procedimiento de pago que garantice que todos los archivos estén actualizados. Esto puede implicar la tarea adicional de integrar un sistema de control de versiones con el proceso.
- Desacoplamiento del proceso de construcción de IDE específicos .
- Configurar la retroalimentación adecuada del sistema de compilación para que se puedan diagnosticar las compilaciones fallidas.
- Gestión convincente de las ventajas de las compilaciones automatizadas.
Ejemplos de código abierto
La siguiente lista ofrece algunos ejemplos de software que tiene compilaciones neutrales o nocturnas a disposición del público.
- Arduino , una familia de microcontroladores de placa única [1]
- Atom , un editor de texto utilizado principalmente para programación informática [2]
- CyanogenMod , una ROM personalizada para dispositivos basados en Android [3]
- Firefox , un navegador web [4]
- Media Player Classic , un reproductor multimedia [5]
- MuseScore , un programa para escribir partituras musicales [6]
- RetroArch , un emulador para consolas de videojuegos retro [7]
- Simutrans , un simulador de transporte [8]
- Reproductor multimedia VLC , un reproductor multimedia de código abierto [9]
- WebKit , el renderizador del navegador web utilizado por Safari de Apple [10]
Ver también
Referencias
- ^ "Software" . www.arduino.cc . Consultado el 26 de enero de 2021 .
- ^ "Un editor de texto hackeable para el siglo XXI" . Atom . Consultado el 26 de enero de 2021 .
- ^ http://get.cm/?type=nightly
- ^ "Descarga y prueba versiones futuras de Firefox para escritorio, Android e iOS" .
- ^ "Inicio · MPC-HC" .
- ^ https://bintray.com/musescore/nightlies-linux
- ^ "RetroArch" . www.retroarch.com . Consultado el 26 de enero de 2021 .
- ^ Comunidad, An_dz & Simutrans. "Simutrans Nightly" .
- ^ "Compilaciones nocturnas del reproductor multimedia VLC" . Organización VideoLAN . Consultado el 21 de febrero de 2014 .
- ^ "Descargas de WebKit" .