~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
     bzr branch lp:bzr-pqm ~/.bazaar/plugins/pqm
19
19
 
20
 
Starting the release phase
21
 
--------------------------
22
 
 
23
 
When it's time to make the release candidate:
 
20
 
 
21
Starting a cycle
 
22
----------------
 
23
 
 
24
To start a new release cycle:
 
25
 
 
26
#. Create a new series at <https://launchpad.net/bzr/+addseries>. There is one
 
27
   series for every *x.y* release.
 
28
 
 
29
#. Go to the series web page at <https://launchpad.net/bzr/2.0>
 
30
 
 
31
#. Create a new release at
 
32
   <https://launchpad.net/bzr/2.0/+addrelease> and add
 
33
   information about this release. We will not use it yet, but it
 
34
   will be available for targeting or nominating bugs.
24
35
 
25
36
#. We create a new pqm-controlled branch for this release series, by
26
37
   asking a Canonical sysadmin.  
27
 
   This branch means that from the first release candidate onwards,
 
38
   This branch means that from the first release beta or candidate onwards,
28
39
   general development continues on the trunk, and only
29
 
   specifically-targetted fixes go into the release.
30
 
 
31
 
#. Register the branch at <https://launchpad.net/products/bzr/+addbranch>
32
 
 
33
 
#. Make a release candidate.
34
 
 
 
40
   specifically-targeted fixes go into the release branch.
 
41
 
 
42
#. Add milestones at <https://edge.launchpad.net/bzr/2.0/+addmilestone> to
 
43
   that series for the beta release, release candidate and the final release,
 
44
   and their expected dates.
 
45
 
 
46
#. Update the version number in the ``bzr`` script, and the
 
47
   ``bzrlib/__init__.py`` file.
 
48
 
 
49
#. Send mail to the list with the key dates, who will be the release
 
50
   manager, and the main themes or targeted bugs.  Ask people to nominate
 
51
   objectives, or point out any high-risk things that are best done early,
 
52
   or that interact with other changes. This is called the metronome mail
 
53
   and as RM you're supposed to send other metronome mails at your rythm.
 
54
 
 
55
 
 
56
Starting the release phase
 
57
--------------------------
 
58
 
 
59
When it's time to make the first beta release or release candidate:
 
60
 
 
61
#. Create a new milestone at <https://launchpad.net/bzr/2.0/+addmilestone>
 
62
   for the beta release or release candidate.
 
63
 
 
64
#. Make a beta release or release candidate.
35
65
 
36
66
Preparing the tree for release
37
67
------------------------------
46
76
 
47
77
        [/home/mbp/bzr/prepare-1.14]
48
78
        pqm_email = Canonical PQM <pqm@bazaar-vcs.org>
49
 
        submit_branch = http://bazaar-vcs.org/bzr/bzr.1.14
50
 
        public_branch = http://bazaar.your-domain.com/bzr
 
79
        submit_branch = lp:bzr/2.0
 
80
        public_branch = http://bazaar.example.com/prepare-2.0
51
81
        submit_to = bazaar@lists.canonical.com
52
 
        smtp_server = mail.your-domain.com:25
 
82
        smtp_server = mail.example.com:25
53
83
 
54
84
    Please see <http://doc.bazaar-vcs.org/latest/developers/HACKING.html#an-overview-of-pqm>
55
85
    for more details on PQM
56
86
 
57
87
#. In the release branch, update  ``version_info`` in ``./bzrlib/__init__.py``.
58
88
   Double check that ./bzr ``_script_version`` matches ``version_info``. Check
59
 
   the output of ``bzr --version``. 
 
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
 
60
100
 
61
101
#. Add the date and release number to ``./NEWS``
62
102
 
141
181
 
142
182
     make check-dist-tarball
143
183
 
 
184
   You may encounter failures while running the test suite caused
 
185
   by your locally installed plugins. Use your own judgment to
 
186
   decide if you can release with these failures. When in doubt,
 
187
   disable the faulty plugins one by one until you get no more
 
188
   failures.
 
189
 
