Open main menu

CDOT Wiki β

Changes

Overview of the Build and Release Process

146 bytes added, 10:58, 15 January 2016
Steps in the Build and Release Process
* '''Version Control''' - Most B&R processes take input from a version control system (VCS), which is used to track the software as it is developed. Common version control systems include the Concurrent Version System (CVS), Subversion (SVN), Mercurial (hg), Git, and Bazaar (bz). At this step in the build process, the code is ''checked out'' from the VCS.
* '''Dependency Resolution''' - The required build dependencies, both in terms of tools and libraries, are determined and satisfied.
* '''Compilation''' - The source files are compiled into binary files. This applies to software, which is compiled from source code written in a language such as C into machine code, but also applies to other resources such as fonts, graphics, game levels, documentation, and so forth, which are similarly converted from a source input format to a machine-readable output format, ready for use.
* '''Testing''' (or QA) - The software is tested, often using a combination of automated test suites and manual tests. Testing may be performed at multiple points in the process.
* '''Composing'''- Multiple packages and related collateral are combined into a format ready for distribution -- for example, an ISO disk image, or a software repository.
* '''Signing''' - A [[Public Key Cryptography]] signature is added to the software (or package) to prove the authenticity and origin of the software.
* '''Release''' - The software is officially released. Depending on how the software is distributed, this may mean sending a "Gold Disk" or "Release To Manufacturing" (RTM" ) master media copy (USB or CD/DVD disc image) to a media duplication facility, or posting the software on a master site for download by users (or by mirror sites). Note that thousands of Build and Release build cycles may be processed during software development and testing before the product is considered suitable for release.
* '''Distribution''' - Physically shipping the software media, if in physical form; or making it available for download; or pushing it to automated update systems.
* '''Mirroring''' - Copying the software to multiple servers so that a high volume of downloads can be accommodated at one time. Typically, mirrors will be located placed in different locations (, where the "locations" are defined more by network topology than physical geography).
= Qualities of the Build and Release Process =