/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
1
Releasing Bazaar
2
================
3
4
This document describes the processes for making and announcing a Bazaar
3778.2.1 by Martin Pool
Updated release process documentation.
5
release, and managing the release process.  This is just one phase of the 
4634.39.36 by Ian Clatworthy
Get plain-style documentation generation working again
6
`overall development cycle <http://doc.bazaar-vcs.org/developers/cycle.html>`_,
7
but it's the most complex part.
3778.2.1 by Martin Pool
Updated release process documentation.
8
This document gives a checklist you can follow from start to end in one
9
go.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
10
11
.. contents::
12
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
13
4632.2.1 by Martin Pool
Release docs: bzr-pqm is a precondition not part of the every-release process
14
Preconditions
15
-------------
16
17
#. Download the pqm plugin and install it into your ``~/.bazaar/plugins``::
18
19
     bzr branch lp:bzr-pqm ~/.bazaar/plugins/pqm
20
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
21
22
Starting a cycle
23
----------------
24
25
To start a new release cycle:
26
27
#. Create a new series at <https://launchpad.net/bzr/+addseries>. There is one
28
   series for every *x.y* release.
29
4675.2.1 by Robert Collins
Milestones language tightning, internal consistency.
30
#. Go to the series web page at <https://launchpad.net/bzr/x.y>
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
31
32
#. Create a new release at
4675.2.1 by Robert Collins
Milestones language tightning, internal consistency.
33
   <https://launchpad.net/bzr/x.y/+addrelease> and add
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
34
   information about this release. We will not use it yet, but it
35
   will be available for targeting or nominating bugs.
36
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
37
#. We create a new pqm-controlled branch for this release series, by
38
   asking a Canonical sysadmin.  
39
   This branch means that from the first release beta or candidate onwards,
40
   general development continues on the trunk, and only
41
   specifically-targeted fixes go into the release branch.
42
4675.2.1 by Robert Collins
Milestones language tightning, internal consistency.
43
#. Add milestones at <https://edge.launchpad.net/bzr/x.y/+addmilestone> to
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
44
   that series for the beta release, release candidate and the final release,
45
   and their expected dates.
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
46
47
#. Update the version number in the ``bzr`` script, and the
4634.13.3 by Vincent Ladeuil
Fix rst formatting issues.
48
   ``bzrlib/__init__.py`` file.
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
49
50
#. Send mail to the list with the key dates, who will be the release
51
   manager, and the main themes or targeted bugs.  Ask people to nominate
52
   objectives, or point out any high-risk things that are best done early,
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
53
   or that interact with other changes. This is called the metronome mail
54
   and as RM you're supposed to send other metronome mails at your rythm.
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
55
56
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
57
Starting the release phase
58
--------------------------
59
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
60
When it's time to make the first beta release or release candidate:
61
4675.2.1 by Robert Collins
Milestones language tightning, internal consistency.
62
#. Make a beta release or release candidate. The milestone for this
63
   candidate will already exist (see Starting a cycle above).
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
64
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
65
Preparing the tree for release
66
------------------------------
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
67
3464.3.6 by Martin Pool
Release process updates
68
#. Make a local branch for preparing this release.  (Only for the first 
69
   release in a series, otherwise you should already have a branch.) ::
70
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
71
     bzr branch trunk prepare-1.14
72
4675.2.2 by Robert Collins
Replace bazaar-vcs.org/bzr/ references with launchpad hosting urls in developer docs.
73
#. Configure pqm-submit for this branch, with a section like this (where
74
   x.y is the version to release).
3464.3.6 by Martin Pool
Release process updates
75
   ``~/.bazaar/locations.conf``::
76
4675.2.2 by Robert Collins
Replace bazaar-vcs.org/bzr/ references with launchpad hosting urls in developer docs.
77
	[/home/mbp/bzr/prepare-x.y]
3464.3.6 by Martin Pool
Release process updates
78
	pqm_email = Canonical PQM <pqm@bazaar-vcs.org>
4675.2.2 by Robert Collins
Replace bazaar-vcs.org/bzr/ references with launchpad hosting urls in developer docs.
79
	submit_branch = http://bazaar.launchpad.net/~bzr-pqm/bzr/x.y
80
	public_branch = http://bazaar.example.com/prepare-x.y
3464.3.6 by Martin Pool
Release process updates
81
	submit_to = bazaar@lists.canonical.com
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
82
	smtp_server = mail.example.com:25
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
83
4634.39.12 by Ian Clatworthy
pdf generation of the Developer Guide
84
    Please see <http://doc.bazaar-vcs.org/developers/HACKING.html#an-overview-of-pqm>
4070.10.13 by Martin Pool
Remove or correct broken links
85
    for more details on PQM
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
86
4152.2.7 by Robert J. Tanner
Added explicit instructions to check ./bzr _script_version ./bzrlib/__init__.py
87
#. In the release branch, update  ``version_info`` in ``./bzrlib/__init__.py``.
88
   Double check that ./bzr ``_script_version`` matches ``version_info``. Check
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
89
   the output of ``bzr --version``.
90
91
   For beta releases use::
92
93
       version_info = (2, 1, 0, 'beta', 1)