144
190
 
145
191
Publishing the release
146
192
----------------------
147
193
 
148
 
Now you have the releasable product.  The next step is making it
 
194
Now you have the beta or releasable product.  The next step is making it
149
195
available to the world.
150
196
 
151
 
#. In <https://launchpad.net/bzr/> click the "Release series" for this
152
 
   series, to take you to e.g. <https://launchpad.net/bzr/1.14>.  Then
153
 
   click "Register a release", and add information about this release.
 
197
go to the release
154
198
 
155
199
#. Within that release, upload the source tarball and zipfile and the GPG
156
200
   signature.  Or, if you prefer, use the
160
204
 
161
205
#. Announce on the `Bazaar home page <http://bazaar-vcs.org/>`_.
162
206
 
163
 
#. Check that the documentation for this release is available in 
164
 
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the 
 
207
#. Check that the documentation for this release is available in
 
208
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the
165
209
   branch is created, by a cron script ``update-bzr-docs`` on
166
 
   ``escudero``.
 
210
   ``escudero``. As of today (2009-08-27) ``igc`` manually updates the
 
211
   pretty version of it.
167
212
 
168
213
 
169
214
Announcing the release
173
218
 
174
219
#. Make an announcement mail.
175
220
 
176
 
   For release candidates, this is sent to the ``bazaar-announce`` and
177
 
   ``bazaar`` lists.  For final releases, it should also be cc'd to 
178
 
   ``info-gnu@gnu.org``, ``python-announce-list@python.org``, 
179
 
   ``bug-directory@gnu.org``.  In both cases, it is good to set
180
 
   ``Reply-To: bazaar@lists.canonical.com``, so that people who reply to
181
 
   the announcement don't spam other lists.
 
221
   For release candidates or beta releases, this is sent to the ``bazaar``
 
222
   list only to inform plugin authors and package or installer managers.
 
223
 
 
224
   Once the installers are available, the mail can be sent to the
 
225
   ``bazaar-announce`` list too.
 
226
 
 
227
   For final releases, it should also be cc'd to ``info-gnu@gnu.org``,
 
228
   ``python-announce-list@python.org``, ``bug-directory@gnu.org``.  
 
229
 
 
230
   In all cases, it is good to set ``Reply-To: bazaar@lists.canonical.com``,
 
231
   so that people who reply to the announcement don't spam other lists.
182
232
 
183
233
   The announce mail will look something like this::
184
234
   
208
258
 
209
259
#. Announce on http://freshmeat.net/projects/bzr/
210
260
   
211
 
   This should be done for both release candidates and final releases. If
212
 
   you do not have a Freshmeat account yet, ask one of the existing
213
 
   admins.
 
261
   This should be done for beta releases, release candidates and final
 
262
   releases. If you do not have a Freshmeat account yet, ask one of the
 
263
   existing admins.
214
264
 
215
 
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should be done
216
 
for final releases but not for Release Candidates.
 
265
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
 
266
   be done for final releases but not for beta releases or Release Candidates.
217
267
 
218
268
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
219
269
   done by running ::
240
290
at any time.
241
291
 
242
292
 
243
 
Starting a cycle
244
 
----------------
245
 
 
246
 
To start a new release cycle:
247
 
 
248
 
#. Send mail to the list with the key dates, who will be the release
249
 
   manager, and the main themes or targeted bugs.  Ask people to nominate
250
 
   objectives, or point out any high-risk things that are best done early,
251
 
   or that interact with other changes.
252
 
 
253
 
#. Add a new "series" in Launchpad at <https://launchpad.net/bzr/+addseries>.  
254
 
   There is one series for every *x.y* release.
255
 
 
256
 
#. Add milestones to that series for the release candidate and the final
257
 
   release, and their expected dates.
258
 
 
259
 
#. Deactivate old releases and their milestones.
260
 
 
261
 
#. Update the version number in the ``bzr`` script, and the
262
 
   ``bzrlib/__init__.py`` file.
263
 
 
264
 
 
265
293
See also
266
294
--------
267
295