- 1 Stable Branch Releases
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 apevec and adam_g coordinate releases from the stable branch. Stable branch releases are expected roughly every 8 weeks, depending on how many fixes are queued up.
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.
Make sure the current versioning on the stable branch of each project is correct - e.g. the version in
NOVA_VERSION is the same as the version you intend to release and
FINAL = False. Note, Keystone is a little different and stores its version in
setup.py. Note2: FINAL is not used since Grizzly.
Make sure the tarballs job in Jenkins is building tarballs correctly for each project e.g. check here for Nova Grizzly that a tarball is being built from the stable branch each time a commit is pushed there.
NOTE OpenStack Networking project was renamed to Neutron but in stable/grizzly tarball filename stays quantum-2013.1*.tar.gz - take care of that during tarball upload!
Discuss your plans for the release at the weekly project meeting.
Preferably set a date for the release immediately after the previous release.
Create a launchpad milestone for each project for the version you're planning to release.
Note: only project drivers can target bugs to a series so the release manager needs to find bugs tagged with in-stable-grizzly and target them.
- Gather a list of bugs fixed since the previous release e.g.
$> git log --no-merges --topo-order 2013.1.2.. | grep -i '\(bug\|lp\)[: #]*' | sed 's/.*\(1[0-9][0-9][0-9][0-9][0-9][0-9]\).*/\1/' > nova-bugs.txt
- Sanity check the list of bugs. Check that each has had a patch proposed to the stable branch
$> python showbugs.py $(cat nova-bugs.txt)
- Nominate those bugs for the series
$> python nominate.py nova grizzly $(cat nova-bugs.txt)
- Target those bugs at the milestone
$> python target.py nova grizzly 2013.1.3 $(cat nova-bugs.txt)
- Review the list of bugs targeted to the milestone and fixup Importance and Assignee fields e.g. https://bugs.launchpad.net/nova/+milestone/2013.1.3
- Review bugs tagged with in-stable-grizzly and target them appropriately if they haven't already been targeted. Don't forget to remove the tag. e.g. a query for nova
- Review bugs tagged with grizzly-backport-potential, untag fixes already backported and consider backporting important ones. e.g. a query for nova.
- Check to see if any bugs were nominated for the series
- Look at open reviews and make sure the corresponding bugs are targeted. e.g. query for nova.
Call For Testing
Call for testing, see this example
- Tag the release:
$> git tag -s 2013.1.3 $> git push gerrit tag 2013.1.3
+series = proj.getSeries(name='grizzly') +bugtasks = series.searchTasks(status='Fix Committed', omit_targeted=False)
we can use
$> python ./process-fixcommitted-bugs.py --onlymilestone 2013.1.3 --fixrelease nova
NB: script fails updating bugs with lots of tasks e.g. bug 1251757 - skip them using optional "exceptions" parameters e.g.
$> python ./process-fixcommitted-bugs.py --onlymilestone 2013.2.1 --fixrelease nova 1257293 1251757
Upload The Release
- Upload the release:
$> python ./upload_release.py nova 2013.1.3
- Update SecurityAdvisories/Havana
- Write release notes like ReleaseNotes/2013.2.2
- Send release announcement like StableBranchRelease/BoilerPlateAnnounce.
- Update Releases
- Update Getting_The_Code
- Bump version in setup.py (Grizzly) or setup.cfg (Havana) e.g. https://review.openstack.org/#/q/I3a7170180717bd62fce4cbc2c3a9107187f89fb1,n,z
- Decide on date for next release, create milestones
Planned stable/grizzly releases
2013.1.5 Mar 20 2014
Planned stable/havana releases
2013.2.1 Dec 12 2013 2013.2.2 Feb 13 2014 2013.2.3 Apr 03 2014 2013.2.4 - last planned, date TBD, after I release