94
95
96
   For release candidates use::
97
98
       version_info = (2, 0, 1, 'candidate', 1)
99
3778.2.1 by Martin Pool
Updated release process documentation.
100
101
#. Add the date and release number to ``./NEWS``
102
3966.2.6 by Jelmer Vernooij
Mention check-newsbugs.py in the release document.
103
#. To check that all bugs mentioned in ``./NEWS`` are actually marked as
104
   closed in Launchpad, you can run ``tools/check-newsbugs.py``::
105
106
     ./tools/check-newsbugs.py NEWS
107
4595.6.2 by Martin Pool
Guidance on using check-newsbugs when releasing
108
   (But note there can be some false positives, and this script may be
4632.2.2 by Martin Pool
Minor ReST tweak
109
   flaky <https://bugs.edge.launchpad.net/bzr/+bug/354985>.  Don't let
110
   this slow you down too much.)
4595.6.2 by Martin Pool
Guidance on using check-newsbugs when releasing
111
3778.2.1 by Martin Pool
Updated release process documentation.
112
#. Summarize into one or two paragraphs what's new in this release.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
113
114
#. Commit these changes to the release branch, using a command like::
115
    
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
116
     bzr commit -m "Release 1.14." 
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
117
   
118
   The diff before you commit will be something like::
119
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
120
     === modified file 'NEWS'
121
     --- NEWS        2008-09-17 23:09:18 +0000
122
     +++ NEWS        2008-09-23 16:14:54 +0000
123
     @@ -4,6 +4,23 @@
124
     
125
      .. contents::
126
     
127
     +bzr 1.7 2008-09-23
128
     +------------------
129
     +
130
     +This release includes many bug fixes and a few performance and feature
131
     +improvements.  ``bzr rm`` will now scan for missing files and remove them,
132
     +like how ``bzr add`` scans for unknown files and adds them. A bit more
133
     +polish has been applied to the stacking code. The b-tree indexing code has
134
     +been brought in, with an eye on using it in a future repository format.
135
     +There are only minor installer changes since bzr-1.7rc2.
136
     +
137
      bzr 1.7rc2 2008-09-17
138
      ---------------------
139
     
140
     
141
     === modified file 'bzrlib/__init__.py'
142
     --- bzrlib/__init__.py  2008-09-16 21:39:28 +0000
143
     +++ bzrlib/__init__.py  2008-09-23 16:14:54 +0000
144
     @@ -41,7 +41,7 @@
145
      # Python version 2.0 is (2, 0, 0, 'final', 0)."  Additionally we use a
146
      # releaselevel of 'dev' for unreleased under-development code.
147
     
148
     -version_info = (1, 7, 0, 'candidate', 2)
149
     +version_info = (1, 7, 0, 'final', 0)
150
     
151
     
152
      # API compatibility version: bzrlib is currently API compatible with 1.7.
153
      
4634.13.3 by Vincent Ladeuil
Fix rst formatting issues.
154
#. Tag the new release::
3997.2.1 by Jelmer Vernooij
Add tagging to the release process.
155
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
156
     bzr tag bzr-1.14
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
157
4152.2.2 by Robert J. Tanner
Updated to releasing.txt based on my experiences as the release manager for
158
#. Push those changes to a bzr reposistory that is public and accessible on
159
   the Internet. PQM will pull from this repository when it attempts to merge
160
   your changes. Then submit those changes to PQM for merge into the
161
   appropriate release branch::
3464.3.6 by Martin Pool
Release process updates
162
 
163
     bzr push
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
164
     bzr pqm-submit -m "(mbp) prepare 1.14"
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
165
166
#. When PQM succeeds, pull down the master release branch.
167
3464.3.6 by Martin Pool
Release process updates
168
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
169
Making the source tarball
170
-------------------------
171
3408.1.3 by Martin Pool
More release process updates
172
#. Change into the source directory and run ::
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
173
  
174
     make dist
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
175
3408.1.3 by Martin Pool
More release process updates
176
#. Now we'll try expanding this tarball and running the test suite
177
   to check for packaging problems::
178
 
179
     make check-dist-tarball
3383.2.5 by Martin Pool
merge trunk
180
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
181
   You may encounter failures while running the test suite caused
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
182
   by your locally installed plugins. Use your own judgment to
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
183
   decide if you can release with these failures. When in doubt,
184
   disable the faulty plugins one by one until you get no more
185
   failures.
186
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
187
4676.6.1 by mbp at sourcefrog
Updates to release process docs.
188
Publishing the source tarball
189
-----------------------------
190
191
#. Go to the relevant milestone page in Launchpad.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
192
4676.7.2 by Martin Pool
Remove mention of source zip from release process doc
193
#. Within that release, upload the source tarball and the GPG
3778.3.3 by Martin Pool
Build zip file from 'make dist' and document this; also tweak standard announcement mail
194
   signature.  Or, if you prefer, use the
195
   ``tools/packaging/lp-upload-release`` script to do this.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
196
4676.6.1 by mbp at sourcefrog
Updates to release process docs.
197
198
Announcing the source freeze
199
----------------------------
200
201
#. Post to the ``bazaar`` list, saying that the source has been frozen.
202
   This is the cue for platform maintainers and plugin authors to update
