SCMWise.com

Software Baseline


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.

The version number is used in the creation of the Label or Tag, depending on the SCM Tools your organization uses, which is applied in source control and used to identify the specific build.

A commonly used Version Number Format: Major.Minor.Maintenance.SourceCodeVersion

  • Major Release Number
  • Minor Release Number
  • Bug or Maintenance Release Number
  • SCM Tool Revision Number or Software Build Number


Major Release

Major Releases numbers are incremented for major enhancements and improvements such as the addition of new features.


Minor Release

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.


Software Builds

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.

Major.Minor.Bug.Build Number

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

  • Use Meaningful Branch Names
  • Prefer Branching over Code Freezing
  • KISS (Keep it Simple Stupid)
  • Isolate Change
  • Isolate Work, not People
  • Code Branching


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!

Or

Read what other think of their Software Configuration Management Tools.

SCM Tool Reviews



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.






SCMWise Preferred Partner

SBI! 2.0


SCMWise Configuration Spec



SCMWise Recommends

Site Build It!


XML RSS
What is this?
Add to My Yahoo!
Add to My MSN
Add to Google


© Copyright 2007 - 2013
Powered by Site Build It!
Page copy protected against web site content infringement by Copyscape SCMWise.com's Privacy Policy
ADD TO YOUR SOCIAL BOOKMARKS: add to BlinkBlink add to Del.icio.usDel.icio.us add to DiggDigg
add to FurlFurl add to GoogleGoogle add to SimpySimpy add to SpurlSpurl Bookmark at TechnoratiTechnorati add to YahooY! MyWeb