Was bedeutet "Nightly Builds"?

53

Ich benutze seit einiger Zeit Open-Source-Projekte und habe mich mit den Open-Source-Anwendungen befasst. Ab und zu stoße ich auf die Worte "Nightly Build" und war immer gespannt, was das eigentlich bedeutet. Bedeutet das wörtlich, dass die Projekte ausschließlich als Nebenprojekte durchgeführt werden (normalerweise nachts, nachdem alle ihre täglichen Aufgaben erledigt haben) und es keinen echten Mitarbeiter / ein engagiertes Entwicklungsteam gibt, oder ist es komplexer?

Dbramhall
quelle
10
Google ist dir durchgefallen? joelonsoftware.com/articles/fog0000000023.html stand ganz oben auf der Liste. Bitte aktualisiere deine Frage, um bestimmte Dinge zu identifizieren, die in diesem Blog-Beitrag fehlen.
S.Lott
2
@ S.Lott der Link, den Sie bereitstellen, ist ziemlich lang, es ist gut, eine kürzere Version oder einfachere Antwort hier im Stapel-Überlauf zu haben. Für diejenigen, die mehr über das Thema erfahren möchten, können Sie den von Ihnen bereitgestellten Link aufrufen.
Andrew Lam Yat Weng

Antworten:

68

Nein, es bedeutet, dass jede Nacht alles, was in die Quellcodeverwaltung eingecheckt wurde, erstellt wird. Dieser Build ist ein "nächtlicher Build".

CaffGeek
quelle
13
In der Regel wird auf einem Computer ein Skript ausgeführt, das automatisch alle Änderungen aus dem Versionskontrollsystem abruft, den gesamten Code kompiliert (erstellt) und dann an einer Stelle zum Herunterladen oder (falls es sich um eine Website oder einen Dienst handelt) zum Veröffentlichen auf einem Testsystem bereitstellt und starten Sie es. Ein anderer Name, unter dem dies fällt, ist Continuous Integration System, obwohl dies bedeuten kann, dass ein Build ausgeführt wird, sobald ein Commit für das VCS ausgeführt wird.
CodexArcanum
3
Es sollte auch die Version erhöhen und alles mit der richtigen Versionsnummer versehen. Nichts ist frustrierender als der Umgang mit zufälligen Builds von Programmierern, die aus veraltetem Code und falschen Versionsnummern bestehen. Ein nächtlicher Build gibt jedem einen Build und eine Versionsnummer, der er vertrauen kann.
JQA
36

Im Allgemeinen handelt es sich um eine automatisierte Erstellung , die für die meisten Entwickler einmal täglich, in der Regel nach dem Ende des Tages, durchgeführt wird. Für Projekte mit Entwicklern in mehreren Zeitzonen ist dies im Allgemeinen eine Kompromisszeit. Die Idee ist, dass jeder, der "heute" Code eincheckt, dies getan hat und der automatisierte Build sicherstellt, dass alles kompiliert wird, und hoffentlich die Komponententests und alle anderen vorhandenen automatisierten Tests usw. ausführt und dann ein endgültiges Installationsprogramm erstellt / ausführbares etc.


quelle
13

Dies ist ein Build, der am Ende eines jeden Entwicklungstages ausgeführt wird. Wenn Sie einen Continuous Integration Server verwenden, wird dieser in der Regel so konfiguriert, dass bei jedem Einchecken der Code erstellt und die Komponententests ausgeführt werden. Am Ende eines jeden Tages möchten Sie möglicherweise umfangreichere Tests, Regressionstests und Integrationstests ausführen, z. die zu lange dauern, um bei jedem Check-in ausgeführt zu werden, und diese würden nach dem nächtlichen Build ausgelöst. Wenn Sie über eine vollständige Pipeline für die kontinuierliche Bereitstellung verfügen , kann die nächtliche Erstellung auch verwendet werden, um den erstellten Code für Benutzertests in Umgebungen bereitzustellen.

John Channing
quelle
7

Der Begriff wird häufig für große Projekte verwendet, bei denen eine vollständige Neuerstellung des fertigen Produkts aus der Quelle zu lange dauert, als dass der einzelne Entwickler dies im Rahmen seines normalen Entwicklungszyklus tun könnte.

Stattdessen wird nachts automatisch eine vollständige Neuerstellung durchgeführt, sodass der Erstellungscomputer 8 bis 10 bis 12 Stunden Zeit hat, die Erstellung durchzuführen, und sie für die Entwickler bereit hält, die am nächsten Morgen kommen, damit sie weiter an ihrem individuellen winzigen Teil arbeiten können der neuen Version.

Heutzutage ist es häufig so, dass das Projekt viele Tests umfasst, die die korrekte Funktionsweise des Codes sicherstellen sowie Dokumentation aus der Quelle (wie z. B. Javadoc) generieren und veröffentlichen.


quelle
0

Nächtliche Builds sind eine gute Sache. Sie liefern Entwicklern sofort eine Rückmeldung, wenn sie den Build abgebrochen haben. Ein nächtlicher Build bedeutet, dass die Software stabil ist und wahrscheinlich für neue Benutzer erstellt wird. Software, die nicht regelmäßig erstellt wird, ist schwierig zu veröffentlichen.

Zitiert von: https://chess.eecs.berkeley.edu/softdevel/nightly.htm

khaja
quelle
4
Dies liest sich eher wie ein Kommentar, siehe Wie man antwortet
Mücke
Erinnert mich an meine Prüfungstage, so haben wir die Beantwortung der Fragen begonnen. 😂😜
ssi-anik
Dies erklärt, wofür ein nächtlicher Build ist, aber es erklärt nicht, was ein nächtlicher Build ist .
Bryan Oakley