![]() |
![]() |
|||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||
![]() |
SCM Software Promotion DocumentTable of ContentsPurposeThis document describes the promotion schema for all software development projects within the Software Configuration Management (SCM) system. The basics of software promotions are presented, along with information specific to some promotion scenarios. Exceptions are a common occurrence in software development, and this document discusses modifications to the process that are necessary to handle these situations. Finally, release identifiers, or release labels, are discussed in detail.PromotionsA software promotion is the act of moving a software development project from one stage of its life cycle to the next. This does not represent a physical move, but rather a logical determination that the software is ready for the next stage. The life cycle "stages" that a software application moves through are referred to as "promotion levels".All software applications developed under control of the SCM system adhere to a promotion scheme. For most projects, there are three levels, development, test and production. For projects that involve integration with other projects before they can be tested, there is an integration level. For SCM purposes, abbreviations exist for each promotion level as follows:
The SCM system is release-centric. This means that all the components that make up an application are handled as a unit. When it comes to promotions, therefore, it is a project release that is being promoted, not an individual file or subset of project files. Within the SCM system, labels are used to identify all the components of an application that are part of a specific release. Once created, the label identifies the release from that point forward. Refer to Release Label Format within this document for additional information. The group responsible for promoting an application differs according to the promotion level being assigned. All official releases originate in Application Development and are assigned a development promotion level. Only Application Development can promote a 'dev' release to a testing promotion level. From this level, only Systems Testing can elect to promote a release to a production promotion level. The following illustrates this progression: The Basic Promotion Scheme
While the decision to promote from one stage to the next is the responsibility of those groups indicated above, it is the SCM group that actually assigns the promotion level to a release. This is achieved through the version control system. It is important to realize the distinction between a software release that has achieved a specific promotion level and the physical installation of that release. The fact that a release has been promoted to a certain level does not mean that it has been installed into a location designed to support the requirements associated with that promotion level - only that it has been approved for installation into such an environment. The only place that a release at any promotion level is guaranteed to exist, is in the version control system itself. Where, when, how, and even if a release actually goes from the version control system to installation in a particular development, testing, or production environment is independent of the promotion itself. ExceptionsMost processes are subject to exceptions, and software promotions are no different. Situations occur in software development that the standard promotion process is not designed to handle. The process must be flexible enough to support these types of situations. Specifically,
Release Label FormatLabels are provided by the version control system, and are simply text strings that can be assigned to any revision of a file under version control. Assigning such a label to specific revisions of all the files in a particular version control project allows for easy identification of all the components that make up a specific "release" of the project. These labels, referred to as "release labels", are critical in release-centric development. Once assigned, this label will be used throughout the life cycle to refer to the exact set of file revisions that constitute that release. Any downstream systems or communications will refer to a release by its release label.Given the importance of consistent release labels, SCM Administration is the only group with sufficient privileges to assign and manipulate labels. The creation or promotion of a release is up to other groups as discussed in the Promotions section. The assignment of the label associated with these requests, however, can only be performed by an SCM Administrator. Although a single text string, the release label is comprised of several components, or fields, delimited with an underscore. Each field within the label contains meaningful information. Specifically, the format is as follows: <promotion_level_<release_number_<build_number where, <promotion_level is one of either 'dev', 'int', 'tst', or 'prd'. <release_number is the marketing release number for this version of the application. While the U S WEST Salsa project is not a commercial software product for the general market, the concept of a marketing release number still applies. <build_number is the number of builds that have been performed for the current <release_number. ExamplesThe following are all valid release labels:dev_1-0_12 [Back to Top] Copyright 2001 SCM Labs, Inc. All rights reserved. |
|||||||||||||||||||||||||