Continuous integration

[3] The earliest known work (1989) on continuous integration was the Infuse environment developed by G. E. Kaiser, D. E. Perry, and W. M.

[4] In 1994, Grady Booch used the phrase continuous integration in Object-Oriented Analysis and Design with Applications (2nd edition)[5] to explain how, when developing using micro processes, "internal releases represent a sort of continuous integration of the system, and exist to force closure of the micro process".

In 1997, Kent Beck and Ron Jeffries invented extreme programming (XP) while on the Chrysler Comprehensive Compensation System project, including continuous integration.

[1][self-published source] Beck published about continuous integration in 1998, emphasising the importance of face-to-face communication over technological support.

In 2010, Timothy Fitz published an article detailing how IMVU's engineering team had built and been using the first practical CD system.

While his post was originally met with skepticism, it quickly caught on and found widespread adoption[9] as part of the lean software development methodology, also based on IMVU.

Typically, a server builds from the integration area frequently; i.e. after each commit or periodically like once a day.

Proponents of CI recommend storing all files and information needed for building in version control, (for git a repository); that the system should be buildable from a fresh checkout and not require additional dependencies.

In many cases, the build script not only compiles binaries but also generates documentation, website pages, statistics and distribution media (such as Debian DEB, Red Hat RPM or Windows MSI files).

Checking in a week's worth of work risks conflict both in likelihood of occurrence and complexity to resolve.

[citation needed] The system should build commits to the current working version to verify that they integrate correctly.

Making builds readily available to stakeholders and testers can reduce the amount of rework necessary when rebuilding a feature that doesn't meet requirements.

Sketch of flow diagram for continuous integration