Jump to: navigation, search

StableBranchRelease

Revision as of 20:56, 13 October 2012 by Markmc (talk) (typos)

Stable Branch Releases

The openstack-stable-maint team rigorously applies the documented StableBranch principles and works hard to include appropriate bugfixes from master on the stable branch while limiting the risk of regressions. The intention is for releases published from the stable branch to be a safe source of fixes for high-impact user-visible issues.

The ReleaseTeam is responsible for all OpenStack release deliveries and markmc coordinates releases from the stable branch.

You can see a history of these releases on the Releases page.

How To Release

Below is the checklist of steps required to carry out this release, heavily based on ReleaseTeam/HowToRelease.

  1. Versioning: push a change to stable/essex to to {NOVA,GLANCE}_VERSION e.g.
GLANCE_VERSION = ['2012', '1', '2']
Also, make FINAL = False for now. Keystone doesn't have this field, though.
  1. Make sure the tarballs job in Jenkins is building stable/essex tarballs e.g. glance-2012.1.1~20120615.1435.tar.gz.
  2. Add all bugs fixed on stable/essex to the Essex series in launchpad and assign to the created 2012.1.2 target.
# Gather a list of bugs fixed on stable/essex since 2012.2
$> git log  2011.1..origin/stable/essex | grep '[0-9][0-9][0-9][0-9][0-9][0-9]' | grep -v '^\(commit \|Merge\)' | grep -v -i '\(cherry[ -]picked\|Change-Id\|bugzilla\)' | sed 's/.*\([0-9][0-9][0-9][0-9][0-9][0-9]\).*/\1/g' | sort | uniq > nova-bugs.txt
# Sanity check that list of bugs
$> python showbugs.py $(cat nova-bugs.txt)
# Nominate those bugs for essex
$> python nominate.py nova essex $(cat nova-bugs.txt)
# Target those bugs for 2012.1.2
$> python target.py nova essex 2012.1.2 $(cat nova-bugs.txt)

The stable team is the release manager for the essex series (with the release team added to the stable team, to assist) and the release manager accepts bugs nominated for the essex series. Bugs are marked as FixCommitted in essex when they are accepted onto stable/essex.

  1. Call for testing
  2. When the stable team feel feel the release is ready, the release team obtains PTL approval and informs the PPB.
  3. Push a commit to stable/diablo which does:
FINAL = True
and once the tarball has been generated, push:
GLANCE_VERSION = ['2012', '1', '3']
FINAL = False
  1. Tag the release:
$> git tag -s 2012.1.2
$> git push gerrit tag 2012.1.2
  1. Mark all Essex FixCommitted bugs as FixReleased. With a small change:
+series = proj.getSeries(name='essex')
+bugtasks = series.searchTasks(status='Fix Committed', omit_targeted=False)
we can use process-fixcommitted-bugs.py:
$> python ./process-fixcommitted-bugs.py keystone --onlymilestone 2012.1.2 --fixrelease
  1. Upload the release:
$> ./upload_release.py glance 2012.1.2 20120810.1435
  1. PPA updates. (Delegate to openstack-ppa team?)
  2. Send release announcement.