• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

What are Nightlies?

Many open-source projects do one build a day when they take all the code that's been checked in over the past 24 hours and attempt to build it into a single release. If a project is under active, aggressive development by lots of developers and does only a single daily build, it's common for those builds to fail unless everyone literally drops everything and bends over backwards for a day or three to MAKE it work. They're called "nightlies" because they tend to get built late at night... after everyone has finished for the day.

The main purpose of them is to keep individual authors from allowing their own sub-projects to diverge so far away from the main code base that the main code base can no longer compile and build. To give a real-world example, this actually happened to Struts in early 2001. Basically, all the lead developers had their own areas of special interest, so they made their changes and compiled them against the jarfile from the last 1.0 release of Struts. The problem was, developer A's code built and ran fine... on *HIS PC*. Ditto, for the code of developers B, C, D, and E. Unfortunately, the moment you tried combining the code from two or more of them, things rapidly went down in flames, and you could barely get *anything* to compile due to all the broken cross-dependencies.

Put another way, the general goal of daily builds is to make everyone aware whenever something causes a build to break, so the developers can fix it before the problem becomes so catastrophically bad, it becomes necessary to start pulling out a meat cleaver and just hack away new code to get the common code back into a state where it can build.
 
  • Like
Reactions: dan330 and Ngo93
Upvote 0
Well, by "break" I don't mean "brick your phone". What I mean is that you have one (or more) scripts that are used to compile all of the files that make up the project. When something can't compile, anything that depends upon something that depends upon it can't be compiled, either. THAT's what a "break" is.

In the context of an Android distro, a "daily" is basically a collection of all the changes that have been made since yesterday. The downside of a "daily rom" is that when two or more people are working independently on it, changes seem to introduce at least as many new bugs as they fix.

The truth is, most successful development projects are either a one-man effort, or are fairly large and have a very dominant, very skilled leader who's good at project management (Linux, Cyanogen, etc) and exercises more or less total control over what ultimately goes into the official build. Where all hell breaks loose is when you have two or three people with loosely-defined, overlapping roles and nobody who's really in charge, because then they end up spending literally half their time (or more) cleaning up everything they accidentally caused to break in someone else's code.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones