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 |
||
7 |
See also: `Bazaar Developer Document Catalog <index.html>`_. |
|
8 |
||
9 |
||
10 |
.. contents:: |
|
11 |
||
12 |
||
13 |
Starting a Release |
|
14 |
------------------ |
|
15 |
||
16 |
To start a new release cycle: |
|
17 |
||
18 |
#. Send mail to the list with the key dates, who will be the release |
|
19 |
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 |
20 |
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 |
21 |
or that interact with other changes. |
22 |
||
23 |
#. Add a new "series" in Launchpad at <https://launchpad.net/bzr/+addseries>. There is one |
|
24 |
series for every *x.y* release. |
|
25 |
||
|
3408.1.3
by Martin Pool
More release process updates |
26 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
27 |
Weekly Status Updates |
28 |
--------------------- |
|
29 |
||
30 |
TODO: Things to cover: |
|
31 |
||
32 |
* Early communication to downstream teams (e.g. Launchpad) about changes in dependencies. |
|
33 |
* Reminder re lifecycle and where we're up to right now |
|
34 |
* Summary of recent successes and pending work |
|
35 |
* Reminder re release objectives |
|
36 |
* Reminder re things needing attention, e.g. bug triage, reviews, testing of certain things, etc. |
|
37 |
||
38 |
||
39 |
Feature Freeze |
|
40 |
-------------- |
|
41 |
||
42 |
TODO: Get material from http://bazaar-vcs.org/FeatureFreeze. |
|
43 |
||
44 |
||
45 |
||
|
3383.2.4
by Martin Pool
Trim from the release instructions things that are now automated or unnecessary |
46 |
Preparing the tree for release |
47 |
------------------------------ |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
48 |
|
49 |
.. Was previously at http://bazaar-vcs.org/ReleaseChecklist |
|
50 |
||
51 |
.. TODO: Still needs more clarity on what's in a RC versus a final |
|
52 |
.. release? |
|
53 |
||
54 |
This is the procedure for making a new bzr release: |
|
55 |
||
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
56 |
#. If the release is the first candidate, make a new branch in PQM. |
57 |
(Contact Robert Collins for this step). |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
58 |
|
59 |
Register the branch at https://launchpad.net/products/bzr/+addbranch |
|
60 |
||
61 |
#. Run the automatic test suite and any non-automated tests. (For example, try a download over http; these should eventually be scripted though not automatically run.). Try to have all optional dependencies installed so that there are no tests skipped. Also make sure that you have the c extensions compiled (``make`` or ``python setup.py build_ext -i``). |
|
62 |
||
63 |
#. In the release branch, update ``version_info`` in ``./bzrlib/__init__.py`` |
|
64 |
||
|
3408.1.3
by Martin Pool
More release process updates |
65 |
#. Add the date and release number to ``./NEWS``, and a one-paragraph |
66 |
summary of changes in this release. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
67 |
|
68 |
#. Commit these changes to the release branch, using a command like:: |
|
69 |
||
70 |
bzr commit -m "(jam) Release 0.12rc1." |
|
71 |
||
72 |
The diff before you commit will be something like:: |
|
73 |
||
74 |
=== modified file 'NEWS' |
|
75 |
--- NEWS 2006-10-23 13:11:17 +0000 |
|
76 |
+++ NEWS 2006-10-23 22:50:50 +0000 |
|
77 |
@@ -1,4 +1,4 @@ |
|
78 |
-IN DEVELOPMENT |
|
79 |
+bzr 0.12rc1 2006-10-23 |
|
80 |
||
81 |
IMPROVEMENTS: |
|
82 |
||
83 |
||
84 |
=== modified file 'bzrlib/__init__.py' |
|
85 |
--- bzrlib/__init__.py 2006-10-16 01:47:43 +0000 |
|
86 |
+++ bzrlib/__init__.py 2006-10-23 22:49:46 +0000 |
|
87 |
@@ -35,7 +35,7 @@ |
|
88 |
# Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a |
|
89 |
# releaselevel of 'dev' for unreleased under-development code. |
|
90 |
||
91 |
-version_info = (0, 12, 0, 'dev', 0) |
|
92 |
+version_info = (0, 12, 0, 'candidate', 1) |
|
93 |
||
94 |
if version_info[3] == 'final': |
|
95 |
version_string = '%d.%d.%d' % version_info[:3] |
|
96 |
||
|
3383.2.5
by Martin Pool
merge trunk |
97 |
#. Submit those changes to PQM for merge into the appropriate release |
98 |
branch. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
99 |
|
100 |
#. When PQM succeeds, pull down the master release branch. |
|
101 |
||
|
3383.2.4
by Martin Pool
Trim from the release instructions things that are now automated or unnecessary |
102 |
Making the source tarball |
103 |
------------------------- |
|
104 |
||
|
3408.1.3
by Martin Pool
More release process updates |
105 |
#. 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 |
106 |
|
107 |
make dist |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
108 |
|
|
3408.1.3
by Martin Pool
More release process updates |
109 |
#. Now we'll try expanding this tarball and running the test suite |
110 |
to check for packaging problems:: |
|
111 |
||
112 |
make check-dist-tarball |
|
|
3383.2.5
by Martin Pool
merge trunk |
113 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
114 |
|
115 |
Publishing the release |
|
116 |
---------------------- |
|
117 |
||
118 |
Now you have the releasable product. The next step is making it |
|
119 |
available to the world. |
|
120 |
||
121 |
#. In <https://launchpad.net/bzr/> click the "Release series" for this |
|
122 |
series, to take you to e.g. <https://launchpad.net/bzr/1.1>. Then |
|
123 |
click "Register a release", and add information about this release. |
|
124 |
||
125 |
#. Within that release, upload the source tarball and the GPG signature. |
|
126 |
||
127 |
#. Link from http://bazaar-vcs.org/Download to the tarball and signature. |
|
128 |
||
129 |
#. Update http://doc.bazaar-vcs.org/ to have a directory of documentation |
|
130 |
for this release. (Controlled by the ``update-bzr-docs`` script on |
|
131 |
escudero, and also update the ``latest`` symlink in |
|
132 |
``/srv/bazaar.canonical.com/doc/``.) |
|
133 |
||
134 |
#. Announce on the `Bazaar home page`__ |
|
135 |
||
136 |
__ http://bazaar-vcs.org/ |
|
137 |
||
138 |
||
139 |
Announcing the release |
|
140 |
---------------------- |
|
141 |
||
142 |
Now that the release is publicly available, tell people about it. |
|
143 |
||
144 |
#. Announce to ``bazaar-announce`` and ``bazaar`` mailing lists. |
|
145 |
The announce mail will look something like this: |
|
146 |
||
147 |
| Subject: bzr 0.11 release candidate 1 |
|
148 |
| |
|
149 |
| 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). |
|
150 |
| |
|
151 |
| Tarballs: |
|
152 |
| http://bazaar-vcs.org/releases/src/bzr-VERSION.tar.gz |
|
153 |
| and GPG signature: |
|
154 |
| http://bazaar-vcs.org/releases/src/bzr-VERSION.tar.gz.sig |
|
155 |
| |
|
156 |
| DESCRIBE-CHANGES-IN-OVERVIEW-HERE |
|
157 |
| |
|
158 |
| DESCRIBE-when the next release will be (if there is another - i.e. this is a release candidate) |
|
159 |
| |
|
160 |
| Many thanks to all the contributors to this release! I've included the |
|
161 |
| contents of NEWS for VERSION below: |
|
162 |
||
163 |
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. |
|
164 |
||
165 |
(RC announcements should remind plugin maintainers to update their plugins.) |
|
166 |
||
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
167 |
* For point releases (i.e. a release candidate, or an incremental fix |
168 |
to a released version) take everything in the relevant NEWS section. For |
|
169 |
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 |
170 |
|
171 |
* 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. |
|
172 |
||
173 |
#. 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. |
|
174 |
||
175 |
#. Announce on http://freshmeat.net/projects/bzr/ |
|
176 |
||
177 |
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. |
|
178 |
||
179 |
#. Update http://en.wikipedia.org/wiki/Bzr -- this should be done for final releases but not Release Candidates. |
|
180 |
||
181 |
#. Package maintainers should update packages when they see the |
|
182 |
announcement. |
|
183 |
||
184 |
#. Blog about it. |
|
185 |
||
186 |
#. Post to http://mail.python.org/mailman/listinfo/python-announce-list for major releases |
|
187 |
||
188 |
#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best |
|
189 |
done by running :: |
|
190 |
||
191 |
python setup.py register |
|
192 |
||
193 |
Remember to check the results afterwards. |
|
194 |
||
|
3408.1.3
by Martin Pool
More release process updates |
195 |
To be able to register the release you must create an account on |
196 |
<http://pypi.python.org/pypi> and have one of the existing owners of |
|
197 |
the project add you to the group. |
|
198 |
||
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
199 |
|
|
3383.2.5
by Martin Pool
merge trunk |
200 |
Merging the released code back to trunk |
201 |
--------------------------------------- |
|
202 |
||
203 |
Merge the release branch back into the trunk. Check that changes in NEWS |
|
204 |
were merged into the right sections. If it's not already done, advance |
|
205 |
the version number in ``bzr`` and ``bzrlib/__init__.py``. Submit this |
|
206 |
back into pqm for bzr.dev. |
|
207 |
||
208 |
||
209 |
Updating the PPA for a new release |
|
210 |
---------------------------------- |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
211 |
|
212 |
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release |
|
213 |
process. These packages are hosted in a `Personal Package Archive (PPA)`__ on |
|
214 |
Launchpad, at <https://launchpad.net/~bzr/+archive>. |
|
215 |
||
216 |
__ https://help.launchpad.net/PPAQuickStart |
|
217 |
||
218 |
We build packages for every supported Ubuntu release |
|
219 |
<https://wiki.ubuntu.com/Releases>. Packages need no longer be updated |
|
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
220 |
when the release passes end-of-life because all users should |
221 |
updated by then. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
222 |
|
223 |
The ``debian/`` directory containing the packaging information is kept in |
|
224 |
branches on Launchpad, named like |
|
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
225 |
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>. |
|
3408.1.1
by Martin Pool
Merge updated release process docs, plus tweaks from igc |
226 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
227 |
Preconditions for building these packages: |
228 |
||
229 |
* You must have a Launchpad account and be a member of the `~bzr`__ team |
|
230 |
||
231 |
__ https://edge.launchpad.net/~bzr/+members> |
|
232 |
||
233 |
* You must have a GPG key registered to your Launchpad account. |
|
234 |
||
235 |
* Configure ``dput`` to upload to our PPA with this section in your |
|
236 |
``~/.dput.cf``:: |
|
237 |
||
238 |
[bzr-ppa] |
|
239 |
fqdn = ppa.launchpad.net |
|
240 |
method = ftp |
|
241 |
incoming = ~bzr/ubuntu |
|
242 |
login = anonymous |
|
243 |
allow_unsigned_uploads = 0 |
|
244 |
||
245 |
* You need a Ubuntu (or probably Debian) machine, and :: |
|
246 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
247 |
sudo apt-get install build-essential devscripts dput quilt patch |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
248 |
|
249 |
Here is the process; there are some steps which should be automated in |
|
250 |
future: |
|
251 |
||
252 |
#. You will need a working directory for each supported release, such as |
|
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
253 |
``~/bzr/Packaging/hardy`` |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
254 |
|
255 |
#. Download the official tarball of the release to e.g. ``~/bzr/Releases`` |
|
256 |
||
257 |
#. Copy the original tarball into your per-disto directory, then untar it |
|
258 |
and if necessary rename it:: |
|
259 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
260 |
cp -l ~/bzr/Releases/bzr-1.3.tar.gz bzr_1.3.orig.tar.gz |
261 |
tar xfvz bzr_1.3.orig.tar.gz |
|
262 |
mv bzr bzr-1.3 |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
263 |
|
264 |
#. Change into that directory and check out the packaging branch:: |
|
265 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
266 |
cd bzr |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
267 |
bzr checkout \ |
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
268 |
bzr+ssh://bazaar.launchpad.net/~bzr/bzr/packaging-hardy \ |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
269 |
debian |
270 |
||
271 |
#. For Bazaar plugins, change the ``debian/control`` file to express a |
|
272 |
dependency on the correct version of ``bzr``. |
|
273 |
||
274 |
For bzrtools this is typically:: |
|
275 |
||
276 |
Build-Depends-Indep: bzr (>= 1.3~), rsync |
|
277 |
Depends: ${python:Depends}, bzr (>= 1.3~), bzr (<< 1.4~), patch
|
|
278 |
||
279 |
#. Make a new ``debian/changelog`` entry for the new release, |
|
280 |
either by using ``dch`` or just editing the file:: |
|
281 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
282 |
dch -v '1.3-1~bazaar1' -D hardy |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
283 |
|
284 |
dch will default to the distro you're working in and this isn't checked |
|
285 |
against the version number (which is just our conversion), so make sure |
|
286 |
to specify it. |
|
287 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
288 |
**Caution:** Release candidates must insert a tilde to make them sort |
289 |
before the final release, like this: ``bzr-1.4~rc2-1~bazaar1``. |
|
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
290 |
|
291 |
Make sure you have the correct email address for yourself, version |
|
292 |
number, and distribution. It should look something like this:: |
|
293 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
294 |
bzr (1.3-1~bazaar1) hardy; urgency=low |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
295 |
|
296 |
* New upstream release. |
|
297 |
||
298 |
-- John Sample <sample@example.com> Mon, 31 Mar 2008 12:36:27 +1100 |
|
299 |
||
300 |
If you need to upload the package again to fix a problem, normally you |
|
301 |
should increment the last number in the version number, following the |
|
302 |
distro name. Make sure not to omit the initial ``-1``, and make sure |
|
303 |
that the distro name in the version is consistent with the target name |
|
304 |
outside the parenthesis. |
|
305 |
||
306 |
#. Commit these changes into the packaging branch:: |
|
307 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
308 |
bzr ci -m '1.3-1~bazaar1: New upstream release.' debian |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
309 |
|
310 |
#. Build a source package:: |
|
311 |
||
|
3408.1.2
by Martin Pool
Use debuild -D to get nicer errors for missing dependencies |
312 |
debuild -S -sa -i -D |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
313 |
|
314 |
This will create a ``.changes`` file in the per-distro directory, |
|
315 |
and should invoke gpg to sign it with your key. |
|
316 |
Check that file is reasonable: it should be uploading to the intended |
|
317 |
distribution, have a .orig file included, and the right version number. |
|
318 |
||
319 |
#. Upload into the PPA:: |
|
320 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
321 |
dput bzr-ppa ../bzr__1.3-1\~bazaar1\_source.changes |
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
322 |
|
323 |
Don't forget the ``bzr-ppa`` component or dput will try to upload into |
|
324 |
the main archive by default. You can disable this by adding this |
|
325 |
section to your ``.dput.cf``:: |
|
326 |
||
327 |
[ubuntu] |
|
328 |
fqdn = SPECIFY.A.PPA.NAME |
|
329 |
||
|
3408.1.4
by Martin Pool
Merge beuno's PPA release process docs |
330 |
#. Copy the uploaded package over to other Ubuntu releases, taking advantage |
331 |
of Launchpad's Copy Package feature <https://launchpad.net/~bzr/+archive/+copy-packages> |
|
332 |
||
333 |
**Caution:** Make sure the dependencies are the same between Ubuntu releases, |
|
334 |
Dapper has different dependencies, but others might change in time. |
|
335 |
If you upload a release-specific version, you should add a ~release1 to |
|
336 |
the package version, for example:: bzr.1.3-1~bazaar1~dapper1 |
|
337 |
||
|
3383.2.3
by Martin Pool
Separate out and update the release manager instructions |
338 |
#. You should soon get an "upload accepted" mail from Launchpad, which |
339 |
means that your package is waiting to be built. You can then track its |
|
340 |
progress in <https://launchpad.net/~bzr/+archive> and |
|
341 |
<https://launchpad.net/~bzr/+archive/+builds>. |
|
|
3408.1.3
by Martin Pool
More release process updates |
342 |
|
343 |
If you add all the bzr PPAs to your ``sources.list`` then you can see a |
|
344 |
summary of current package versions with:: |
|
345 |
||
346 |
apt-cache madison bzr |