/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 
6
`overall development cycle <cycle.html>`_, but it's the most complex part.
7
This document gives a checklist you can follow from start to end in one
8
go.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
9
10
.. contents::
11
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
12
13
Starting the release phase
14
--------------------------
15
16
When it's time to make the release candidate:
17
4584.2.4 by mbp at sourcefrog
Minor corrections to release docs
18
#. We create a new pqm-controlled branch for this release series, by
19
   asking a Canonical sysadmin.  
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
20
   This branch means that from the first release candidate onwards,
21
   general development continues on the trunk, and only
22
   specifically-targetted fixes go into the release.
23
24
#. Register the branch at <https://launchpad.net/products/bzr/+addbranch>
25
26
#. Make a release candidate.
27
28
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
29
Preparing the tree for release
30
------------------------------
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
31
3464.3.6 by Martin Pool
Release process updates
32
#. Make a local branch for preparing this release.  (Only for the first 
33
   release in a series, otherwise you should already have a branch.) ::
34
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
35
     bzr branch trunk prepare-1.14
36
37
#. Download the pqm plugin and install it into your ``~/.bazaar/plugins``::
38
4152.2.5 by Robert J. Tanner
Tweak request by mbp for releasing.txt
39
     bzr branch lp:bzr-pqm ~/.bazaar/plugins/pqm
3464.3.6 by Martin Pool
Release process updates
40
41
#. Configure pqm-submit for this branch, with a section like this in
42
   ``~/.bazaar/locations.conf``::
43
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
44
	[/home/mbp/bzr/prepare-1.14]
3464.3.6 by Martin Pool
Release process updates
45
	pqm_email = Canonical PQM <pqm@bazaar-vcs.org>
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
46
	submit_branch = http://bazaar-vcs.org/bzr/bzr.1.14
47
	public_branch = http://bazaar.your-domain.com/bzr
3464.3.6 by Martin Pool
Release process updates
48
	submit_to = bazaar@lists.canonical.com
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
49
	smtp_server = mail.your-domain.com:25
50
4070.10.13 by Martin Pool
Remove or correct broken links
51
    Please see <http://doc.bazaar-vcs.org/latest/developers/HACKING.html#an-overview-of-pqm>
52
    for more details on PQM
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
53
4152.2.7 by Robert J. Tanner
Added explicit instructions to check ./bzr _script_version ./bzrlib/__init__.py
54
#. In the release branch, update  ``version_info`` in ``./bzrlib/__init__.py``.
55
   Double check that ./bzr ``_script_version`` matches ``version_info``. Check
56
   the output of ``bzr --version``. 
3778.2.1 by Martin Pool
Updated release process documentation.
57
58
#. Add the date and release number to ``./NEWS``
59
3966.2.6 by Jelmer Vernooij
Mention check-newsbugs.py in the release document.
60
#. To check that all bugs mentioned in ``./NEWS`` are actually marked as
61
   closed in Launchpad, you can run ``tools/check-newsbugs.py``::
62
63
     ./tools/check-newsbugs.py NEWS
64
4595.6.2 by Martin Pool
Guidance on using check-newsbugs when releasing
65
   (But note there can be some false positives, and this script may be
66
   flaky 
67
   <https://bugs.edge.launchpad.net/bzr/+bug/354985>.  Don't let this
68
   slow you down too much.)
69
3778.2.1 by Martin Pool
Updated release process documentation.
70
#. 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
71
72
#. Commit these changes to the release branch, using a command like::
73
    
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
74
     bzr commit -m "Release 1.14." 
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
75
   
76
   The diff before you commit will be something like::
77
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
78
     === modified file 'NEWS'
79
     --- NEWS        2008-09-17 23:09:18 +0000
80
     +++ NEWS        2008-09-23 16:14:54 +0000
81
     @@ -4,6 +4,23 @@
82
     
83
      .. contents::
84
     
85
     +bzr 1.7 2008-09-23
86
     +------------------
87
     +
88
     +This release includes many bug fixes and a few performance and feature
89
     +improvements.  ``bzr rm`` will now scan for missing files and remove them,
90
     +like how ``bzr add`` scans for unknown files and adds them. A bit more
91
     +polish has been applied to the stacking code. The b-tree indexing code has
92
     +been brought in, with an eye on using it in a future repository format.
93
     +There are only minor installer changes since bzr-1.7rc2.
94
     +
95
      bzr 1.7rc2 2008-09-17
96
      ---------------------
97
     
98
     
99
     === modified file 'bzrlib/__init__.py'
100
     --- bzrlib/__init__.py  2008-09-16 21:39:28 +0000
101
     +++ bzrlib/__init__.py  2008-09-23 16:14:54 +0000
102
     @@ -41,7 +41,7 @@
103
      # Python version 2.0 is (2, 0, 0, 'final', 0)."  Additionally we use a
104
      # releaselevel of 'dev' for unreleased under-development code.
105
     
106
     -version_info = (1, 7, 0, 'candidate', 2)
107
     +version_info = (1, 7, 0, 'final', 0)
108
     
109
     
110
      # API compatibility version: bzrlib is currently API compatible with 1.7.
111
      
3997.2.1 by Jelmer Vernooij
Add tagging to the release process.
112
#. Tag the new release::
113
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
114
     bzr tag bzr-1.14
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
115
4152.2.2 by Robert J. Tanner
Updated to releasing.txt based on my experiences as the release manager for
116
#. Push those changes to a bzr reposistory that is public and accessible on
117
   the Internet. PQM will pull from this repository when it attempts to merge
118
   your changes. Then submit those changes to PQM for merge into the
119
   appropriate release branch::
3464.3.6 by Martin Pool
Release process updates
120
 
121
     bzr push
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
122
     bzr pqm-submit -m "(mbp) prepare 1.14"
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
123
124
#. When PQM succeeds, pull down the master release branch.
125
3464.3.6 by Martin Pool
Release process updates
126
3383.2.4 by Martin Pool
Trim from the release instructions things that are now automated or unnecessary
127
Making the source tarball
128
-------------------------
129
3408.1.3 by Martin Pool
More release process updates
130
#. 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
131
  
132
     make dist
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
133
3778.3.3 by Martin Pool
Build zip file from 'make dist' and document this; also tweak standard announcement mail
134
   This also makes a zip file, which is easier to access on Microsoft
135
   Windows.
136
3408.1.3 by Martin Pool
More release process updates
137
#. Now we'll try expanding this tarball and running the test suite
138
   to check for packaging problems::
139
 
140
     make check-dist-tarball
3383.2.5 by Martin Pool
merge trunk
141
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
142
143
Publishing the release
144
----------------------
145
146
Now you have the releasable product.  The next step is making it
147
available to the world.
148
149
#. In <https://launchpad.net/bzr/> click the "Release series" for this
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
150
   series, to take you to e.g. <https://launchpad.net/bzr/1.14>.  Then
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
151
   click "Register a release", and add information about this release.
152
3778.3.3 by Martin Pool
Build zip file from 'make dist' and document this; also tweak standard announcement mail
153
#. Within that release, upload the source tarball and zipfile and the GPG
154
   signature.  Or, if you prefer, use the
155
   ``tools/packaging/lp-upload-release`` script to do this.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
156
157
#. Link from http://bazaar-vcs.org/Download to the tarball and signature.
158
3778.2.1 by Martin Pool
Updated release process documentation.
159
#. Announce on the `Bazaar home page <http://bazaar-vcs.org/>`_.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
160
3778.2.1 by Martin Pool
Updated release process documentation.
161
#. Check that the documentation for this release is available in 
162
   <http://doc.bazaar-vcs.org>.  It should be automatically build when the 
163
   branch is created, by a cron script ``update-bzr-docs`` on
164
   ``escudero``.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
165
166
167
Announcing the release
168
----------------------
169
170
Now that the release is publicly available, tell people about it.
171
3778.2.1 by Martin Pool
Updated release process documentation.
172
#. Make an announcement mail.
173
174
   For release candidates, this is sent to the ``bazaar-announce`` and
175
   ``bazaar`` lists.  For final releases, it should also be cc'd to 
176
   ``info-gnu@gnu.org``, ``python-announce-list@python.org``, 
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
177
   ``bug-directory@gnu.org``.  In both cases, it is good to set
178
   ``Reply-To: bazaar@lists.canonical.com``, so that people who reply to
179
   the announcement don't spam other lists.
