/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
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
215
go to the release
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
216
3778.3.3 by Martin Pool
Build zip file from 'make dist' and document this; also tweak standard announcement mail
217
#. Within that release, upload the source tarball and zipfile and the GPG
218
   signature.  Or, if you prefer, use the
219
   ``tools/packaging/lp-upload-release`` script to do this.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
220
4634.67.1 by Ian Clatworthy
update release documentation to mention the new website
221
#. Link from http://bazaar-vcs.org/SourceDownloads to the tarball and
222
   signature.
223
224
#. Announce on the `Bazaar website <http://bazaar-vcs.org/>`_.
225
   This page is edited via the lp:bzr-website branch. (Changes
226
   pushed to this branch are refreshed by a cron job on escudero.)
227
228
#. Announce on the `Bazaar wiki <http://bazaar-vcs.org/Welcome>`_.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
229
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
230
#. Check that the documentation for this release is available in
231
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the
3778.2.1 by Martin Pool
Updated release process documentation.
232
   branch is created, by a cron script ``update-bzr-docs`` on
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
233
   ``escudero``. As of today (2009-08-27) ``igc`` manually updates the
234
   pretty version of it.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
235
236
237
Announcing the release
238
----------------------
239
240
Now that the release is publicly available, tell people about it.
241
3778.2.1 by Martin Pool
Updated release process documentation.
242
#. Make an announcement mail.
243
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
244
   For release candidates or beta releases, this is sent to the ``bazaar``
245
   list only to inform plugin authors and package or installer managers.
246
247
   Once the installers are available, the mail can be sent to the
248
   ``bazaar-announce`` list too.
249
250
   For final releases, it should also be cc'd to ``info-gnu@gnu.org``,
251
   ``python-announce-list@python.org``, ``bug-directory@gnu.org``.  
252
253
   In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``,
254
   so that people who reply to the announcement don't spam other lists.
3778.2.1 by Martin Pool
Updated release process documentation.
255
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.
256
   The announce mail will look something like this::
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
257
   
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.
258
      Subject: bzr x.yy released!
259
      
260
      <<Summary paragraph from news>>
261
     
262
      The Bazaar team is happy to announce availability of a new 
263
      release of the bzr adaptive version control system.
4439.1.6 by Martin Pool
Tweak text about GNU in release template
264
      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.
265
     
266
      Thanks to everyone who contributed patches, suggestions, and
267
      feedback.
268
      
269
      Bazaar is now available for download from 
270
      http://bazaar-vcs.org/Download as a source tarball; packages 
271
      for various systems will be available soon.
272
      
273
      <<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
274
4439.1.1 by Martin Pool
Release mails should mention bzr's a GNU project
275
   Feel free to tweak this to your taste.
276
3815.1.1 by Martin Pool
Add Launchpad announcement to the release process
277
#. Make an announcement through <https://launchpad.net/bzr/+announce>
278
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
279
#. Update the IRC channel topic. Use the ``/topic`` command to do this,
280
   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
281
282
#. Announce on http://freshmeat.net/projects/bzr/
283
   
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
284
   This should be done for beta releases, release candidates and final
285
   releases. If you do not have a Freshmeat account yet, ask one of the
286
   existing admins.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
287
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
288
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
289
   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
290
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
291
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
292
   done by running ::
293
294
       python setup.py register
295
296
   Remember to check the results afterwards.
297
3408.1.3 by Martin Pool
More release process updates
298
   To be able to register the release you must create an account on
299
   <http://pypi.python.org/pypi> and have one of the existing owners of
300
   the project add you to the group.
301
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
302
3383.2.5 by Martin Pool
merge trunk
303
Merging the released code back to trunk
304
---------------------------------------
305
306
Merge the release branch back into the trunk.  Check that changes in NEWS
307
were merged into the right sections.  If it's not already done, advance
308
the version number in ``bzr`` and ``bzrlib/__init__.py``.  Submit this
309
back into pqm for bzr.dev.
310
4070.10.2 by Martin Pool
doc to maintain bzr/current branch
311
You should also merge (not pull) the release branch into
312
``lp:~bzr/bzr/current``, so that branch contains the current released code
313
at any time.
314
3383.2.5 by Martin Pool
merge trunk
315
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
316
See also
317
--------
318
4070.10.3 by Martin Pool
Small ReST syntax fix
319
* `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
320
  packages.
321
* `Bazaar Developer Document Catalog <index.html>`_
322
* `Development cycles <cycle.html>`_: things that happen during the cycle
323
  before the actual release.
3464.3.6 by Martin Pool
Release process updates
324
325
..
3464.3.8 by Martin Pool
Doc updates re PPAs
326
   vim: filetype=rst textwidth=74 ai shiftwidth=4