Jump to: navigation, search

Difference between revisions of "TripleO/ReleaseManagement"

(Projects)
(Versioning scheme)
Line 19: Line 19:
 
==== Versioning scheme ====
 
==== Versioning scheme ====
  
Generally, we follow the rules of [http://semver.org/ Semantic Versioning], but as long as 1.0.0 version of a project hasn't been released, we use 0.MAJOR.MINOR versioning scheme, bumping MAJOR only when we do something incompatible with the previous release, and bumping MINOR part otherwise.
+
Generally, we follow the rules of [http://semver.org/ Semantic Versioning], but as long as 1.0.0 version of a project hasn't been released, we use 0.MINOR.PATCH versioning scheme, bumping MINOR only when we do something incompatible with the previous release, and bumping PATCH part otherwise.
 +
 
 +
===== Stable Branches =====
 +
 
 +
Use the project admin interface of Gerrit to create a new branch for a project from the latest SHA1.  A release should be done of the same SHA1 at the time the branch is created that bumps the MINOR version of the previous tag. A release should then also be done from the new branch that bumps the PATCH version of the previous tag. Future releases from the branch should only ever increment PATCH so that there is a continual upgrade path from the stable branch.
 +
 
 +
We create stable branches for:
 +
* tripleo-image-elements
 +
* tripleo-heat-templates
 +
* tuskar
 +
* tripleo-incubator (Note we do '''not''' do releases of tripleo-incubator)
  
 
==== How to make a release ====
 
==== How to make a release ====

Revision as of 13:55, 3 April 2014

Prerequisites

  1. Upload your GPG key to Launchpad
  2. Become a member of tripleo-ptl ACL group in Gerrit

Projects

Currently, we make releases of the following projects on a regular basis:

Versioning scheme

Generally, we follow the rules of Semantic Versioning, but as long as 1.0.0 version of a project hasn't been released, we use 0.MINOR.PATCH versioning scheme, bumping MINOR only when we do something incompatible with the previous release, and bumping PATCH part otherwise.

Stable Branches

Use the project admin interface of Gerrit to create a new branch for a project from the latest SHA1. A release should be done of the same SHA1 at the time the branch is created that bumps the MINOR version of the previous tag. A release should then also be done from the new branch that bumps the PATCH version of the previous tag. Future releases from the branch should only ever increment PATCH so that there is a continual upgrade path from the stable branch.

We create stable branches for:

  • tripleo-image-elements
  • tripleo-heat-templates
  • tuskar
  • tripleo-incubator (Note we do not do releases of tripleo-incubator)

How to make a release

  • Go to the project dir
  • Update your clone
git remote update
git checkout master && git pull
  • Find the version number of the last release among the other tags
git tag | sort --version-sort
  • Find out what has changed since the last release
git log -u --no-merges $LAST_VERSION..HEAD
  • Create a signed tag bumping the version number according to the versioning scheme described above
git tag -s X.Y.Z
  • Verify the tag GPG signature
git tag -v $NEW_VERSION
  • Push the created tag to Gerrit
git push gerrit $NEW_VERSION
  • Use process_bugs util to close all the bugs which are in 'Fix committed' state
python process_bugs.py $PROJECT_NAME --fixrelease