3778.2.1 by Martin Pool
Updated release process documentation.
180
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.
181
   The announce mail will look something like this::
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
182
   
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.
183
      Subject: bzr x.yy released!
184
      
185
      <<Summary paragraph from news>>
186
     
187
      The Bazaar team is happy to announce availability of a new 
188
      release of the bzr adaptive version control system.
4439.1.6 by Martin Pool
Tweak text about GNU in release template
189
      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.
190
     
191
      Thanks to everyone who contributed patches, suggestions, and
192
      feedback.
193
      
194
      Bazaar is now available for download from 
195
      http://bazaar-vcs.org/Download as a source tarball; packages 
196
      for various systems will be available soon.
197
      
198
      <<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
199
4439.1.1 by Martin Pool
Release mails should mention bzr's a GNU project
200
   Feel free to tweak this to your taste.
201
3815.1.1 by Martin Pool
Add Launchpad announcement to the release process
202
#. Make an announcement through <https://launchpad.net/bzr/+announce>
203
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
204
#. Update the IRC channel topic. Use the ``/topic`` command to do this,
205
   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
206
207
#. Announce on http://freshmeat.net/projects/bzr/
208
   
3778.2.2 by John Arbash Meinel
Rewrap some doc text, update the diff hunk to be accurate for current NEWS.
209
   This should be done for both release candidates and final releases. If
210
   you do not have a Freshmeat account yet, ask one of the existing
211
   admins.
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
212
4144.5.8 by Eric Siegerman
Broken-link fix. (The ")" wasn't being treated as part of the link.)
213
#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should be done
4104.7.1 by Robert J. Tanner
Updated the releasing.html document, adding some documentation on things I had
214
for final releases but not for Release Candidates.
3497.3.1 by Martin Pool
Add note to update GNU directory
215
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
216
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best
217
   done by running ::
218
219
       python setup.py register
220
221
   Remember to check the results afterwards.
222
3408.1.3 by Martin Pool
More release process updates
223
   To be able to register the release you must create an account on
224
   <http://pypi.python.org/pypi> and have one of the existing owners of
225
   the project add you to the group.
226
3383.2.3 by Martin Pool
Separate out and update the release manager instructions
227
3383.2.5 by Martin Pool
merge trunk
228
Merging the released code back to trunk
229
---------------------------------------
230
231
Merge the release branch back into the trunk.  Check that changes in NEWS
232
were merged into the right sections.  If it's not already done, advance
233
the version number in ``bzr`` and ``bzrlib/__init__.py``.  Submit this
234
back into pqm for bzr.dev.
235
4070.10.2 by Martin Pool
doc to maintain bzr/current branch
236
You should also merge (not pull) the release branch into
237
``lp:~bzr/bzr/current``, so that branch contains the current released code
238
at any time.
239
3383.2.5 by Martin Pool
merge trunk
240
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
241
Starting a cycle
242
----------------
243
244
To start a new release cycle:
245
246
#. Send mail to the list with the key dates, who will be the release
4584.2.4 by mbp at sourcefrog
Minor corrections to release docs
247
   manager, and the main themes or targeted bugs.  Ask people to nominate
4584.2.1 by Martin Pool
Update release cycle doc for 6m cycles
248
   objectives, or point out any high-risk things that are best done early,
249
   or that interact with other changes.
250
251
#. Add a new "series" in Launchpad at <https://launchpad.net/bzr/+addseries>.  
252
   There is one series for every *x.y* release.
253
254
#. Add milestones to that series for the release candidate and the final
255
   release, and their expected dates.
256
257
#. Deactivate old releases and their milestones.
258
259
#. Update the version number in the ``bzr`` script, and the
260
   ``bzrlib/__init__.py`` file.
261
262
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
263
See also
264
--------
265
4070.10.3 by Martin Pool
Small ReST syntax fix
266
* `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
267
  packages.
268
* `Bazaar Developer Document Catalog <index.html>`_
269
* `Development cycles <cycle.html>`_: things that happen during the cycle
270
  before the actual release.
3464.3.6 by Martin Pool
Release process updates
271
272
..
3464.3.8 by Martin Pool
Doc updates re PPAs
273
   vim: filetype=rst textwidth=74 ai shiftwidth=4