SBR600 Overview of the Build and Release Process

From CDOT Wiki
Revision as of 23:11, 9 January 2011 by Chris Tyler (talk | contribs)
Jump to: navigation, search
Important.png
This is a draft only!
It is still under construction and content may change. Do not rely on this information.

Software Build and Release refers to the specialized subfield of system administration that focuses on the process of building software from source code for the purpose of testing or for releasing and distributing the software. Particular emphasis is placed on the reliable repeatability of the process (so the results can be reproduced) and automation (because the process is usually repeated thousands of times).

Steps in the Build and Release Process

The steps involved in each Build and Release (B&R) process vary according to the specific needs and circumstances of the process -- for example, the purpose of the build process, the development context (personal user, small team, large team, or open source community), the operating system, language, and library platforms used, the software packaging format, and the way in which the released software will be distributed.

  • 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.
  • 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 - 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.
  • Packaging - The files comprising the software (and related data and documentation) are combined into a form suitable for installation, typically in a single file. Common package formats include RPM, deb, and MSI.
  • Compositing - 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 [[SBR600 Publiccryptographic signature
  • Release
  • Distribution
  • Mirroring