Rev 5268: (lifeless) Improve the release checklist. (Robert Collins) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Fri May 28 04:56:28 BST 2010
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 5268 [merge]
revision-id: pqm at pqm.ubuntu.com-20100528035625-092j7ythct3ja54s
parent: pqm at pqm.ubuntu.com-20100528023932-s5fu0vv28yt86kzd
parent: robertc at robertcollins.net-20100527195456-zidsr5dfgz4r5zgg
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2010-05-28 04:56:25 +0100
message:
(lifeless) Improve the release checklist. (Robert Collins)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
doc/developers/releasing.txt releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
=== modified file 'NEWS'
--- a/NEWS 2010-05-27 21:16:48 +0000
+++ b/NEWS 2010-05-28 03:56:25 +0000
@@ -31,6 +31,10 @@
Documentation
*************
+* Improved our release checklist to have a bit less churn and leave things
+ ready-to-go for the next action (including other people doing
+ development). (Robert Collins)
+
API Changes
***********
=== modified file 'doc/developers/releasing.txt'
--- a/doc/developers/releasing.txt 2010-03-17 02:58:08 +0000
+++ b/doc/developers/releasing.txt 2010-05-27 19:54:56 +0000
@@ -1,5 +1,5 @@
Releasing Bazaar
-================
+################
This document describes the processes for making and announcing a Bazaar
release, and managing the release process. This is just one phase of the
@@ -19,46 +19,37 @@
Preconditions
--------------
+=============
#. Download the pqm plugin and install it into your ``~/.bazaar/plugins``::
bzr branch lp:bzr-pqm ~/.bazaar/plugins/pqm
-Starting a cycle
-----------------
+At the start of a release cycle
+===============================
To start a new release cycle:
-#. Create a new series at <https://launchpad.net/bzr/+addseries>. There is one
- series for every *x.y* release.
-
-#. Go to the series web page at <https://launchpad.net/bzr/x.y>
-
-#. Create a new release at
- <https://launchpad.net/bzr/x.y/+addrelease> and add
- information about this release. We will not use it yet, but it
+#. If this is the first release for a given *x.y* then create a new
+ series at <https://launchpad.net/bzr/+addseries>. There is one series
+ for every *x.y* release.
+
+#. If you made a new series, create a new pqm-controlled branch for this
+ release series, by asking a Canonical sysadmin. This branch means that
+ from the first release beta or candidate onwards, general development
+ continues on the trunk, and only specifically-targeted fixes go into
+ the release branch.
+
+#. If you made a new series, add milestones at
+ <https://edge.launchpad.net/bzr/x.y/+addmilestone> to that series for
+ the beta release, release candidate and the final release, and their
+ expected dates.
+
+#. Create a new milestone <https://edge.launchpad.net/bzr/x.y/+addmilestone>
+ and add information about this release. We will not use it yet, but it
will be available for targeting or nominating bugs.
-#. We create a new pqm-controlled branch for this release series, by
- asking a Canonical sysadmin.
- This branch means that from the first release beta or candidate onwards,
- general development continues on the trunk, and only
- specifically-targeted fixes go into the release branch.
-
-#. Add milestones at <https://edge.launchpad.net/bzr/x.y/+addmilestone> to
- that series for the beta release, release candidate and the final release,
- and their expected dates.
-
-#. Update the version number in the ``bzr`` script, and the
- ``bzrlib/__init__.py`` file. Make sure there is always a corresponding
- milestone when you change that version number.
-
-#. Add a new section at the top of ``NEWS`` about the new release,
- including its version number and the headings from
- ``NEWS-template.txt``.
-
#. Send mail to the list with the key dates, who will be the release
manager, and the main themes or targeted bugs. Ask people to nominate
objectives, or point out any high-risk things that are best done early,
@@ -71,7 +62,7 @@
bzr branch trunk prepare-1.14
#. Configure pqm-submit for this branch, with a section like this (where
- x.y is the version to release).
+ x.y is the version to release). **Or use hydrazine for easy use**
``~/.bazaar/locations.conf``::
[/home/mbp/bzr/prepare-x.y]
@@ -85,6 +76,29 @@
Please see <http://doc.bazaar-vcs.org/developers/HACKING.html#an-overview-of-pqm>
for more details on PQM
+#. Update the version number in the ``bzr`` script, and the
+ ``bzrlib/__init__.py`` file::
+
+ version_info = (x, y, z, 'dev', 0)
+
+#. Add a new section at the top of ``NEWS`` about the new release,
+ including its version number and the headings from
+ ``NEWS-template.txt``.
+
+#. Commit this and send it to PQM.
+
+
+Doing a particular release
+==========================
+
+Update the source code
+----------------------
+
+#. Check that there is a milestone for the release you're doing. If there
+ is no milestone it indicates a process problem - make the milestone but
+ also mail the list to raise this issue in our process. Milestones are
+ found at <https://launchpad.net/bzr/+milestone/x.y.z>.
+
#. In the release branch, update ``version_info`` in ``./bzrlib/__init__.py``.
Make sure the corresponding milestone exists.
Double check that ./bzr ``_script_version`` matches ``version_info``. Check
@@ -92,40 +106,37 @@
For beta releases use::
+ version_info = (2, 1, 0, 'beta', SERIAL)
+
+ For instance 2.1b1::
+
version_info = (2, 1, 0, 'beta', 1)
-
For release candidates use::
- version_info = (2, 0, 1, 'candidate', 1)
-
-
-Starting the release phase
---------------------------
-
-#. Create a new milestone at <https://launchpad.net/bzr/x.y/+addmilestone>
- for the beta release or release candidate if you haven't already.
-
-#. Add the date and release number to ``./NEWS``
-
- Depending on whether you're doing a beta or a bugfix release, you'll
- have to create a NEWS section for your release in the right
- place. Most of the time, the new section is at the top of the file
- (look what have been done for the various 2.0x and 2.1.0bx releases).
- The rule is to keep the sections sorted by date. You'll need to be
- cautious when merging back to trunk to respect that.
+ version_info = (2, 0, 1, 'candidate', SERIAL)
+
+ For stable releases use::
+
+ version_info = (2, 1, 2, 'final', 0)
+
+#. Check the release number in ``./NEWS``
+
+ Fill out the date and a description of the release under the existing
+ header. If there isn't one, follow the above for using the NEWS
+ template.
+
+ See *2.1.1* or similar for an example of what this looks like.
#. To check that all bugs mentioned in ``./NEWS`` are actually marked as
closed in Launchpad, you can run ``tools/check-newsbugs.py``::
./tools/check-newsbugs.py NEWS
- (But note there can be some false positives, and this script may be
+ (But note there will be many false positives, and this script may be
flaky <https://bugs.edge.launchpad.net/bzr/+bug/354985>. Don't let
this slow you down too much.)
-#. Summarize into one or two paragraphs what's new in this release.
-
#. Commit these changes to the release branch, using a command like::
bzr commit -m "Release 1.14."
@@ -170,7 +181,7 @@
bzr tag bzr-1.14
-#. Push those changes to a bzr reposistory that is public and accessible on
+#. Push those changes to a bzr repository that is public and accessible on
the Internet. PQM will pull from this repository when it attempts to merge
your changes. Then submit those changes to PQM for merge into the
appropriate release branch::
@@ -178,6 +189,11 @@
bzr push
bzr pqm-submit -m "(mbp) prepare 1.14"
+ Or with hydrazine::
+
+ bzr lp-propose -m "Release 1.14" --approve lp:bzr/1.14
+ feed-pqm bzr
+
#. When PQM succeeds, pull down the master release branch.
@@ -199,15 +215,24 @@
disable the faulty plugins one by one until you get no more
failures.
+ Remember that PQM has just tested everything too, this step is
+ particularly testing that the pyrex extensions, which are updated
+ by your local pyrex version when you run make dist, are in good
+ shape.
+
Publishing the source tarball
-----------------------------
#. Go to the relevant milestone page in Launchpad.
-#. Within that release, upload the source tarball and the GPG
- signature. Or, if you prefer, use the
- ``tools/packaging/lp-upload-release`` script to do this.
+#. Create a release of the milestone, and upload the source tarball and
+ the GPG signature. Or, if you prefer, use the
+ ``tools/packaging/lp-upload-release`` script to do this. Note that
+ this changes what the download widget on the Launchpad bzr home
+ page shows, so don't stop the release process yet, or platform binary
+ installers won't be made and the download list will stay very small!
+ <https://bugs.edge.launchpad.net/launchpad/+bug/586445>
Announcing the source freeze
@@ -219,6 +244,15 @@
release.
+Kick off the next cycle
+-----------------------
+
+#. To let developers work on the next release, do
+ `At the start of a release cycle` now.
+
+#. Pause for a few days.
+
+
Publishing the release
----------------------
@@ -227,11 +261,7 @@
we have a releasable product. The next step is to make it generally
available to the world.
-go to the release
-
-#. Within that release, upload the source tarball and zipfile and the GPG
- signature. Or, if you prefer, use the
- ``tools/packaging/lp-upload-release`` script to do this.
+#. Go to the release web page at <https://launchpad.net/bzr/x.y/x.y.z>
#. Link from http://bazaar-vcs.org/SourceDownloads to the tarball and
signature.
@@ -270,7 +300,7 @@
The announce mail will look something like this::
- Subject: bzr x.yy released!
+ Subject: bzr x.y.z released!
<<Summary paragraph from news>>
@@ -318,6 +348,9 @@
Merging the released code back to trunk
---------------------------------------
+The rule is to keep ``NEWS`` sections sorted by date. You'll need to
+review the merge and make sure that that is respected.
+
Merge the release branch back into the trunk. Check that changes in NEWS
were merged into the right sections. If it's not already done, advance
the version number in ``bzr`` and ``bzrlib/__init__.py``. Submit this
@@ -327,7 +360,7 @@
created the corresponding milestone to ensure the continuity in bug
targeting or nominating. Depending on the change, you may even have to
create a new series (if your change the major or minor release number), in
-that case go to `Starting a cycle` and follow the instructions from there.
+that case go to `At the start of a release cycle` and follow the instructions from there.
You should also merge (not pull) the release branch into
``lp:~bzr/bzr/current``, so that branch contains the current released code
@@ -341,8 +374,8 @@
candidate, you're not finished yet. Another beta or candidate or
hopefully a final release is still to come.
-The process is the same as for the first release. Goto `Starting the
-release phase`_ and follow the instructions again. Some details change
+The process is the same as for the first release. Goto `Doing a
+particular release`_ and follow the instructions again. Some details change
between beta, candidate and final releases, but they should be
documented. If the instructions aren't clear enough, please fix them.
More information about the bazaar-commits
mailing list