Difference between revisions of "ReleaseTeam/How To Release"
(→Milestone publication) |
|||
Line 1: | Line 1: | ||
Raw notes for release monkeys in case I end up under a bus. | Raw notes for release monkeys in case I end up under a bus. | ||
+ | All tools mentioned here can be grabbed from this [https://github.com/ttx/openstack-releasing github repo]. | ||
− | |||
== Milestone publication == | == Milestone publication == | ||
Line 75: | Line 75: | ||
==== Milestone publication (Thursday) ==== | ==== Milestone publication (Thursday) ==== | ||
− | ''' | + | '''Tag, wait for tarball, check similarities and upload''' |
<pre><nowiki> | <pre><nowiki> | ||
./mpdelivery.sh $DEVVERSION $MILESTONE $PUBVERSION $PROJECT | ./mpdelivery.sh $DEVVERSION $MILESTONE $PUBVERSION $PROJECT | ||
</nowiki></pre> | </nowiki></pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 90: | Line 84: | ||
* Email to openstack general ML | * Email to openstack general ML | ||
* Twitter | * Twitter | ||
+ | |||
==== Post-milestone ==== | ==== Post-milestone ==== | ||
Line 95: | Line 90: | ||
'''Remove milestone-proposed branches''' | '''Remove milestone-proposed branches''' | ||
* In review.openstack.org project branch admin panel | * In review.openstack.org project branch admin panel | ||
+ | |||
== Final release == | == Final release == | ||
Line 102: | Line 98: | ||
PROJECT=nova # or PROJECT=swift | PROJECT=nova # or PROJECT=swift | ||
VERSION=2013.1 # or VERSION=1.8.0 | VERSION=2013.1 # or VERSION=1.8.0 | ||
− | |||
NAME=grizzly # or NAME=1.8.0 | NAME=grizzly # or NAME=1.8.0 | ||
SERIES=grizzly | SERIES=grizzly | ||
Line 124: | Line 119: | ||
./repo_tarball_diff.sh $PROJECT master | ./repo_tarball_diff.sh $PROJECT master | ||
</nowiki></pre> | </nowiki></pre> | ||
− | |||
− | |||
− | |||
− | |||
Line 139: | Line 130: | ||
* This should be done close to the RC1 cut | * This should be done close to the RC1 cut | ||
* For Swift, check that the $VERSION changelog was committed to master | * For Swift, check that the $VERSION changelog was committed to master | ||
− | |||
'''Push new version to master''' | '''Push new version to master''' | ||
− | * Prepare change which sets next version on master branch in setup. | + | * Prepare change which sets next version on master branch in setup.cfg (or in swift/__init__.py) |
* Get it approved by core and make sure it's merged | * Get it approved by core and make sure it's merged | ||
+ | * Note down SHA = MP cut commit id (the commit just before the version bump) | ||
'''Create MP branch from previous commit''' | '''Create MP branch from previous commit''' | ||
* Use review.openstack.org admin panel to create branch | * Use review.openstack.org admin panel to create branch | ||
− | * Branch name is "milestone-proposed", initial revision is | + | * Branch name is "milestone-proposed", initial revision is $SHA |
Line 167: | Line 158: | ||
'''Get PTL signoff''' | '''Get PTL signoff''' | ||
− | * Check that the branch contents are ready to go from PTL perspective | + | * Check that the branch contents are ready to go from PTL perspective (backport any last-minute bugfix) |
− | ''' | + | '''Tag, wait for tarball, check similarities and upload''' |
<pre><nowiki> | <pre><nowiki> | ||
− | + | ./mpdelivery.sh $VERSION $NAME-rc1 $VERSION.rc1 $PROJECT | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</nowiki></pre> | </nowiki></pre> | ||
Line 220: | Line 192: | ||
− | ''' | + | '''Tag, wait for tarball, check similarities and upload''' |
<pre><nowiki> | <pre><nowiki> | ||
− | + | ./mpdelivery.sh $VERSION $NAME-rcX $VERSION.rcX $PROJECT | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</nowiki></pre> | </nowiki></pre> | ||
Line 262: | Line 215: | ||
− | ''' | + | '''Tag, wait for tarball, check similarities and upload''' |
<pre><nowiki> | <pre><nowiki> | ||
− | + | ./mpdelivery.sh $VERSION $VERSION $VERSION $PROJECT | |
− | |||
− | |||
− | |||
</nowiki></pre> | </nowiki></pre> | ||
− | ''' | + | '''Extra similarity check''' |
− | |||
− | |||
− | |||
− | |||
<pre><nowiki> | <pre><nowiki> | ||
./similar_tarballs.sh $PROJECT $VERSION.rcX $VERSION | ./similar_tarballs.sh $PROJECT $VERSION.rcX $VERSION | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</nowiki></pre> | </nowiki></pre> | ||
Line 325: | Line 265: | ||
git checkout -t -b stable/$SERIES origin/stable/$SERIES | git checkout -t -b stable/$SERIES origin/stable/$SERIES | ||
git checkout -b stable-$SERIES | git checkout -b stable-$SERIES | ||
− | vi setup. | + | vi setup.cfg # set to $VERSION.1 |
vi .gitreview # set defaultbranch=stable/$SERIES | vi .gitreview # set defaultbranch=stable/$SERIES | ||
git commit -a | git commit -a | ||
git review stable/$SERIES | git review stable/$SERIES | ||
</nowiki></pre> | </nowiki></pre> |
Revision as of 09:28, 27 September 2013
Raw notes for release monkeys in case I end up under a bus. All tools mentioned here can be grabbed from this github repo.
Contents
Milestone publication
(also works for Swift interim releases)
PROJECT=nova # or PROJECT=swift DEVVERSION=2013.1 # or DEVVERSION=1.8.1 MILESTONE=grizzly-3 # or MILESTONE=1.8.1 PUBVERSION=2013.1.g3 # or PUBVERSION=1.8.1
Pre-flight checks
Missing files check
./repo_tarball_diff.sh $PROJECT master
Check bugs
- Look at the list of FixCommitted bugs, sanity-check that they were fixed during the period
Get PTL signoff
- For Swift, check that the $DEVVERSION changelog was committed to master
- For Swift, set next version on master branch, get it approved by swift-core and make sure it's merged
- Note down SHA = MP cut commit id (for Swift, that would be the one just before the next-version commit)
MP cut (Tuesday)
Deferring blueprints
- Move all incomplete blueprints to the next milestone
- Move all non-milestone-critical bugs to the next milestone
Create MP branch
- Use review.openstack.org admin panel to create branch
- Branch name is "milestone-proposed", initial revision is $SHA (or "HEAD")
Process FixCommitted bugs
./process_bugs.py $PROJECT --settarget=$MILESTONE --fixrelease
Wait for milestone-proposed.tar.gz tarball build
./wait_for_tarball.py $SHA
Announce candidate builds (once all done)
- Email to openstack general ML
In the next days (Wednesday-Thursday)
Track milestone-critical fixes
- Target milestone-critical fixes to $MILESTONE
- Backport them to milestone-proposed (see how to do it)
Get PTL signoff
- For Swift, push change to swift/__init__.py which sets FINAL=True on milestone-proposed branch
Milestone publication (Thursday)
Tag, wait for tarball, check similarities and upload
./mpdelivery.sh $DEVVERSION $MILESTONE $PUBVERSION $PROJECT
Announce milestone
- Email to openstack general ML
Post-milestone
Remove milestone-proposed branches
- In review.openstack.org project branch admin panel
Final release
(also works for Swift integrated releases)
PROJECT=nova # or PROJECT=swift VERSION=2013.1 # or VERSION=1.8.0 NAME=grizzly # or NAME=1.8.0 SERIES=grizzly NEXTSERIES=havana
Pre-flight checks
Create next series
- Create $NEXTSERIES series in Launchpad
- Set status to Future, Set release manager
Check RC1 has 'RC1' as short name
- $NAME-rc1 should have 'RC1' as short milestone name
Missing files check
./repo_tarball_diff.sh $PROJECT master
Check bugs
- Look at the list of FixCommitted bugs, sanity-check that they were fixed during the period
MP cut (switch master to next version)
Get PTL signoff
- This should be done close to the RC1 cut
- For Swift, check that the $VERSION changelog was committed to master
Push new version to master
- Prepare change which sets next version on master branch in setup.cfg (or in swift/__init__.py)
- Get it approved by core and make sure it's merged
- Note down SHA = MP cut commit id (the commit just before the version bump)
Create MP branch from previous commit
- Use review.openstack.org admin panel to create branch
- Branch name is "milestone-proposed", initial revision is $SHA
Process FixCommitted bugs
./process_bugs.py $PROJECT --settarget=$NAME-rc1 --fixrelease
Set $NEXTSERIES as active development
- Make $NEXTSERIES the "Development focus" for $PROJECT
- Set $NEXTSERIES status to "Active development"
- Set $SERIES status to "Pre-release freeze"
RC1 cut
Get PTL signoff
- Check that the branch contents are ready to go from PTL perspective (backport any last-minute bugfix)
Tag, wait for tarball, check similarities and upload
./mpdelivery.sh $VERSION $NAME-rc1 $VERSION.rc1 $PROJECT
Announce RC1
- Email to openstack general ML
Further RC-X windows
Decision to open next RC window
- Consider $SERIES-rc-potential bugs and discuss with PTL if they warrant a respin
Create RC-X milestone page
- Create the RC-X milestone page (short name = RCX) on Launchpad
- Target relevant bugs
Refine/fix bugs
- Track bug fixes
- Facilitate backports
Get PTL signoff
- Get confirmation that RC is releasable from PTL perspective
Tag, wait for tarball, check similarities and upload
./mpdelivery.sh $VERSION $NAME-rcX $VERSION.rcX $PROJECT
Announce RC-X
- Email to openstack general ML
Final release
Create final release milestone page
- Create the $VERSION final milestone page on Launchpad
Push all bugs and blueprints to final page
./consolidate_release_page.py $PROJECT $SERIES $VERSION
This can take a very long time. For large bugs you will have to run it multiple times. Verify all intermediary milestone pages are now empty.
Tag, wait for tarball, check similarities and upload
./mpdelivery.sh $VERSION $VERSION $VERSION $PROJECT
Extra similarity check
./similar_tarballs.sh $PROJECT $VERSION.rcX $VERSION
Add release notes link to release page
- Add the "See http://wiki.openstack.org/ReleaseNotes/$SERIES" note to the Release note on the download page.
Announce release
- openstack-announce, openstack general ML
- Twitter etc.
Post-release
Update "Releases" wiki page
Switch dev focus
- Switch $SERIES to current stable release, set release manager = openstack-stable-maint
- Switch previous stable release (series - 1) to Obsolete
Clean rc-potential tags
- Search for https://bugs.launchpad.net/openstack/+bugs?field.tag=$SERIES-rc-potential
- Remove tag where found
Create stable/$SERIES
- Go to review.openstack.org project branch admin panel
- New branch: "stable/$SERIES", Initial revision: "milestone-proposed"
Remove milestone-proposed branch
- In review.openstack.org project branch admin panel
Push .1 version to stable/$SERIES branch
git checkout -t -b stable/$SERIES origin/stable/$SERIES git checkout -b stable-$SERIES vi setup.cfg # set to $VERSION.1 vi .gitreview # set defaultbranch=stable/$SERIES git commit -a git review stable/$SERIES