Jump to: navigation, search

Difference between revisions of "TripleO/ReleaseManagement"

(Projects)
(How to make a release)
Line 56: Line 56:
 
  git push gerrit $NEW_VERSION
 
  git push gerrit $NEW_VERSION
  
* Use [https://github.com/ttx/openstack-releasing/blob/master/process_bugs.py process_bugs] util to close all the bugs which are in 'Fix committed' state. Note that tripleo-heat-templates and tripleo-image-elements do not have separate projects in launchpad and fall under the tripleo project instead. The bugs that are Fix Committed in tripleo should probably be manually double checked to make sure there were part of a release.
+
* Use [https://github.com/ttx/openstack-releasing/blob/master/process_bugs.py process_bugs] util to close all the bugs which are in 'Fix committed' state. Note that tripleo-heat-templates and tripleo-image-elements do not have separate projects in launchpad and fall under the tripleo project instead.  The dib-utils project is tracked under the diskimage-builder launchpad project. The bugs that are Fix Committed in tripleo should probably be manually double checked to make sure there were part of a release.
 
  python process_bugs.py $PROJECT_NAME --fixrelease
 
  python process_bugs.py $PROJECT_NAME --fixrelease

Revision as of 19:59, 17 June 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

We create stable branches under origin/stable for some projects. When a stable branch is ready to be cut, ask an OpenStack release manager to create the branches. Once the branches are created, a release should be done from the master branch that bumps the MINOR version (.Y) from the previous tag. This allows future releases out of the stable branch to bump the PATCH version (.Z) continually as needed.

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. Replace master with the name of a stable branch if you are releasing from a branch.
git remote update
git checkout master && git pull
  • Find the version number of the last release among the other tags
git describe --abbrev=0 
LATEST_TAG=$(git describe --abbrev=0)
  • Find out what has changed since the last release
git log -u --no-merges $LATEST_TAG..HEAD
  • Create a signed tag bumping the version number according to the versioning scheme described above. Remember to consider whether you're releasing from a stable branch or not when incrementing the Y or Z version.
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. Note that tripleo-heat-templates and tripleo-image-elements do not have separate projects in launchpad and fall under the tripleo project instead. The dib-utils project is tracked under the diskimage-builder launchpad project. The bugs that are Fix Committed in tripleo should probably be manually double checked to make sure there were part of a release.
python process_bugs.py $PROJECT_NAME --fixrelease