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 |
|
5 |
release, and managing the release process. |
|
6 |
||
|
3464.3.6
by Martin Pool
Release process updates |
7 |
We normally have one person acting as the release manager, who |
8 |
organizes development for the release and also actually makes the release |
|
9 |
tarball and posts announcements. It can be a different person from one |
|
|
3464.3.14
by Martin Pool
Correct typo in release process |
10 |
release to the next. |
|
3464.3.6
by Martin Pool
Release process updates |
11 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
12 |
See also: `Bazaar Developer Document Catalog <index.html>`_. |
13 |
||
14 |
||
15 |
.. contents:: |
|
16 |
||
|
3464.3.7
by Martin Pool
Developer notes about release process |
17 |
General process |
18 |
--------------- |
|
19 |
||
20 |
Our usual process is that one week before release we will make a release |
|
21 |
branch from the trunk. We do one commit to that branch to change the |
|
22 |
version number to 'rc1', and advance the trunk version to 'dev' for the |
|
23 |
next release. |
|
24 |
||
25 |
We then publish and announce this release candidate according to the |
|
26 |
process below. We then have a week of general testing of the rc, |
|
27 |
including some time for plugin authors to update their code for any |
|
28 |
changes. |
|
29 |
||
30 |
Normally no changes will be made on the release branch unless serious bugs |
|
31 |
or regressions are found, and the release manager decides they should be |
|
32 |
merged in. After one week, the release branch's version number is updated |
|
33 |
and it's published as the final release. If regressions or serious |
|
34 |
problems are discovered after the final release we may make an additional |
|
35 |
point release from that branch. |
|
36 |
||
37 |
The process or timing can vary if that seems appropriate in a particular |
|
38 |
case but we try to release on a regular four week cycle. |
|
39 |
||
40 |
The net effect is that the code gets some extra testing before release, |
|
41 |
and the trunk is always open for general development. |
|
42 |
||
43 |
||
44 |
||
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
45 |
|
46 |
Starting a Release |
|
47 |
------------------ |
|
48 |
||
49 |
To start a new release cycle: |
|
50 |
||
51 |
#. Send mail to the list with the key dates, who will be the release |
|
52 |
manager, and the main themes or targetted bugs. Ask people to nominate |
|
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
53 |
objectives, or point out any high-risk things that are best done early, |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
54 |
or that interact with other changes. |
55 |
||
56 |
#. Add a new "series" in Launchpad at <https://launchpad.net/bzr/+addseries>. There is one |
|
57 |
series for every *x.y* release. |
|
58 |
||
|
3408.1.3
by Martin Pool
More release process updates |
59 |
|
|
3464.3.6
by Martin Pool
Release process updates |
60 |
Weekly Metronome Mail |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
61 |
--------------------- |
62 |
||
|
3464.3.6
by Martin Pool
Release process updates |
63 |
Every week the release manager should send a mail to the Bazaar list |
64 |
covering these points (as appropriate): |
|
65 |
||
66 |
* Early communication about changing dependencies or defaults |
|
67 |
||
68 |
* Reminder re lifecycle and where we're up to right now, in particular the |
|
69 |
dates for the next release and/or candidate. |
|
70 |
||
71 |
* Summary of recent successes and pending work. |
|
72 |
||
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
73 |
* Reminder re release objectives |
|
3464.3.6
by Martin Pool
Release process updates |
74 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
75 |
* Reminder re things needing attention, e.g. bug triage, reviews, testing of certain things, etc. |
76 |
||
77 |
||
|
3383.2.4
by Martin Pool
Trim from the release instructions things that are now automated or unnecessary |
78 |
Preparing the tree for release |
79 |
------------------------------ |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
80 |
|
81 |
.. Was previously at http://bazaar-vcs.org/ReleaseChecklist |
|
82 |
||
83 |
.. TODO: Still needs more clarity on what's in a RC versus a final |
|
84 |
.. release? |
|
85 |
||
86 |
This is the procedure for making a new bzr release: |
|
87 |
||
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
88 |
#. If the release is the first candidate, make a new branch in PQM. |
89 |
(Contact Robert Collins for this step). |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
90 |
|
91 |
Register the branch at https://launchpad.net/products/bzr/+addbranch |
|
92 |
||
|
3464.3.6
by Martin Pool
Release process updates |
93 |
#. Make a local branch for preparing this release. (Only for the first |
94 |
release in a series, otherwise you should already have a branch.) :: |
|
95 |
||
96 |
bzr branch trunk prepare-1.6 |
|
97 |
||
98 |
#. Configure pqm-submit for this branch, with a section like this in |
|
99 |
``~/.bazaar/locations.conf``:: |
|
100 |
||
101 |
[/home/mbp/bzr/prepare-1.4] |
|
102 |
pqm_email = Canonical PQM <pqm@bazaar-vcs.org> |
|
103 |
submit_branch = http://bazaar-vcs.org/bzr/bzr.1.4 |
|
104 |
submit_to = bazaar@lists.canonical.com |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
105 |
|
|
3464.3.1
by Martin Pool
Tweak release docs re version numbers |
106 |
#. In the release branch, update ``version_info`` in |
107 |
``./bzrlib/__init__.py``. |
|
108 |
(This must match ``_script_version`` in the ``bzr`` script, but |
|
109 |
that is updated at the start of the release cycle, and |
|
110 |
doesn't need to say if it's an rc or final release.) |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
111 |
|
|
3464.3.2
by Martin Pool
release docs: suggest checking bzr --version |
112 |
Run this command and check the output:: |
113 |
||
114 |
./bzr --version |
|
115 |
||
|
3408.1.3
by Martin Pool
More release process updates |
116 |
#. Add the date and release number to ``./NEWS``, and a one-paragraph |
117 |
summary of changes in this release. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
118 |
|
119 |
#. Commit these changes to the release branch, using a command like:: |
|
120 |
||
|
3464.3.6
by Martin Pool
Release process updates |
121 |
bzr commit -m "Release 0.12rc1." |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
122 |
|
123 |
The diff before you commit will be something like:: |
|
124 |
||
125 |
=== modified file 'NEWS' |
|
126 |
--- NEWS 2006-10-23 13:11:17 +0000 |
|
127 |
+++ NEWS 2006-10-23 22:50:50 +0000 |
|
128 |
@@ -1,4 +1,4 @@ |
|
129 |
-IN DEVELOPMENT |
|
130 |
+bzr 0.12rc1 2006-10-23 |
|
131 |
||
132 |
IMPROVEMENTS: |
|
133 |
||
134 |
||
135 |
=== modified file 'bzrlib/__init__.py' |
|
136 |
--- bzrlib/__init__.py 2006-10-16 01:47:43 +0000 |
|
137 |
+++ bzrlib/__init__.py 2006-10-23 22:49:46 +0000 |
|
138 |
@@ -35,7 +35,7 @@ |
|
139 |
# Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a |
|
140 |
# releaselevel of 'dev' for unreleased under-development code. |
|
141 |
||
142 |
-version_info = (0, 12, 0, 'dev', 0) |
|
143 |
+version_info = (0, 12, 0, 'candidate', 1) |
|
144 |
||
145 |
if version_info[3] == 'final': |
|
146 |
version_string = '%d.%d.%d' % version_info[:3] |
|
147 |
||
|
3383.2.5
by Martin Pool
merge trunk |
148 |
#. Submit those changes to PQM for merge into the appropriate release |
|
3464.3.6
by Martin Pool
Release process updates |
149 |
branch:: |
150 |
||
151 |
bzr push |
|
152 |
bzr pqm-submit -m "(mbp) prepare 1.6" |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
153 |
|
154 |
#. When PQM succeeds, pull down the master release branch. |
|
155 |
||
|
3464.3.6
by Martin Pool
Release process updates |
156 |
|
|
3383.2.4
by Martin Pool
Trim from the release instructions things that are now automated or unnecessary |
157 |
Making the source tarball |
158 |
------------------------- |
|
159 |
||
|
3408.1.3
by Martin Pool
More release process updates |
160 |
#. 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 |
161 |
|
162 |
make dist |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
163 |
|
|
3408.1.3
by Martin Pool
More release process updates |
164 |
#. Now we'll try expanding this tarball and running the test suite |
165 |
to check for packaging problems:: |
|
166 |
||
167 |
make check-dist-tarball |
|
|
3383.2.5
by Martin Pool
merge trunk |
168 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
169 |
|
170 |
Publishing the release |
|
171 |
---------------------- |
|
172 |
||
173 |
Now you have the releasable product. The next step is making it |
|
174 |
available to the world. |
|
175 |
||
176 |
#. In <https://launchpad.net/bzr/> click the "Release series" for this |
|
177 |
series, to take you to e.g. <https://launchpad.net/bzr/1.1>. Then |
|
178 |
click "Register a release", and add information about this release. |
|
179 |
||
180 |
#. Within that release, upload the source tarball and the GPG signature. |
|
181 |
||
182 |
#. Link from http://bazaar-vcs.org/Download to the tarball and signature. |
|
183 |
||
184 |
#. Update http://doc.bazaar-vcs.org/ to have a directory of documentation |
|
185 |
for this release. (Controlled by the ``update-bzr-docs`` script on |
|
186 |
escudero, and also update the ``latest`` symlink in |
|
187 |
``/srv/bazaar.canonical.com/doc/``.) |
|
188 |
||
|
3464.3.6
by Martin Pool
Release process updates |
189 |
#. Announce on the `Bazaar home page`__. |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
190 |
|
191 |
__ http://bazaar-vcs.org/ |
|
192 |
||
193 |
||
194 |
Announcing the release |
|
195 |
---------------------- |
|
196 |
||
197 |
Now that the release is publicly available, tell people about it. |
|
198 |
||
199 |
#. Announce to ``bazaar-announce`` and ``bazaar`` mailing lists. |
|
200 |
The announce mail will look something like this: |
|
201 |
||
202 |
| Subject: bzr 0.11 release candidate 1 |
|
203 |
| |
|
204 |
| INTRO HERE. Mention the release number and date, and why the release. (i.e. release candidate for testing, final release of a version, backport/bugfix etc). |
|
205 |
| |
|
206 |
| Tarballs: |
|
207 |
| http://bazaar-vcs.org/releases/src/bzr-VERSION.tar.gz |
|
208 |
| and GPG signature: |
|
209 |
| http://bazaar-vcs.org/releases/src/bzr-VERSION.tar.gz.sig |
|
210 |
| |
|
211 |
| DESCRIBE-CHANGES-IN-OVERVIEW-HERE |
|
212 |
| |
|
213 |
| DESCRIBE-when the next release will be (if there is another - i.e. this is a release candidate) |
|
214 |
| |
|
215 |
| Many thanks to all the contributors to this release! I've included the |
|
216 |
| contents of NEWS for VERSION below: |
|
217 |
||
218 |
To generate the data from NEWS, just copy and paste the relevant news section and clean it up as appropriate. The main clean-up task is to confirm that all major changes are indeed covered. This can be done by running ``bzr log`` back to the point when the branch was opened and cross checking the changes against the NEWS entries. |
|
219 |
||
220 |
(RC announcements should remind plugin maintainers to update their plugins.) |
|
221 |
||
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
222 |
* For point releases (i.e. a release candidate, or an incremental fix |
223 |
to a released version) take everything in the relevant NEWS section. For |
|
224 |
example, for 0.11rc2 take everything in NEWS from the bzr 0.11rc2 line to the bzr 0.11rc1 line further down. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
225 |
|
226 |
* For major releases (i.e. 0.11, 0.12 etc), take all the combined NEWS sections from within that version: for 0.11 take all of the 0.11 specific section, plus 0.11rc2, plus 0.11rc1 etc. |
|
227 |
||
228 |
#. Update the IRC channel topic. Use the ``/topic`` command to do this, ensuring the new topic text keeps the project name, web site link, etc. |
|
229 |
||
230 |
#. Announce on http://freshmeat.net/projects/bzr/ |
|
231 |
||
232 |
This should be done for both release candidates and final releases. If you do not have a Freshmeat account yet, ask one of the existing admins. |
|
233 |
||
|
3464.3.6
by Martin Pool
Release process updates |
234 |
#. Update http://en.wikipedia.org/wiki/Bzr -- this should be done for final releases but not for Release Candidates. |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
235 |
|
236 |
#. Package maintainers should update packages when they see the |
|
237 |
announcement. |
|
238 |
||
|
3464.3.6
by Martin Pool
Release process updates |
239 |
#. For final releases, also send the announcement mail to |
240 |
info-gnu@gnu.org and python-announce-list@python.org. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
241 |
|
|
3497.3.1
by Martin Pool
Add note to update GNU directory |
242 |
#. Also send a GNU directory update to bug-directory@gnu.org. |
243 |
||
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
244 |
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best |
245 |
done by running :: |
|
246 |
||
247 |
python setup.py register |
|
248 |
||
249 |
Remember to check the results afterwards. |
|
250 |
||
|
3408.1.3
by Martin Pool
More release process updates |
251 |
To be able to register the release you must create an account on |
252 |
<http://pypi.python.org/pypi> and have one of the existing owners of |
|
253 |
the project add you to the group. |
|
254 |
||
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
255 |
|
|
3383.2.5
by Martin Pool
merge trunk |
256 |
Merging the released code back to trunk |
257 |
--------------------------------------- |
|
258 |
||
259 |
Merge the release branch back into the trunk. Check that changes in NEWS |
|
260 |
were merged into the right sections. If it's not already done, advance |
|
261 |
the version number in ``bzr`` and ``bzrlib/__init__.py``. Submit this |
|
262 |
back into pqm for bzr.dev. |
|
263 |
||
264 |
||
|
3549.3.1
by Martin Pool
Updated instructions in packaging into the PPA |
265 |
See also |
266 |
-------- |
|
267 |
||
268 |
* `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu |
|
269 |
packages. |
|
|
3464.3.6
by Martin Pool
Release process updates |
270 |
|
271 |
.. |
|
|
3464.3.8
by Martin Pool
Doc updates re PPAs |
272 |
vim: filetype=rst textwidth=74 ai shiftwidth=4 |