203
   their code.  This is done before the general public announcement of the
204
   release.
205
206
207
Publishing the release
208
----------------------
209
210
There is normally a delay of a few days after the source freeze to allow
211
for binaries to be built on various platforms.  Once they have been built,
212
we have a releasable product.  The next step is to make it generally
213
available to the world.
214
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
215
#. Link from http://bazaar-vcs.org/Download to the tarball and signature.
216
3778.2.1 by Martin Pool
Updated release process documentation.
217
#. Announce on the `Bazaar home page <http://bazaar-vcs.org/>`_.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
218
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
219
#. Check that the documentation for this release is available in
220
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the
3778.2.1 by Martin Pool
Updated release process documentation.
221
   branch is created, by a cron script ``update-bzr-docs`` on
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
222
   ``escudero``. As of today (2009-08-27) ``igc`` manually updates the
223
   pretty version of it.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
224
225
226
Announcing the release
227
----------------------
228
229
Now that the release is publicly available, tell people about it.
230
3778.2.1 by Martin Pool
Updated release process documentation.
231
#. Make an announcement mail.
232
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
233
   For release candidates or beta releases, this is sent to the ``bazaar``
234
   list only to inform plugin authors and package or installer managers.
235
236
   Once the installers are available, the mail can be sent to the
237
   ``bazaar-announce`` list too.
238
239
   For final releases, it should also be cc'd to ``info-gnu@gnu.org``,
240
   ``python-announce-list@python.org``, ``bug-directory@gnu.org``.  
241
242
   In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``,
243
   so that people who reply to the announcement don't spam other lists.
3778.2.1 by Martin Pool
Updated release process documentation.
244
4439.1.2 by Martin Pool
Change release message template to a preformatted block so you can more easily copy and paste it into a mail.
245
   The announce mail will look something like this::
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
246
   
4439.1.2 by Martin Pool
Change release message template to a preformatted block so you can more easily copy and paste it into a mail.
247
      Subject: bzr x.yy released!
248
      
249
      <<Summary paragraph from news>>
250
     
251
      The Bazaar team is happy to announce availability of a new 
252
      release of the bzr adaptive version control system.
4439.1.6 by Martin Pool
Tweak text about GNU in release template
253
      Bazaar is part of the GNU system <http://gnu.org/>.
4439.1.2 by Martin Pool
Change release message template to a preformatted block so you can more easily copy and paste it into a mail.
254
     
255
      Thanks to everyone who contributed patches, suggestions, and
256
      feedback.
257
      
258
      Bazaar is now available for download from 
259
      http://bazaar-vcs.org/Download as a source tarball; packages 
260
      for various systems will be available soon.
261
      
262
      <<NEWS section from this release back to the last major release>>
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
263
4439.1.1 by Martin Pool
Release mails should mention bzr's a GNU project
264
   Feel free to tweak this to your taste.
265
3815.1.1 by Martin Pool
Add Launchpad announcement to the release process
266
#. Make an announcement through <https://launchpad.net/bzr/+announce>
267
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
268
#. Update the IRC channel topic. Use the ``/topic`` command to do this,
269
   ensuring the new topic text keeps the project name, web site link, etc.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
270
271
#. Announce on http://freshmeat.net/projects/bzr/
272
   
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
273
   This should be done for beta releases, release candidates and final
274
   releases. If you do not have a Freshmeat account yet, ask one of the
275
   existing admins.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
276
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
277
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
278
   be done for final releases but not for beta releases or Release Candidates.
3497.3.1 by Martin Pool
Add note to update GNU directory
279
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
280
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
281
   done by running ::
282
283
       python setup.py register
284
285
   Remember to check the results afterwards.
286
3408.1.3 by Martin Pool
More release process updates
287
   To be able to register the release you must create an account on
288
   <http://pypi.python.org/pypi> and have one of the existing owners of
289
   the project add you to the group.
290
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
291
3383.2.5 by Martin Pool
merge trunk
292
Merging the released code back to trunk
293
---------------------------------------
294
295
Merge the release branch back into the trunk.  Check that changes in NEWS
296
were merged into the right sections.  If it's not already done, advance
297
the version number in ``bzr`` and ``bzrlib/__init__.py``.  Submit this
298
back into pqm for bzr.dev.
299
4070.10.2 by Martin Pool
doc to maintain bzr/current branch
300
You should also merge (not pull) the release branch into
301
``lp:~bzr/bzr/current``, so that branch contains the current released code
302
at any time.
303
3383.2.5 by Martin Pool
merge trunk
304
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
305
See also
306
--------
307
4070.10.3 by Martin Pool
Small ReST syntax fix
308
* `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
309
  packages.
310
* `Bazaar Developer Document Catalog <index.html>`_
311
* `Development cycles <cycle.html>`_: things that happen during the cycle
312
  before the actual release.
3464.3.6 by Martin Pool
Release process updates
313
314
..
3464.3.8 by Martin Pool
Doc updates re PPAs
315
   vim: filetype=rst textwidth=74 ai shiftwidth=4