Daily Build
   HOME

TheInfoList



OR:

A daily build or nightly build is the practice of completing a
software build In software development, a build is the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so. Functions Building software is an end-to-end process that involves ma ...
of the latest version of a program, on a daily basis. This is so it can first be
compiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
to ensure that all required dependencies are present, and possibly tested to show no bugs have been introduced. The daily build is also often publicly available allowing access to the latest features for feedback. In this context, a ''build'' is the result of
compiling In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
and linking all the files that make up a
program Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Progra ...
. The use of such disciplined procedures as daily builds is particularly necessary in large organizations where many programmers are working on a single piece of software. Performing daily builds helps ensure that developers can work knowing with reasonable certainty that any new bugs that show up are a result of their own work done within the last day. Daily builds typically include a set of tests, sometimes called a " smoke test." These tests are included to assist in determining what may have been broken by the changes included in the latest build. The critical piece of this process is to include new and revised tests as the project progresses.


Continuous integration builds

Although daily builds were considered a best practice of software development in the 1990s, they have now been superseded. Continuous integration is now run on an almost continual basis, with a typical cycle time of around 20-30 minutes since the last change to the source code. Continuous integration servers continually monitor the
source code control system Source Code Control System (SCCS) is a version control system designed to track changes in source code and other text files during the development of a piece of software. This allows the user to retrieve any of the previous versions of the origina ...
. When these servers detect new changes, they use a build tool to rebuild the software. Good practice today is also to use continuous integration as part of
continuous testing Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate.
, so that
unit test In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&mda ...
s are re-run for each build, and more extensive functional testing (which takes longer to perform than the build) performed as frequently as its duration permits.


See also

*
Neutral build In software development, a neutral build is a software build that reflects the current state of the source code checked into the source code version control system by the developers, and done in a neutral environment (an environment not used for d ...
* Smoke testing in software development


External links


IEEE Best software practices at Steve-McConnellDaily builds of ubuntu, updated almost everyday
a good example of what a daily build is Software testing Extreme programming Computer programming {{soft-eng-stub