Difference between revisions of "ReleaseTeam/How To Release"
(Updates at grizzly-3) |
|||
Line 6: | Line 6: | ||
Supposing release under development is "Morlock" (2014.1) and we want to publish "morlock-2" milestone. | Supposing release under development is "Morlock" (2014.1) and we want to publish "morlock-2" milestone. | ||
− | == Pre-flight checks == | + | === Pre-flight checks === |
==== Missing files check ==== | ==== Missing files check ==== | ||
Line 25: | Line 25: | ||
* Note down MP cut commit id | * Note down MP cut commit id | ||
− | == MP cut (Tuesday) == | + | === MP cut (Tuesday) === |
==== Deferring blueprints ==== | ==== Deferring blueprints ==== | ||
* Move all incomplete blueprints to the next milestone | * Move all incomplete blueprints to the next milestone | ||
− | + | * Move all non-milestone-critical bugs to the next milestone | |
− | |||
− | * | ||
− | |||
==== 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 the MP cut commit id | + | * Branch name is "milestone-proposed", initial revision is the MP cut commit id (or HEAD) |
==== Process FixCommitted bugs ==== | ==== Process FixCommitted bugs ==== | ||
Line 46: | Line 43: | ||
==== Wait for tarball build ==== | ==== Wait for tarball build ==== | ||
− | * Wait for the *-tarball job run | + | * Wait for the *-branch-tarball job run to generate a PROJ-milestone-proposed.tar.gz |
− | |||
==== Announce candidate builds (once all done) ==== | ==== Announce candidate builds (once all done) ==== | ||
Line 53: | Line 49: | ||
* Twitter | * Twitter | ||
− | == In the next days (Wednesday-Thursday) == | + | === In the next days (Wednesday-Thursday) === |
==== Track milestone-critical fixes ==== | ==== Track milestone-critical fixes ==== | ||
* Target milestone-critical fixes to morlock-2 | * Target milestone-critical fixes to morlock-2 | ||
− | * Backport them to milestone-proposed | + | * Backport them to milestone-proposed (see [[GerritJenkinsGithub#Authoring_Changes_for_milestone-proposed|how to do it]]) |
==== Get PTL signoff ==== | ==== Get PTL signoff ==== | ||
* Note down milestone cut commit id | * Note down milestone cut commit id | ||
− | = | + | === Milestone publication (Thursday) === |
− | |||
− | |||
− | |||
− | == Milestone publication (Thursday) | ||
− | |||
− | |||
− | |||
− | |||
==== Push tag to MP ==== | ==== Push tag to MP ==== | ||
Line 77: | Line 65: | ||
git checkout milestone-proposed | git checkout milestone-proposed | ||
git pull | git pull | ||
− | git tag -s | + | git tag -s "2014.1.m2" |
git push --tags gerrit | git push --tags gerrit | ||
</nowiki></pre> | </nowiki></pre> | ||
+ | ==== Wait for tarball build ==== | ||
+ | * Wait for the *-tarball job run to generate a PROJ-2014.1.m2.tar.gz | ||
==== Upload milestone ==== | ==== Upload milestone ==== | ||
Line 93: | Line 83: | ||
* Twitter | * Twitter | ||
− | == Post-milestone == | + | === Post-milestone === |
==== 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 (outdated !) = |
Supposing we want to release "Morlock" (2014.1), and next release is called "Night" (2014.2). | Supposing we want to release "Morlock" (2014.1), and next release is called "Night" (2014.2). | ||
− | == Pre-flight checks == | + | === Pre-flight checks === |
==== Create next series ==== | ==== Create next series ==== | ||
* Create "night" series in Launchpad | * Create "night" series in Launchpad | ||
Line 117: | Line 107: | ||
==== Check bugs ==== | ==== Check bugs ==== | ||
* Look at the list of FixCommitted bugs, sanity-check that they were fixed during the period | * Look at the list of FixCommitted bugs, sanity-check that they were fixed during the period | ||
− | == MP cut (switch master to next version) == | + | === MP cut (switch master to next version) === |
==== Get PTL signoff ==== | ==== Get PTL signoff ==== | ||
* This should be done close to the RC1 cut | * This should be done close to the RC1 cut | ||
Line 137: | Line 127: | ||
</nowiki></pre> | </nowiki></pre> | ||
− | == RC1 cut == | + | === RC1 cut === |
==== 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 | ||
Line 168: | Line 158: | ||
* Twitter | * Twitter | ||
− | == Further RC-X windows == | + | === Further RC-X windows === |
==== Decision to open next RC window ==== | ==== Decision to open next RC window ==== | ||
* Consider m-rc-potential bugs and discuss with PTL if they warrant a respin | * Consider m-rc-potential bugs and discuss with PTL if they warrant a respin | ||
Line 202: | Line 192: | ||
==== Announce RC-X ==== | ==== Announce RC-X ==== | ||
− | == Final release == | + | === Final release === |
==== Create final release milestone page ==== | ==== Create final release milestone page ==== | ||
* Create the 2014.1 final milestone page on Launchpad | * Create the 2014.1 final milestone page on Launchpad | ||
Line 233: | Line 223: | ||
* openstack-announce, openstack general ML | * openstack-announce, openstack general ML | ||
* Twitter etc. | * Twitter etc. | ||
− | == Post-release == | + | === Post-release === |
==== Update "Releases" wiki page ==== | ==== Update "Releases" wiki page ==== | ||
* http://wiki.openstack.org/Releases | * http://wiki.openstack.org/Releases | ||
Line 264: | Line 254: | ||
* Select project, "milestone-proposed" and type "n1" | * Select project, "milestone-proposed" and type "n1" | ||
− | = Swift releases = | + | = Swift releases (outdated !) = |
Swift uses separate versioning and does not use milestones. Let's suppose we are releasing 1.8.2 and next version is called 1.8.3. | Swift uses separate versioning and does not use milestones. Let's suppose we are releasing 1.8.2 and next version is called 1.8.3. | ||
− | == Pre-flight checks == | + | === Pre-flight checks === |
==== Missing files check ==== | ==== Missing files check ==== | ||
Line 289: | Line 279: | ||
* Note down MP cut commit id | * Note down MP cut commit id | ||
− | == MP cut == | + | === MP cut === |
==== Push new version to master ==== | ==== Push new version to master ==== | ||
Line 310: | Line 300: | ||
* Note down tarball version | * Note down tarball version | ||
− | == QA for proposed release == | + | === QA for proposed release === |
==== Push FINAL=True commit to MP ==== | ==== Push FINAL=True commit to MP ==== | ||
Line 323: | Line 313: | ||
* Note down tarball version | * Note down tarball version | ||
− | == Release publication == | + | === Release publication === |
==== Push tag to MP ==== | ==== Push tag to MP ==== | ||
Line 346: | Line 336: | ||
* Twitter | * Twitter | ||
− | == Post-milestone == | + | === Post-milestone === |
==== Remove milestone-proposed branch ==== | ==== Remove milestone-proposed branch ==== | ||
* In review.openstack.org project branch admin panel | * In review.openstack.org project branch admin panel |
Revision as of 14:18, 22 February 2013
Raw notes for release monkeys in case I end up under a bus.
Milestone publication
Supposing release under development is "Morlock" (2014.1) and we want to publish "morlock-2" milestone.
Pre-flight checks
Missing files check
cd project tarball-repo-diff
Tarball/version status
- Check that the *-tarball jenkins jobs work properly and that they produce the right version numbers
Check bugs
- Look at the list of FixCommitted bugs, sanity-check that they were fixed during the period
Get PTL signoff
- Note down MP cut commit id
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 from previous commit
- Use review.openstack.org admin panel to create branch
- Branch name is "milestone-proposed", initial revision is the MP cut commit id (or HEAD)
Process FixCommitted bugs
./process-fixcommitted-bugs.py nova --milestone morlock-2 --settarget morlock-2 --fixrelease
Wait for tarball build
- Wait for the *-branch-tarball job run to generate a PROJ-milestone-proposed.tar.gz
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 morlock-2
- Backport them to milestone-proposed (see how to do it)
Get PTL signoff
- Note down milestone cut commit id
Milestone publication (Thursday)
Push tag to MP
git checkout milestone-proposed git pull git tag -s "2014.1.m2" git push --tags gerrit
Wait for tarball build
- Wait for the *-tarball job run to generate a PROJ-2014.1.m2.tar.gz
Upload milestone
upload_release.py nova 2014.1 --milestone=morlock-2
Announce milestone
- Email to openstack general ML
Post-milestone
Remove milestone-proposed branches
- In review.openstack.org project branch admin panel
Final release (outdated !)
Supposing we want to release "Morlock" (2014.1), and next release is called "Night" (2014.2).
Pre-flight checks
Create next series
- Create "night" series in Launchpad
- Set status to Future, Set release manager
Missing files check
cd project tarball-repo-diff
Tarball/version status
- Check that the *-tarball jenkins jobs work properly and that they produce the right version numbers
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
- Note down MP cut commit id
Bump master milestone code
- Use common-bump-milestone Jenkins job
- Select project, "master" and type "n1"
Push new version to master as first commit
- /!\ This needs to be done as the very first commit after the n1 milestone bump !
- Prepare change which sets next version on master branch
- Get it approved by core and make sure it's merged
Create MP branch from previous commit
- Use review.openstack.org admin panel to create branch
- Branch name is "milestone-proposed", initial revision is the MP cut commit id
Process FixCommitted bugs
./process-fixcommitted-bugs.py nova --milestone morlock-rc1 --settarget morlock-rc1 --fixrelease
RC1 cut
Get PTL signoff
- Check that the branch contents are ready to go from PTL perspective
Push FINAL=True commit to MP (some projects only)
- Prepare change which sets FINAL=True on milestone-proposed branch
- Approve and make sure it's merged
Wait for Final tarball
- Wait for the *-tarball job run
- Note down tarball version
Bump MP milestone code to rc2
- Use common-bump-milestone Jenkins job
- Select project, "milestone-proposed" and type "rc2"
Push rc1 tag to MP
git checkout milestone-proposed git pull git tag -s morlock-rc1 git push --tags gerrit
Upload release
upload_release.py nova 2014.1 --milestone=morlock-rc1
Announce RC1
- Email to openstack general ML
Further RC-X windows
Decision to open next RC window
- Consider m-rc-potential bugs and discuss with PTL if they warrant a respin
Create RC-X milestone page
- Create the RC-X milestone page on Launchpad
- Target relevant bugs
Refine/fix bugs
- Track bug fixes
- Facilitate backports
Get candidate tarball
- Wait for the *-tarball job run
- Note down tarball version
Get PTL signoff
- Get confirmation that RC is releasable from PTL
Bump MP milestone code to next rcX+1
- Use common-bump-milestone Jenkins job
- Select project, "milestone-proposed" and type "rcX+1"
Push M-rcX tag to MP
git checkout milestone-proposed git pull git tag -s morlock-rcX git push --tags gerrit
Upload release
upload_release.py nova 2014.1 --milestone=morlock-rcX
Announce RC-X
Final release
Create final release milestone page
- Create the 2014.1 final milestone page on Launchpad
Push all bugs and blueprints to final page
consolidate_release_page.py nova morlock 2014.1
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.
Push final version tag to MP
git checkout milestone-proposed git pull git tag -s 2014.1 git push --tags gerrit
Promote last RC to release
promote_rc.py PROJECT 2014.1 rc2
Add release notes link to release page
- Add the "See http://wiki.openstack.org/ReleaseNotes/Folsom" 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 dev focus to N and N status to under active development
- Switch M to current stable release, set release manager = openstack-stable-maint
- Switch M-1 to Obsolete
Clean rc-potential tags
- Search for https://bugs.launchpad.net/openstack/+bugs?field.tag=morlock-rc-potential
- Remove tag where found
Create devnull branch (from MP)
- Go to review.openstack.org project branch admin panel
- New branch: "devnull", Initial revision: "milestone-proposed"
Push .1 version to devnull branch
git checkout -t -b devnull origin/devnull vi nova/version.py # set to 2014.1.1 git commit -a git review devnull
Create stable/folsom branch from devnull branch
- Go to review.openstack.org project branch admin panel
- New branch: "stable/morlock", Initial revision: "devnull"
Remove devnull and milestone-proposed branches
- In review.openstack.org project branch admin panel
Bump MP milestone code
- Use common-bump-milestone Jenkins job
- Select project, "milestone-proposed" and type "n1"
Swift releases (outdated !)
Swift uses separate versioning and does not use milestones. Let's suppose we are releasing 1.8.2 and next version is called 1.8.3.
Pre-flight checks
Missing files check
cd swift tarball-repo-diff
Tarball/version status
- Check that the swift-tarball jenkins jobs work properly and that they produce the right version numbers
Check bugs & blueprints
- Look at the list of FixCommitted bugs, sanity-check that they were fixed during the period
- Check that the 1.8.2 milestone page is sane (all implemented blueprints)
Get PTL signoff
- Check that the 1.8.2 changelog was committed to master
- Note down MP cut commit id
MP cut
Push new version to master
- Prepare change which sets 1.8.3 on master branch
- Get it approved by swift-core and make sure it's merged
Create MP branch from previous commit
- Use review.openstack.org admin panel to create branch
- Branch name is "milestone-proposed", initial revision is the MP cut commit id
Process FixCommitted bugs
./process-fixcommitted-bugs.py swift --milestone 1.8.2 --settarget 1.8.2 --fixrelease
Wait for tarball build
- Wait for the swift-tarball job run
- Note down tarball version
QA for proposed release
Push FINAL=True commit to MP
- Prepare change which sets FINAL=True on milestone-proposed branch
- Approve and make sure it's merged
Get Final PTL signoff
- Note down release commit id
Wait for tarball build
- Wait for the swift-tarball job run
- Note down tarball version
Release publication
Push tag to MP
git checkout milestone-proposed git pull git tag -s 1.8.2 git push --tags gerrit
Upload milestone
upload_release.py swift 1.8.2
Announce release
- Email to openstack general, openstack-announce ML
Post-milestone
Remove milestone-proposed branch
- In review.openstack.org project branch admin panel