~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/releasing.txt

Merge with extras

Show diffs side-by-side

added added

removed removed

Lines of Context:
262
262
back into pqm for bzr.dev.
263
263
 
264
264
 
265
 
Updating the PPA for a new release
266
 
----------------------------------
267
 
 
268
 
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release
269
 
process.  These packages are hosted in a few `Personal Package Archives (PPA)`__ on
270
 
Launchpad.
271
 
 
272
 
  __ https://help.launchpad.net/PPAQuickStart
273
 
 
274
 
As of June 2008, there are actually two PPAs:
275
 
 
276
 
<https://launchpad.net/~bzr/+archive>
277
 
    Final released versions.
278
 
 
279
 
<https://launchpad.net/~bzr-beta-ppa/+archive>
280
 
    Releases and release candidates.    
281
 
 
282
 
We build packages for every supported Ubuntu release
283
 
<https://wiki.ubuntu.com/Releases>.  Packages need no longer be updated
284
 
when the release passes end-of-life because all users should
285
 
updated by then.  (As of May 2009, Edgy Eft is no longer supported.)
286
 
 
287
 
The ``debian/`` directory containing the packaging information is kept in
288
 
branches on Launchpad, named like 
289
 
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
290
 
 
291
 
Preconditions for building these packages:
292
 
  
293
 
* You must have a Launchpad account and be a member of the `~bzr`__ team
294
 
  
295
 
__ https://edge.launchpad.net/~bzr/+members>
296
 
 
297
 
* You must have a GPG key registered to your Launchpad account.
298
 
 
299
 
* Configure ``dput`` to upload to our PPA with this section in your
300
 
  ``~/.dput.cf``::
301
 
 
302
 
    [bzr-beta-ppa]
303
 
    fqdn = ppa.launchpad.net
304
 
    method = ftp
305
 
    incoming = ~bzr-beta-ppa/ubuntu
306
 
    login = anonymous
307
 
    allow_unsigned_uploads = 0
308
 
 
309
 
    [bzr-ppa]
310
 
    fqdn = ppa.launchpad.net
311
 
    method = ftp
312
 
    incoming = ~bzr/ubuntu
313
 
    login = anonymous
314
 
    allow_unsigned_uploads = 0
315
 
 
316
 
  You may also want to add these lines to prevent inadvertently attempting
317
 
  to upload into Ubuntu or Debian, which will give a somewhat unclear
318
 
  error::
319
 
 
320
 
    [DEFAULT]
321
 
    default_host_main = notspecified
322
 
  
323
 
    [notspecified]
324
 
    fqdn = SPECIFY.A.PPA.NAME 
325
 
 
326
 
* You need a Ubuntu (or probably Debian) machine, and ::
327
 
 
328
 
    sudo apt-get install build-essential devscripts dput quilt patch
329
 
 
330
 
Here is the process; there are some steps which should be automated in
331
 
future:
332
 
 
333
 
#. You will need a working directory for each supported release, such as
334
 
   ``~/bzr/Packaging/hardy``
335
 
 
336
 
#. Download the official tarball of the release to e.g. ``~/bzr/Releases``
337
 
 
338
 
#. Copy the original tarball into your per-disto directory, then untar
339
 
   it::
340
 
 
341
 
     cp -l ~/bzr/Releases/bzr-1.3.tar.gz bzr_1.3.orig.tar.gz
342
 
     tar xfvz bzr_1.3.orig.tar.gz
343
 
 
344
 
   The bzrtools extracted directory does not contain a version number
345
 
   and must be renamed::
346
 
 
347
 
     mv bzrtools bzrtools-1.3.0
348
 
 
349
 
#. Change into that directory and check out the packaging branch::
350
 
 
351
 
     cd bzr
352
 
     bzr checkout \
353
 
       bzr+ssh://bazaar.launchpad.net/~bzr/bzr/packaging-hardy \
354
 
       debian
355
 
 
356
 
#. For Bazaar plugins, change the ``debian/control`` file to express a
357
 
   dependency on the correct version of ``bzr``.
358
 
 
359
 
   For bzrtools this is typically::
360
 
 
361
 
      Build-Depends-Indep: bzr (>= 1.3~), rsync
362
 
      Depends: ${python:Depends}, bzr (>= 1.3~), bzr (<< 1.4~), patch
363
 
 
364
 
#. Make a new ``debian/changelog`` entry for the new release,
365
 
   either by using ``dch`` or just editing the file::
366
 
 
367
 
     dch -v '1.3-1~bazaar1' -D hardy
368
 
 
369
 
   dch will default to the distro you're working in and this isn't checked
370
 
   against the version number (which is just our conversion), so make sure 
371
 
   to specify it.
372
 
 
373
 
   **Caution:** Release candidates must insert a tilde to make them sort 
374
 
   before the final release, like this: ``bzr-1.4~rc2-1~bazaar1``.
375
 
 
376
 
   Make sure you have the correct email address for yourself, version
377
 
   number, and distribution.  It should look something like this::
378
 
 
379
 
       bzr (1.3-1~bazaar1) hardy; urgency=low
380
 
     
381
 
        * New upstream release.
382
 
     
383
 
       -- John Sample <sample@example.com>  Mon, 31 Mar 2008 12:36:27 +1100
384
 
 
385
 
   If you need to upload the package again to fix a problem, normally you
386
 
   should increment the last number in the version number, following the
387
 
   distro name.  Make sure not to omit the initial ``-1``, and make sure
388
 
   that the distro name in the version is consistent with the target name
389
 
   outside the parenthesis.
390
 
 
391
 
#. Commit these changes into the packaging branch::
392
 
 
393
 
     bzr ci -m '1.3-1~bazaar1: New upstream release.' debian
394
 
 
395
 
#. Build a source package::
396
 
 
397
 
     debuild -S -sa -i -D
398
 
 
399
 
   This will create a ``.changes`` file in the per-distro directory,
400
 
   and should invoke gpg to sign it with your key.
401
 
   Check that file is reasonable: it should be uploading to the intended
402
 
   distribution, have a .orig file included, and the right version number.
403
 
 
404
 
#. Upload into the appropriate PPA, either ``bzr-ppa`` or
405
 
   ``bzr-beta-ppa``::
406
 
 
407
 
     dput bzr-ppa ../bzr__1.3-1\~bazaar1\_source.changes
408
 
 
409
 
#. Copy the uploaded package over to other Ubuntu releases, taking advantage 
410
 
   of Launchpad's Copy Package feature <https://launchpad.net/~bzr/+archive/+copy-packages>
411
 
 
412
 
   **Note:** The packaging dependencies may vary between different distro series.
413
 
   As of bzr 1.5, Dapper uses ``python-support`` and later distributions use 
414
 
   ``python-central``.
415
 
   If you upload a release-specific version, you should add a ~release1 to
416
 
   the package version, for example:: bzr.1.3-1~bazaar1~dapper1
417
 
 
418
 
#. You should soon get an "upload accepted" mail from Launchpad, which
419
 
   means that your package is waiting to be built.  You can then track its
420
 
   progress in <https://launchpad.net/~bzr/+archive> and
421
 
   <https://launchpad.net/~bzr/+archive/+builds>.
422
 
 
423
 
If you add all the bzr PPAs to your ``sources.list`` then you can see a
424
 
summary of current package versions with::
425
 
 
426
 
  apt-cache madison bzr
 
265
See also
 
266
--------
 
267
 
 
268
 * `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
 
269
   packages.
427
270
 
428
271
..
429
272
   vim: filetype=rst textwidth=74 ai shiftwidth=4