Difference between revisions of "ReleaseTeam/How To Release"
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
<!-- ## page was renamed from [[HowToRelease]] --> | <!-- ## page was renamed from [[HowToRelease]] --> | ||
− | Raw notes for | + | Raw notes for release monkeys in case I end up under a bus. |
<<[[TableOfContents]](3)>> | <<[[TableOfContents]](3)>> | ||
Line 15: | Line 15: | ||
== Pre-flight checks == | == Pre-flight checks == | ||
==== Create N series ==== | ==== Create N series ==== | ||
− | * Create N series | + | * Create N series in Launchpad |
− | * Set status to Future, release manager | + | * Set status to Future, Set release manager |
==== Missing files check ==== | ==== Missing files check ==== | ||
Line 25: | Line 25: | ||
==== Tarball/version status ==== | ==== Tarball/version status ==== | ||
+ | * Check that the *-tarball jenkins jobs work properly and that they produce the right version numbers | ||
==== Check bugs ==== | ==== 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) == | == MP cut (switch master to next version) == | ||
==== Get PTL signoff ==== | ==== Get PTL signoff ==== | ||
+ | * This should be done close to the RC1 cut | ||
+ | * Note down MP cut commit id | ||
==== Bump master milestone code to n1 ==== | ==== Bump master milestone code to n1 ==== | ||
* Use ''common-bump-milestone'' Jenkins job | * Use ''common-bump-milestone'' Jenkins job | ||
Line 34: | Line 37: | ||
==== Push new version to master as first n1 commit ==== | ==== Push new version to master as first n1 commit ==== | ||
* /!\ This needs to be done as the very first commit after the n1 milestone bump ! | * /!\ 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 ==== | ==== 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 ==== | ||
+ | |||
+ | <pre><nowiki> | ||
+ | ./process-fixcommitted-bugs.py nova --milestone m-rc1 --settarget m-rc1 --fixrelease | ||
+ | </nowiki></pre> | ||
== RC1 cut == | == RC1 cut == | ||
==== Get PTL signoff ==== | ==== Get PTL signoff ==== | ||
− | ==== Push FINAL=True commit to MP ==== | + | * 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 Final tarball ==== | ||
+ | * Wait for the *-tarball job run | ||
+ | * Note down tarball version | ||
==== Bump MP milestone code to rc2 ==== | ==== Bump MP milestone code to rc2 ==== | ||
* Use ''common-bump-milestone'' Jenkins job | * Use ''common-bump-milestone'' Jenkins job | ||
Line 60: | Line 76: | ||
==== Announce RC1 ==== | ==== Announce RC1 ==== | ||
+ | * Email to openstack general ML | ||
+ | * 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 | ||
==== Create RC-X milestone page ==== | ==== Create RC-X milestone page ==== | ||
+ | * Create the RC-X milestone page on Launchpad | ||
+ | * Target relevant bugs | ||
==== Refine/fix bugs ==== | ==== Refine/fix bugs ==== | ||
+ | * Track bug fixes | ||
+ | * Facilitate backports | ||
==== Get candidate tarball ==== | ==== Get candidate tarball ==== | ||
+ | * Wait for the *-tarball job run | ||
+ | * Note down tarball version | ||
==== Get PTL signoff ==== | ==== Get PTL signoff ==== | ||
+ | * Get confirmation that RC is releasable from PTL | ||
==== Bump MP milestone code to next rcX+1 ==== | ==== Bump MP milestone code to next rcX+1 ==== | ||
* Use ''common-bump-milestone'' Jenkins job | * Use ''common-bump-milestone'' Jenkins job | ||
Line 89: | Line 115: | ||
== Final release == | == Final release == | ||
==== Create final release milestone page ==== | ==== Create final release milestone page ==== | ||
+ | * Create the 2014.1 final milestone page on Launchpad | ||
==== Push all bugs and blueprints to final page ==== | ==== Push all bugs and blueprints to final page ==== | ||
Line 98: | Line 125: | ||
==== Push 2014.1 tag to MP ==== | ==== Push 2014.1 tag to MP ==== | ||
+ | |||
+ | <pre><nowiki> | ||
+ | git checkout milestone-proposed | ||
+ | git pull | ||
+ | git tag -s 2014.1 | ||
+ | git push --tags gerrit | ||
+ | </nowiki></pre> | ||
+ | |||
==== Promote last RC to release ==== | ==== Promote last RC to release ==== | ||
Line 105: | Line 140: | ||
==== Add release notes link to release page ==== | ==== 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 2014.1 release ==== | ==== Announce 2014.1 release ==== | ||
− | + | * openstack-announce, openstack general ML | |
+ | * Twitter etc. | ||
== Post-release == | == Post-release == | ||
==== Update "Releases" wiki page ==== | ==== Update "Releases" wiki page ==== | ||
+ | * http://wiki.openstack.org/Releases | ||
==== Switch dev focus to N ==== | ==== Switch dev focus to N ==== | ||
* Switch dev focus to N ad N status to under active development | * Switch dev focus to N ad N status to under active development | ||
Line 114: | Line 152: | ||
* Switch M-1 to Obsolete | * Switch M-1 to Obsolete | ||
==== Clean M-rc-potential tags ==== | ==== Clean M-rc-potential tags ==== | ||
+ | * Search for https://bugs.launchpad.net/openstack/+bugs?field.tag=m-rc-potential | ||
+ | * Remove tag where found | ||
==== Create devnull branch (from MP) ==== | ==== Create devnull branch (from MP) ==== | ||
* Go to review.openstack.org project branch admin panel | * Go to review.openstack.org project branch admin panel |
Revision as of 14:48, 9 October 2012
Raw notes for release monkeys in case I end up under a bus.
<<TableOfContents(3)>>
Conventions: Current release under development is "M" (2014.1), next release is "N" (2014.2)
Milestone release
...
Final release
Pre-flight checks
Create N series
- Create N 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 to n1
- Use common-bump-milestone Jenkins job
- Select project, "master" and type "n1"
Push new version to master as first n1 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 m-rc1 --settarget m-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 M-rc1 tag to MP
git checkout milestone-proposed git pull git tag -s folsom-rc1 git push --tags gerrit
Upload release
upload_release.py nova 2012.2 20120912.r15981 folsom-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 folsom-rc2 git push --tags gerrit
Upload release
upload_release.py nova 2012.2 20120926.r16267 folsom-rc3
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 folsom 2012.2
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 2014.1 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 2014.1 release
- openstack-announce, openstack general ML
- Twitter etc.
Post-release
Update "Releases" wiki page
Switch dev focus to N
- Switch dev focus to N ad N status to under active development
- Switch M to current stable release, set release manager = openstack-stable-maint
- Switch M-1 to Obsolete
Clean M-rc-potential tags
- Search for https://bugs.launchpad.net/openstack/+bugs?field.tag=m-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 2014.1.1 version to devnull branch
git checkout -t -b devnull origin/devnull vi nova/version.py 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/folsom", Initial revision: "devnull"
Remove devnull and milestone-proposed branches
- In review.openstack.org project branch admin panel
Bump MP milestone code to n1
- Use common-bump-milestone Jenkins job
- Select project, "milestone-proposed" and type "n1"