/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
4634.7.1 by Robert Collins
Merge and cherrypick outstanding 2.0 relevant patches from bzr.dev: Up to rev
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
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
30
#. Go to the series web page at <https://launchpad.net/bzr/2.0>
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
31
32
#. Create a new release at
33
   <https://launchpad.net/bzr/2.0/+addrelease> and add
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
43
#. Add milestones at <https://edge.launchpad.net/bzr/2.0/+addmilestone> to
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
4634.13.3 by Vincent Ladeuil
Fix rst formatting issues.
62
#. Create a new milestone at <https://launchpad.net/bzr/2.0/+addmilestone>
63
   for the beta release or release candidate.
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
64
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
65
#. Make a beta release or release candidate.
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
66
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
67
Preparing the tree for release
68
------------------------------
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
69
3464.3.6 by Martin Pool
Release process updates
70
#. Make a local branch for preparing this release.  (Only for the first 
71
   release in a series, otherwise you should already have a branch.) ::
72
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
73
     bzr branch trunk prepare-1.14
74
3464.3.6 by Martin Pool
Release process updates
75
#. Configure pqm-submit for this branch, with a section like this in
76
   ``~/.bazaar/locations.conf``::
77
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
78
	[/home/mbp/bzr/prepare-1.14]
3464.3.6 by Martin Pool
Release process updates
79
	pqm_email = Canonical PQM <pqm@bazaar-vcs.org>
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
80
	submit_branch = lp:bzr/2.0
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
81
	public_branch = http://bazaar.example.com/prepare-2.0
3464.3.6 by Martin Pool
Release process updates
82
	submit_to = bazaar@lists.canonical.com
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
83
	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
84
4634.39.12 by Ian Clatworthy
pdf generation of the Developer Guide
85
    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
86
    for more details on PQM
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
87
4152.2.7 by Robert J. Tanner
Added explicit instructions to check ./bzr _script_version ./bzrlib/__init__.py
88
#. In the release branch, update  ``version_info`` in ``./bzrlib/__init__.py``.
89
   Double check that ./bzr ``_script_version`` matches ``version_info``. Check
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
90
   the output of ``bzr --version``.
91
92
   For beta releases use::
93
94
       version_info = (2, 1, 0, 'beta', 1)
95
96
97
   For release candidates use::
98
99
       version_info = (2, 0, 1, 'candidate', 1)
100
3778.2.1 by Martin Pool
Updated release process documentation.
101
102
#. Add the date and release number to ``./NEWS``
103
3966.2.6 by Jelmer Vernooij
Mention check-newsbugs.py in the release document.
104
#. To check that all bugs mentioned in ``./NEWS`` are actually marked as
105
   closed in Launchpad, you can run ``tools/check-newsbugs.py``::
106
107
     ./tools/check-newsbugs.py NEWS
108
4595.6.2 by Martin Pool
Guidance on using check-newsbugs when releasing
109
   (But note there can be some false positives, and this script may be
4634.7.1 by Robert Collins
Merge and cherrypick outstanding 2.0 relevant patches from bzr.dev: Up to rev
110
   flaky <https://bugs.edge.launchpad.net/bzr/+bug/354985>.  Don't let
111
   this slow you down too much.)
4595.6.2 by Martin Pool
Guidance on using check-newsbugs when releasing
112
3778.2.1 by Martin Pool
Updated release process documentation.
113
#. 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
114
115
#. Commit these changes to the release branch, using a command like::
116
    
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
117
     bzr commit -m "Release 1.14." 
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
118
   
119
   The diff before you commit will be something like::
120
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
121
     === modified file 'NEWS'
122
     --- NEWS        2008-09-17 23:09:18 +0000
123
     +++ NEWS        2008-09-23 16:14:54 +0000
124
     @@ -4,6 +4,23 @@
125
     
126
      .. contents::
127
     
128
     +bzr 1.7 2008-09-23
129
     +------------------
130
     +
131
     +This release includes many bug fixes and a few performance and feature
