Jump to: navigation, search

Difference between revisions of "ReleaseTeam/How To Release"

Line 6: Line 6:
  
 
Conventions:
 
Conventions:
Current release under development is "M" (2014.1), next release is "N" (2014.2)
+
Current release under development is "Morlock" (2014.1), with next milestone being "morlock-2" and next release is "Night" (2014.2)
  
= Milestone release =
+
= Milestone publication =
...
+
 
 +
== Pre-flight checks ==
 +
 
 +
==== Missing files check ====
 +
 
 +
<pre><nowiki>
 +
cd project
 +
tarball-repo-diff
 +
</nowiki></pre>
 +
 
 +
 
 +
==== 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
 +
 
 +
==== Bump master milestone code ====
 +
* Use ''common-bump-milestone'' Jenkins job
 +
* Select project, "master" and type "m3"
 +
 
 +
==== 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 ====
 +
 
 +
<pre><nowiki>
 +
./process-fixcommitted-bugs.py nova --milestone morlock-2 --settarget morlock-2 --fixrelease
 +
</nowiki></pre>
 +
 
 +
 
 +
==== Wait for tarball build ====
 +
* Wait for the *-tarball job run
 +
* Note down tarball version
 +
 
 +
==== Announce candidate builds (once all done) ====
 +
* Email to openstack general ML
 +
* Twitter
 +
 
 +
== In the next days (Wednesday-Thursday) ==
 +
 
 +
==== Track milestone-critical fixes ====
 +
* Target milestone-critical fixes to morlock-2
 +
* Backport them to milestone-proposed
 +
 
 +
==== Get PTL signoff ====
 +
* Note down milestone cut commit id
 +
 
 +
==== Wait for tarball build ====
 +
* Wait for the *-tarball job run
 +
* Note down tarball version
 +
 
 +
== Milestone publication (Thursday) ==
 +
 
 +
==== Bump MP milestone code ====
 +
* Use ''common-bump-milestone'' Jenkins job
 +
* Select project, "milestone-proposed" and type "m3"
 +
 
 +
==== Push tag to MP ====
 +
 
 +
<pre><nowiki>
 +
git checkout milestone-proposed
 +
git pull
 +
git tag -s morlock-2
 +
git push --tags gerrit
 +
</nowiki></pre>
 +
 
 +
 
 +
==== Upload milestone ====
 +
 
 +
<pre><nowiki>
 +
upload_release.py nova 2014.1 20140312.r15981 morlock-2
 +
</nowiki></pre>
 +
 
 +
 
 +
==== Announce milestone ====
 +
* Email to openstack general ML
 +
* Twitter
 +
 
 +
== Post-milestone ==
 +
 
 +
==== Remove milestone-proposed branches ====
 +
* In review.openstack.org project branch admin panel
  
 
= Final release =
 
= Final release =
  
 
== Pre-flight checks ==
 
== Pre-flight checks ==
==== Create N series ====
+
==== Create next series ====
* Create N series in Launchpad
+
* Create "night" series in Launchpad
 
* Set status to Future, Set release manager
 
* Set status to Future, Set release manager
 
==== Missing files check ====
 
==== Missing files check ====
Line 32: Line 123:
 
* This should be done close to the RC1 cut
 
* This should be done close to the RC1 cut
 
* Note down MP cut commit id
 
* Note down MP cut commit id
==== Bump master milestone code to n1 ====
+
==== Bump master milestone code ====
 
* Use ''common-bump-milestone'' Jenkins job
 
* Use ''common-bump-milestone'' Jenkins job
 
* Select project, "master" and type "n1"
 
* Select project, "master" and type "n1"
==== Push new version to master as first n1 commit ====
+
==== Push new version to master as first 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
 
* Prepare change which sets next version on master branch
Line 45: Line 136:
  
 
<pre><nowiki>
 
<pre><nowiki>
./process-fixcommitted-bugs.py nova --milestone m-rc1 --settarget m-rc1 --fixrelease
+
./process-fixcommitted-bugs.py nova --milestone morlock-rc1 --settarget morlock-rc1 --fixrelease
 
</nowiki></pre>
 
</nowiki></pre>
  
Line 60: Line 151:
 
* Use ''common-bump-milestone'' Jenkins job
 
* Use ''common-bump-milestone'' Jenkins job
 
* Select project, "milestone-proposed" and type "rc2"
 
* Select project, "milestone-proposed" and type "rc2"
==== Push M-rc1 tag to MP ====
+
==== Push rc1 tag to MP ====
  
 
<pre><nowiki>
 
<pre><nowiki>
 
git checkout milestone-proposed
 
git checkout milestone-proposed
 
git pull
 
git pull
git tag -s folsom-rc1
+
git tag -s morlock-rc1
 
git push --tags gerrit
 
git push --tags gerrit
 
</nowiki></pre>
 
</nowiki></pre>
Line 72: Line 163:
  
 
<pre><nowiki>
 
<pre><nowiki>
upload_release.py nova 2012.2 20120912.r15981 folsom-rc1
+
upload_release.py nova 2014.1 20140412.r15981 morlock-rc1
 
</nowiki></pre>
 
</nowiki></pre>
  
Line 101: Line 192:
 
git checkout milestone-proposed
 
