In computer programming and computer engineering, a neutral build is an application that has been compiled from its component source code under a system that does not contain any of the tools, libraries or other development software that were used to create the program. The purpose of a neutral build is to ensure that the program can function as it is written without errors stemming from problems with the source code that can go unseen in a development environment. The term also can refer to software that has been compiled in a way so it is not reliant on any specific hardware or proprietary libraries and, thus, is considered neutral from a development perspective. Many programming projects create neutral builds — sometimes called nightly builds — of a project on a regular basis to ensure that, at any given moment, there are no major defects — such as missing files or conflicting configurations — in the current build process of the program.
One of the reasons for a neutral build has to do with how some software is developed. In general, computers used to write the application have installed large amounts of development software such as integrated development environments (IDEs), programming libraries and special hardware or other software interfaces. These development tools are sometimes integrated in a way that makes their use transparent during software development. When the software is ready to be compiled for use on a non-development system, the dependencies that the application has in regard to the development tools must be explicitly defined so the program can compile properly and run on a neutral system. This is known as a neutral build.
A neutral build frequently takes place on a neutral computer or server or in a neutral application space. This means none of the development tools is present and there is no implicit integration of anything special, such as a programming library, used during development. Building the program on a clean system means the program can be compiled consistently in its current state and that the finished executable program can be distributed and executed on non-development systems.
In addition to ensuring there are no development-level dependencies, a neutral build also ensures that all the different source code files are present and updated. This can be a problem when a team is working on a project in which some files are updated, some are left out and some are never registered as being modified within the development tracking framework. A neutral build also removes the possibility that pre-compiled source files are being reused instead of newly compiled files being used, as can occur on a development system. Creating neutral builds ultimately is more about ensuring that a program can complete the build process successfully than it is about isolating logical or functional errors.