En el desarrollo de software , una compilación neutral es una compilación de software que refleja el estado actual del código fuente ingresado en el sistema de control de versiones del código fuente por los desarrolladores y se realiza en un entorno neutral (un entorno que no se utiliza para el desarrollo).
Una compilación nocturna es una compilación neutral que se lleva a cabo de forma automática. Por lo general, se lleva a cabo cuando es probable que no haya nadie 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 y, por lo general, dan prioridad a garantizar que los cambios recientes en el código fuente no hayan afectado 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 dañado debido a actualizaciones del sistema y, por lo tanto, a menudo se ejecutan independientemente de si se ha modificado o no el código fuente.
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 proporcionan una respuesta más inmediata; sin embargo, no necesariamente incluyen compilaciones nocturnas. Como resultado, las actualizaciones del compilador y de la herramienta pueden interrumpir la capacidad de compilar proyectos más 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", en realidad está diciendo que un desarrollador registró código que muy bien podría haberse compilado (y con suerte también se ejecutaría correctamente) en su cuenta, pero no se compila (y, por lo tanto, no se puede ejecutar) en la cuenta de nadie más. Esto generalmente 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 olvidarse de agregar los archivos recién creados al repositorio. Si los otros desarrolladores revisan el nuevo código sin estar al tanto 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 intentan 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 con cargas elevadas y plazos cortos (consulte programación extrema , inicio ). No tenerlas significa que cualquier compilación que deba crearse para el departamento de control de calidad del software utilizará código que puede estar en medio de modificaciones importantes y que, por lo tanto, es mejor dejar fuera de una compilación destinada a una validación independiente, en particular una compilación que se está evaluando para un posible lanzamiento.
Peligros
Algunos obstáculos para un proceso de construcción neutral confiable son:
- Obtener un sistema de automatización de compilación consistente y un conjunto de archivos de control de proyecto.
- Tener el mismo sistema operativo y herramientas configuradas que las máquinas de desarrollo.
- Establezca un procedimiento de verificación 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.
- Desacoplar el proceso de compilación de IDE específicos .
- Configurar la retroalimentación adecuada del sistema de compilación para que se puedan diagnosticar las compilaciones fallidas.
- Convencer a la gerencia de los beneficios de las compilaciones automatizadas.
Ejemplos de código abierto
La siguiente lista proporciona algunos ejemplos de software que tiene compilaciones nocturnas y/o neutrales disponibles públicamente.
- 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]
- VLC media player , un reproductor multimedia de código abierto [9]
- WebKit , el renderizador del navegador web utilizado por Safari de Apple [10]
Véase 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 .
- ^ "Obtener.cm".
- ^ "Descarga y prueba futuras versiones de Firefox para escritorio, Android e iOS".
- ^ "Inicio · MPC-HC".
- ^ "Hacia el atardecer: Bintray, JCenter, GoCenter y ChartCenter". 3 de febrero de 2021.
- ^ "RetroArch". www.retroarch.com . Consultado el 26 de enero de 2021 .
- ^ Comunidad, An_dz y Simutrans. "Simutrans Nightly".
- ^ "Compilaciones nocturnas del reproductor multimedia VLC". Organización VideoLAN . Consultado el 21 de febrero de 2014 .
- ^ "Descargas de WebKit".