132
     +improvements.  ``bzr rm`` will now scan for missing files and remove them,
133
     +like how ``bzr add`` scans for unknown files and adds them. A bit more
134
     +polish has been applied to the stacking code. The b-tree indexing code has
135
     +been brought in, with an eye on using it in a future repository format.
136
     +There are only minor installer changes since bzr-1.7rc2.
137
     +
138
      bzr 1.7rc2 2008-09-17
139
      ---------------------
140
     
141
     
142
     === modified file 'bzrlib/__init__.py'
143
     --- bzrlib/__init__.py  2008-09-16 21:39:28 +0000
144
     +++ bzrlib/__init__.py  2008-09-23 16:14:54 +0000
145
     @@ -41,7 +41,7 @@
146
      # Python version 2.0 is (2, 0, 0, 'final', 0)."  Additionally we use a
147
      # releaselevel of 'dev' for unreleased under-development code.
148
     
149
     -version_info = (1, 7, 0, 'candidate', 2)
150
     +version_info = (1, 7, 0, 'final', 0)
151
     
152
     
153
      # API compatibility version: bzrlib is currently API compatible with 1.7.
154
      
4634.13.3 by Vincent Ladeuil
Fix rst formatting issues.
155
#. Tag the new release::
3997.2.1 by Jelmer Vernooij
Add tagging to the release process.
156
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
157
     bzr tag bzr-1.14
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
158
4152.2.2 by Robert J. Tanner
Updated to releasing.txt based on my experiences as the release manager for
159
#. Push those changes to a bzr reposistory that is public and accessible on
160
   the Internet. PQM will pull from this repository when it attempts to merge
161
   your changes. Then submit those changes to PQM for merge into the
162
   appropriate release branch::
3464.3.6 by Martin Pool
Release process updates
163
 
164
     bzr push
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
165
     bzr pqm-submit -m "(mbp) prepare 1.14"
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
166
167
#. When PQM succeeds, pull down the master release branch.
168
3464.3.6 by Martin Pool
Release process updates
169
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
170
Making the source tarball
171
-------------------------
172
3408.1.3 by Martin Pool
More release process updates
173
#. 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
174
  
175
     make dist
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
176
3778.3.3 by Martin Pool
Build zip file from 'make dist' and document this; also tweak standard announcement mail
177
   This also makes a zip file, which is easier to access on Microsoft
178
   Windows.
179
3408.1.3 by Martin Pool
More release process updates
180
#. Now we'll try expanding this tarball and running the test suite
181
   to check for packaging problems::
182
 
183
     make check-dist-tarball
3383.2.5 by Martin Pool
merge trunk
184
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
185
   You may encounter failures while running the test suite caused
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
186
   by your locally installed plugins. Use your own judgment to
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
187
   decide if you can release with these failures. When in doubt,
188
   disable the faulty plugins one by one until you get no more
189
   failures.
190
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
191
192
Publishing the release
193
----------------------
194
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
195
Now you have the beta or releasable product.  The next step is making it
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
196
available to the world.
197
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
198
go to the release
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
199
3778.3.3 by Martin Pool
Build zip file from 'make dist' and document this; also tweak standard announcement mail
200
#. Within that release, upload the source tarball and zipfile and the GPG
201
   signature.  Or, if you prefer, use the
202
   ``tools/packaging/lp-upload-release`` script to do this.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
203
4634.67.1 by Ian Clatworthy
update release documentation to mention the new website
204
#. Link from http://bazaar-vcs.org/SourceDownloads to the tarball and
205
   signature.
206
207
#. Announce on the `Bazaar website <http://bazaar-vcs.org/>`_.
208
   This page is edited via the lp:bzr-website branch. (Changes
209
   pushed to this branch are refreshed by a cron job on escudero.)
210
211
#. Announce on the `Bazaar wiki <http://bazaar-vcs.org/Welcome>`_.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
212
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
213
#. Check that the documentation for this release is available in
214
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the
3778.2.1 by Martin Pool
Updated release process documentation.
215
   branch is created, by a cron script ``update-bzr-docs`` on
