¿Qué significa 'Nightly Builds'?

53

He estado usando proyectos de código abierto durante un tiempo y he estado desarrollando sobre las aplicaciones de código abierto y de vez en cuando me encuentro con las palabras 'Nightly Build' y siempre he tenido curiosidad sobre lo que realmente significa. ¿Significa literalmente que los proyectos se realizan puramente como proyectos paralelos (generalmente por la noche después de que todos hayan terminado sus trabajos diarios) y que no haya un verdadero colaborador / equipo de desarrollo dedicado o es más complejo que eso?

dbramhall
fuente
10
Google te falló? joelonsoftware.com/articles/fog0000000023.html estaba bastante alto en la lista. Por favor, actualice su pregunta para identificar cosas específicas que faltan en este blog.
S.Lott
2
@ S.Lott el enlace que proporciona es bastante largo, es bueno tener una versión más corta o una respuesta más sencilla aquí en stack-overflow. Para aquellos que quisieran saber más sobre el tema pueden ir al enlace que les han proporcionado.
Andrew Lam Yat Weng

Respuestas:

68

No, significa que todas las noches, todo lo que se ha verificado en el control de origen está construido. Esa construcción es una "construcción nocturna".

CaffGeek
fuente
13
Por lo general, hay una máquina que ejecuta un script que extraerá automáticamente todos los cambios del sistema de control de versiones, compilará (compilará) todo el código y luego lo publicará en algún lugar para descargarlo o (si es un sitio web o servicio) publicarlo en un sistema de prueba y empezar a correr Otro nombre al que pertenece es Sistema de integración continua, aunque eso puede implicar que se realiza una compilación en el momento en que se realiza cualquier compromiso con el VCS.
CodexArcanum
3
También debe incrementar la versión y sellar todo con el número de versión correcto. Nada es más frustrante que lidiar con compilaciones aleatorias de programadores que se construyen a partir de código obsoleto y números de versión incorrectos. Una compilación nocturna proporciona a todos una compilación y un número de versión en el que pueden confiar.
jqa
36

En general, significa una compilación automatizada que se realiza una vez al día, generalmente después del final del día para la mayoría de los desarrolladores. Para proyectos con desarrolladores en varias zonas horarias, generalmente es un tiempo de compromiso. La idea es que todos los que van a verificar el código "hoy" lo hayan hecho, y la compilación automatizada se asegurará de que todo se compila, y con suerte ejecutará las pruebas unitarias y cualquier otra prueba automatizada, etc. que exista, y luego producirá un instalador final / ejecutable etc.


fuente
13

Significa una compilación que se realiza al final de cada día de desarrollo. Si usa un servidor de integración continua, generalmente se configurará para construir el código y ejecutar las pruebas unitarias en cada registro. Al final de cada día, es posible que desee ejecutar pruebas más extensas, pruebas de regresión y pruebas de integración, por ejemplo, que tardan demasiado en ejecutarse en cada registro y se activarán después de la compilación nocturna. Si tiene una tubería de entrega continua completa , la compilación nocturna también se puede usar para implementar el código construido en entornos para pruebas de usuario.

John Channing
fuente
7

El término se usa con frecuencia para proyectos grandes donde una reconstrucción completa del producto terminado desde el origen lleva demasiado tiempo para que el desarrollador individual lo haga como parte de su ciclo de desarrollo normal.

En cambio, una reconstrucción completa se realiza automáticamente durante la noche, por lo que la computadora de compilación tiene 8-10-12 horas para hacer la compilación y tenerla lista para que los desarrolladores vengan a la mañana siguiente, para que puedan continuar trabajando en su pequeño bit individual en la parte superior de la nueva versión.

En estos días, es frecuente que el proyecto incluya muchas pruebas que garanticen el correcto funcionamiento del código, así como generar y publicar documentación desde la fuente (como javadoc).


fuente
0

Las compilaciones nocturnas son algo bueno, proporcionan información inmediata a los desarrolladores si rompen la compilación. Tener una compilación nocturna significa que el software es estable y es probable que se cree para nuevos usuarios. El software que no se construye regularmente es difícil de lanzar.

Citado de: https://chess.eecs.berkeley.edu/softdevel/nightly.htm

khaja
fuente
44
esto se lee más como un comentario, vea Cómo responder
mosquito
me recuerda los días de mi examen, así es como solíamos comenzar a responder las preguntas. 😂😜
ssi-anik
Esto explica por qué una acumulación nocturna es de, pero no explica por qué nightly build es .
Bryan Oakley el