git checkout milestone-proposed
 
git pull
 
git pull
git tag -s folsom-rc2
+
git tag -s morlock-rcX
 
git push --tags gerrit
 
git push --tags gerrit
 
</nowiki></pre>
 
</nowiki></pre>
Line 108: Line 199:
  
 
<pre><nowiki>
 
<pre><nowiki>
upload_release.py nova 2012.2 20120926.r16267 folsom-rc3
+
upload_release.py nova 2014.1 20140426.r16267 morlock-rcX
 
</nowiki></pre>
 
</nowiki></pre>
  
Line 119: Line 210:
  
 
<pre><nowiki>
 
<pre><nowiki>
consolidate_release_page.py nova folsom 2012.2
+
consolidate_release_page.py nova morlock 2014.1
 
</nowiki></pre>
 
</nowiki></pre>
  
 
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.
 
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 ====
+
==== Push final version tag to MP ====
  
 
<pre><nowiki>
 
<pre><nowiki>
Line 141: Line 232:
 
==== 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.
 
* Add the "See http://wiki.openstack.org/ReleaseNotes/Folsom" note to the Release note on the download page.
==== Announce 2014.1 release ====
+
==== Announce release ====
 
* openstack-announce, openstack general ML
 
* openstack-announce, openstack general ML
 
* Twitter etc.
 
* Twitter etc.
Line 147: Line 238:
 
==== Update "Releases" wiki page ====
 
==== Update "Releases" wiki page ====
 
* http://wiki.openstack.org/Releases
 
* http://wiki.openstack.org/Releases
==== Switch dev focus to N ====
+
==== Switch dev focus ====
* Switch dev focus to N ad N status to under active development
+
* 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 to current stable release, set release manager = openstack-stable-maint
 
* Switch M-1 to Obsolete
 
* Switch M-1 to Obsolete
==== Clean M-rc-potential tags ====
+
==== Clean rc-potential tags ====
* Search for https://bugs.launchpad.net/openstack/+bugs?field.tag=m-rc-potential
+
* Search for https://bugs.launchpad.net/openstack/+bugs?field.tag=morlock-rc-potential
 
* Remove tag where found
 
* 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
 
* New branch: "devnull", Initial revision: "milestone-proposed"
 
* New branch: "devnull", Initial revision: "milestone-proposed"
==== Push 2014.1.1 version to devnull branch ====
+
==== Push .1 version to devnull branch ====
  
 
<pre><nowiki>
 
<pre><nowiki>
 
git checkout -t -b devnull origin/devnull
 
git checkout -t -b devnull origin/devnull
vi nova/version.py
+
vi nova/version.py # set to 2014.1.1
 
git commit -a
 
git commit -a
 
git review devnull
 
git review devnull
Line 168: Line 259:
 
==== Create stable/folsom branch from devnull branch ====
 
==== Create stable/folsom branch from devnull branch ====
 
* Go to review.openstack.org project branch admin panel
 
* Go to review.openstack.org project branch admin panel
* New branch: "stable/folsom", Initial revision: "devnull"
+
* New branch: "stable/morlock", Initial revision: "devnull"
 
==== Remove devnull and milestone-proposed branches ====
 
==== Remove devnull and milestone-proposed branches ====
 
* In review.openstack.org project branch admin panel
 
* In review.openstack.org project branch admin panel
==== Bump MP milestone code to n1 ====
+
==== Bump MP milestone code ====
 
* Use ''common-bump-milestone'' Jenkins job
 
* Use ''common-bump-milestone'' Jenkins job
 
* Select project, "milestone-proposed" and type "n1"
 
* Select project, "milestone-proposed" and type "n1"

Revision as of 14:00, 15 November 2012

Raw notes for release monkeys in case I end up under a bus.

<<TableOfContents(3)>>

Conventions: Current release under development is "Morlock" (2014.1), with next milestone being "morlock-2" and next release is "Night" (2014.2)

Milestone publication

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

Bump master milestone code

  • Use common-bump-milestone Jenkins job
  • Select project, "master" and type "m3"

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-2 --settarget morlock-2 --fixrelease


Wait for tarball build

  • Wait for the *-tarball job run
  • Note down tarball version

Announce candidate builds (once all done)

  • Email to openstack general ML
  • Twitter

In the next days (Wednesday-Thursday)

Track milestone-critical fixes

  • Target milestone-critical fixes to morlock-2
  • Backport them to milestone-proposed

Get PTL signoff

  • Note down milestone cut commit id

Wait for tarball build

  • Wait for the *-tarball job run
  • Note down tarball version

Milestone publication (Thursday)

Bump MP milestone code

  • Use common-bump-milestone Jenkins job
  • Select project, "milestone-proposed" and type "m3"

Push tag to MP

git checkout milestone-proposed
git pull
git tag -s morlock-2
git push --tags gerrit


Upload milestone

upload_release.py nova 2014.1 20140312.r15981 morlock-2


Announce milestone

  • Email to openstack general ML
  • Twitter

Post-milestone

Remove milestone-proposed branches

  • In review.openstack.org project branch admin panel

Final release

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 20140412.r15981 morlock-rc1

Announce RC1

  • Email to openstack general ML
  • Twitter

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 20140426.r16267 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

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

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"