4634.13.2 by Vincent Ladeuil
Fixed as per Martin's review.
216
   ``escudero``. As of today (2009-08-27) ``igc`` manually updates the
217
   pretty version of it.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
218
219
220
Announcing the release
221
----------------------
222
223
Now that the release is publicly available, tell people about it.
224
3778.2.1 by Martin Pool
Updated release process documentation.
225
#. Make an announcement mail.
226
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
227
   For release candidates or beta releases, this is sent to the ``bazaar``
228
   list only to inform plugin authors and package or installer managers.
229
230
   Once the installers are available, the mail can be sent to the
231
   ``bazaar-announce`` list too.
232
233
   For final releases, it should also be cc'd to ``info-gnu@gnu.org``,
234
   ``python-announce-list@python.org``, ``bug-directory@gnu.org``.  
235
236
   In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``,
237
   so that people who reply to the announcement don't spam other lists.
3778.2.1 by Martin Pool
Updated release process documentation.
238
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.
239
   The announce mail will look something like this::
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
240
   
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.
241
      Subject: bzr x.yy released!
242
      
243
      <<Summary paragraph from news>>
244
     
245
      The Bazaar team is happy to announce availability of a new 
246
      release of the bzr adaptive version control system.
4439.1.6 by Martin Pool
Tweak text about GNU in release template
247
      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.
248
     
249
      Thanks to everyone who contributed patches, suggestions, and
250
      feedback.
251
      
252
      Bazaar is now available for download from 
253
      http://bazaar-vcs.org/Download as a source tarball; packages 
254
      for various systems will be available soon.
255
      
256
      <<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
257
4439.1.1 by Martin Pool
Release mails should mention bzr's a GNU project
258
   Feel free to tweak this to your taste.
259
3815.1.1 by Martin Pool
Add Launchpad announcement to the release process
260
#. Make an announcement through <https://launchpad.net/bzr/+announce>
261
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
262
#. Update the IRC channel topic. Use the ``/topic`` command to do this,
263
   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
264
265
#. Announce on http://freshmeat.net/projects/bzr/
266
   
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
267
   This should be done for beta releases, release candidates and final
268
   releases. If you do not have a Freshmeat account yet, ask one of the
269
   existing admins.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
270
4634.13.1 by Vincent Ladeuil
Feedback on the 2.0rc1 release.
271
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
272
   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
273
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
274
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
275
   done by running ::
276
277
       python setup.py register
278
279
   Remember to check the results afterwards.
280
3408.1.3 by Martin Pool
More release process updates
281
   To be able to register the release you must create an account on
282
   <http://pypi.python.org/pypi> and have one of the existing owners of
283
   the project add you to the group.
284
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
285
3383.2.5 by Martin Pool
merge trunk
286
Merging the released code back to trunk
287
---------------------------------------
288
289
Merge the release branch back into the trunk.  Check that changes in NEWS
290
were merged into the right sections.  If it's not already done, advance
291
the version number in ``bzr`` and ``bzrlib/__init__.py``.  Submit this
292
back into pqm for bzr.dev.
293
4070.10.2 by Martin Pool
doc to maintain bzr/current branch
294
You should also merge (not pull) the release branch into
295
``lp:~bzr/bzr/current``, so that branch contains the current released code
296
at any time.
297
3383.2.5 by Martin Pool
merge trunk
298
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
299
See also
300
--------
301
4070.10.3 by Martin Pool
Small ReST syntax fix
302
* `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
303
  packages.
304
* `Bazaar Developer Document Catalog <index.html>`_
305
* `Development cycles <cycle.html>`_: things that happen during the cycle
306
  before the actual release.
3464.3.6 by Martin Pool
Release process updates
307
308
..
3464.3.8 by Martin Pool
Doc updates re PPAs
309
   vim: filetype=rst textwidth=74 ai shiftwidth=4