~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/ppa.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-09-01 08:02:42 UTC
  • mfrom: (5390.3.3 faster-revert-593560)
  • Revision ID: pqm@pqm.ubuntu.com-20100901080242-esg62ody4frwmy66
(spiv) Avoid repeatedly calling self.target.all_file_ids() in
 InterTree.iter_changes. (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
Background
8
8
----------
9
9
 
10
 
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the
11
 
release process.  These packages are hosted in a few `Personal Package
12
 
Archives (PPA)`__ on Launchpad.
 
10
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release
 
11
process.  These packages are hosted in a few `Personal Package Archives (PPA)`__ on
 
12
Launchpad.
13
13
 
14
14
  __ https://help.launchpad.net/PPAQuickStart
15
15
 
16
 
As of January 2011, there are the following PPAs:
 
16
As of June 2010, there are three PPAs:
17
17
 
18
 
<https://launchpad.net/~bzr/+archive/ppa>
 
18
<https://launchpad.net/~bzr/+archive>
19
19
    Final released versions and updates.
20
 
    Most users who want updates to bzr should add this.
21
20
 
22
21
<https://launchpad.net/~bzr/+archive/proposed>
23
 
    Proposed uploads to move into ~bzr/ppa, awaiting testing.
24
 
 
25
 
<https://launchpad.net/~bzr/+archive/obsolete>
26
 
    A preserved copy of the final version of packages from ~bzr/ppa for
27
 
    obsolete Ubuntu series.
28
 
 
29
 
<https://launchpad.net/~bzr/+archive/beta>
 
22
    Proposed uploads to move into ~bzr, awaiting testing.
 
23
 
 
24
<https://launchpad.net/~bzr-beta-ppa/+archive>
30
25
    Beta releases.
31
26
 
32
 
<https://launchpad.net/~bzr/+archive/beta-obsolete>
33
 
    A preserved copy of the final version of packages from
34
 
    ~bzr/beta for obsolete Ubuntu series.
35
 
 
36
 
<https://launchpad.net/~bzr/+archive/daily>
 
27
<https://launchpad.net/~bzr-nightly-ppa/+archive>
37
28
    Automatic nightly builds from trunk.
38
29
 
39
 
We build a distinct package for each distrorelease.
 
30
We build a distinct package for each distrorelease.  
40
31
If you upload a release-specific version, you should add a suffix to the
41
 
package version, e.g. ``1.3-1~bazaar1~dapper1``.
 
32
package version, e.g. ``bzr.1.3-1~bazaar1~dapper1``.
42
33
 
43
34
Dapper uses the ``python-support`` framework and later distributions use
44
35
``python-central``.  This has little effect on everyday packaging but does
45
36
mean that some of the control files are quite different.
46
37
 
47
 
Beta releases of bzr and plugins are uploaded into the beta PPA.
48
 
 
49
 
Final release versions are first uploaded into the proposed PPA, which
50
 
serves as a staging area to allow for new packages to be tested, and also
51
 
so that a complete set of Bazaar core and plugin updated versions can be
52
 
prepared together, when negotiating an API version transition.
53
 
 
54
 
Once ready, packages can be copied from the proposed PPA to the main PPA
55
 
using the lp-promote-ppa script found within the hydrazine project.  This
56
 
procedure reduces the risk of broken packages or dependencies between
57
 
packages in the main PPA from which many people get bzr updates.
 
38
Every package is first uploaded into the beta ppa.  For final release
 
39
versions it is also copied to the main PPA.
58
40
 
59
41
The packaging information is kept in branches of bzr on Launchpad, named
60
42
like
63
45
<lp:~bzr/ubuntu/hardy/bzr/bzr-ppa>.  These branches are intended to be used
64
46
with the ``bzr-builddeb`` plugin.
65
47
 
66
 
The page <http://wiki.bazaar.canonical.com/PpaPackagingBranches> is a
67
 
reference to where the PPA packaging branches for each of the source
68
 
packages in the ``~bzr`` PPAs may be found.
 
48
**You should almost always upload to the beta ppa first** and then either 
 
49
upload again or copy the packages into the release ppa.  That reduces the 
 
50
risk of breaking the main archive from which people get bzr updates.
69
51
 
70
52
 
71
53
Supported releases
85
67
* Hardy LTS
86
68
* Dapper LTS (supported but no longer updated for new releases)
87
69
 
88
 
The ``rmadison bzr`` command will gives you an up-to-date summary
89
 
of which bzr releases are current in each Ubuntu release.
90
70
 
91
71
Preconditions
92
72
-------------
93
73
 
94
 
* You must have a Launchpad account and be a member of the team
95
 
  that owns these PPAs (``~bzr``).
 
74
* You must have a Launchpad account and be a member of the teams
 
75
  that own these PPAs (``~bzr``, ``~bzr-beta-ppa``).
96
76
 
97
77
* You must have a GPG key registered to your Launchpad account.
98
78
 
99
79
On reasonably recent versions of Ubuntu you no longer need special dput
100
80
configuration, because you can just say ::
101
81
 
102
 
  dput ppa:bzr/proposed source.changes
 
82
  dput ppa:bzr/proposed <source.changes
103
83
  
104
84
 
105
85
However, you may still want to add these lines to ``~/.dput.cf`` prevent 
109
89
    [DEFAULT]
110
90
    default_host_main = notspecified
111
91
 
 
92
* Configure ``bzr-builddeb`` to sign the package, which is required for
 
93
  Launchpad to build it.  Put this in ``~/.bazaar/builddeb.conf`` ::
 
94
 
 
95
      [BUILDDEB]
 
96
      builder = dpkg-buildpackage -rfakeroot
 
97
      source-builder= dpkg-buildpackage -rfakeroot -S -sa
 
98
 
112
99
* You need a Ubuntu (or probably Debian) machine, and ::
113
100
 
114
101
    sudo apt-get install build-essential devscripts dput quilt patch libcrypt-ssleay-perl debhelper cdbs python-docutils
116
103
  Please update this document if you encounter unmet dependencies or find a
117
104
  shorter way to express them.
118
105
 
119
 
* You will also want to have the `bzr-builddeb`_ plugin installed.
 
106
* You will also want to have the `bzr-builddeb`_ plugin installed, which
 
107
  depends on `bzrtools`_.
120
108
 
121
109
.. _`bzr-builddeb`: http://launchpad.net/bzr-builddeb
 
110
.. _`bzrtools`: http://launchpad.net/bzrtools
122
111
 
123
112
 
124
113
Packaging Bazaar
133
122
  that into the ppa.  
134
123
  
135
124
  (``-S`` says to make a source-only upload, which is
136
 
  required for Launchpad's builders.  ``-sa`` says to include the
 
125
  required for Launchpad's builders.  ``--sa`` says to include the
137
126
  ``.orig.tgz`` even if this doesn't seem to be the first upload for an
138
127
  upstream release: this is often needed when rebuilding something that's
139
128
  previously been uploaded to Debian or Ubuntu or into a different PPA.)
141
130
* Now merge across that change into each supported branch with a 
142
131
  simple ``bzr merge``.
143
132
  
144
 
Locally testing using pbuilder
145
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
133
Locally testing builds
 
134
~~~~~~~~~~~~~~~~~~~~~~
146
135
 
147
136
It may be useful to locally test builds inside pbuilder.  You may want to 
148
137
use the script from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=255165> 
149
 
to wrap it, and to give it sensible defaults for your local machine.
 
138
to wrap it.
150
139
 
151
 
Update all packages in proposed before copying to the main ppa
152
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
140
Update all packages in proposed before copping the main ppa
 
141
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153
142
 
154
143
If one updates bzr, and there are plugins that are not compatible with the
155
144
new version of bzr, this can cause pain for users using the ppa. In order to
299
288
 
300
289
#. You should soon get an "upload accepted" mail from Launchpad, which
301
290
   means that your package is waiting to be built.  You can then track its
302
 
   progress in <https://launchpad.net/~bzr/+archive/proposed> and
303
 
   <https://launchpad.net/~bzr/+archive/proposed/+builds>.
 
291
   progress in <https://launchpad.net/~bzr-beta-ppa/+archive> and
 
292
   <https://launchpad.net/~bzr-beta-ppa/+archive/+builds>.
304
293
 
305
294
 
306
295
Packaging bzr-svn
327
316
   bzr-builddeb will automatically check out the appropriate tag from the
328
317
   main branch of bzr-svn, build, and package it.
329
318
 
330
 
#. ``dput ppa:bzr/proposed ../bzr-svn_0.4.15-1~bazaar1~hardy1_source.changes``
 
319
#. ``dput bzr-beta-ppa ../bzr-svn_0.4.15-1~bazaar1~hardy1_source.changes``
331
320
 
332
321
 
333
322
Monitoring the contents of PPAs
339
328
  apt-cache madison bzr
340
329
  
341
330
  
342
 
Testing the contents of the PPA
343
 
-------------------------------
344
 
 
345
 
A somewhat crude but useful way to test the contents of the PPA is to
346
 
install the relevant packages into an schroot::
347
 
 
348
 
 schroot -c hardy-test -u root -- \
349
 
   apt-get install -o 'APT::Install-Suggests="true"' \
350
 
   -o 'APT::Install-Recommends="true"' \
351
 
   bzr
352
 
 
353
 
This should make sure everything can be installed; it won't guarantee that 
354
331
  
355
 
 
356
332
Packaging dependencies
357
333
----------------------
358
334
 
360
336
dependencies.  Specific branches holding these backports:
361
337
 
362
338
 * ``lp:~bzr/ubuntu/dapper/configobj/dapper-backport``
363
 
 * ``lp:~bzr/ubuntu/hardy/python-central-debhelper-sequence-addon/bzr-ppa``
364
339
 
365
340
 
366
341
..