The goal of the baseline is to uniquely identify each version of a software component or application, and to facilitate detection and correction of configuration errors.
Major Releases numbers are incremented for major enhancements and improvements such as the addition of new features.
Minor Releases numbers are incremented for minor enhancements and improvements such as improvements to existing features.
Bug or Maintenance Releases
Bug or Maintenance Releases numbers are incremented for corrections or bug fixes, not software enhancements.
SCM Tool Revision Number or Build Number
SCM Tool Revision Number are incremented for each software build and represent the SCM Tool revision number or unique identifier.
This makes a good unique identifier for a Software Baseline.
Each build should have a clear and published policy for pulling the code for the build.
The source code will be tagged or labeled with a properly constructed version Id.
The build artifacts will also be versioned with a corresponding label or tag. So, the artifacts can be easily traced to the Source Code.
This should establish a clear and concise Software Baseline.
Code Management and Branching Strategies
Major Up-coming releases will be done on the Main or Trunk Branch.
Minor or Bug Fixes will be done on branches created from the Main or Trunk branch.
Main Trunk Branching Strategies
For the Main Development Line, a codeline upon which development changes takes place.
The Trunk or Main Branch should be used to develop next major release.
Branch from Trunk to create a Maintenance Line when your application has been promoted through to the Stage environment.
Maintenance Branching Strategy
For the Maintenance Branch, the codeline is intended primarily for maintenance efforts, bug-fixes or minor enhancements.
The Maintenance Branch is derived from the label or tag generated by the build system when it created the build.
It is done this way because every build is a potential release candidate.
The potential release candidate is a build that has been promoted and tested throughout the testing and staging environments.
Use a descriptive name for your Maintenance branch to avoid confusion.
Following these strategies help maintain Software Baselines.
Branching Best Practices
Merging Best Practices
Merge Early and Often - merge changes from the Maintenance branch to the Trunk, and any other codelines, as soon as the changes have been promoted to production.
Merge Your Own Code - developers are responsible for merging their own code.
Source Code Administration
Source Code Administration is an important aspect of SCM.
For more information about Software Baselines and other Source Code Administration
Software Configuration Management Tool Reviews
Please share your Software Configuration Management Tool experiences and reviews!
Read what other think of their Software Configuration Management Tools.
Version Control Software Table of Contents
Software Version Control Software Version Control is a software system designed to track changes to individual files and directories. It's primary function is to facilitate, track and help organize changes to constantly evolving software systems.
Source Code Source Code is the intellectual property of an organization. Understanding and properly protecting this valuable asset is one of Software Configuration Management's highest priority.
Source Code Administration Source Code Administration is an important aspect of SCM. Ensuring wise and effective administration to your companies source code is vital to your organization's success.
Source Code Branching Most software projects will invariably require some efforts to be done in parallel. Large software projects require many roles to be filled, developers, architects, builders, testers and managers.
Software Baseline The goal of the baseline is to uniquely identify each version of a software component or application, and to facilitate detection and correction of configuration errors.
Source Code Evaluation In Software Configuration Management, one of the most common asked questions is what SCM source code tools should I use. The answer is, it depends on your source code evaluation criteria.
Source Control Source Control is a system or tool that versions the changes to a source code file. This is beneficial for many reasons, but the most fundamental reason is that it allows you to track changes on a per file basis. The typical tools used for versioning are called version control tools, software configuration management tools, or content management tools.
Version Control Version Control is a system or tool that captures the changes to a source code element: file, folder, image or binary. This is beneficial for many reasons, but the most fundamental reason is it allows you to track changes on a per file basis.
Version Control Software Version Control Software is an overview of the features and concepts of a few of the more commonly used Open Source SCM Tools, Subversion, Bazaar and Git.
SCMWise Home SCMWise is dedicated to Software Configuration Management. This site is a central repository for the collection of best practices, processes, methodologies and tools that surround SCM.
This is a collection of
Salary Surveys from
SCMWise Configuration Spec