~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/ppa.txt

  • Committer: Martin Pool
  • Date: 2010-08-13 07:56:06 UTC
  • mfrom: (5050.17.4 2.2)
  • mto: (5050.17.6 2.2)
  • mto: This revision was merged to the branch mainline in revision 5379.
  • Revision ID: mbp@sourcefrog.net-20100813075606-8zgmov3ezwans2zo
merge bzr 2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
  __ https://help.launchpad.net/PPAQuickStart
15
15
 
16
 
As of June 2008, there are three PPAs:
 
16
As of June 2010, there are three PPAs:
17
17
 
18
18
<https://launchpad.net/~bzr/+archive>
19
 
    Final released versions.
 
19
    Final released versions and updates.
20
20
 
21
21
<https://launchpad.net/~bzr-beta-ppa/+archive>
22
 
    Releases and release candidates.    
 
22
    Beta releases.
23
23
 
24
24
<https://launchpad.net/~bzr-nightly-ppa/+archive>
25
25
    Automatic nightly builds from trunk.
27
27
We build packages for every supported Ubuntu release
28
28
<https://wiki.ubuntu.com/Releases>.  Packages need no longer be updated
29
29
when the release passes end-of-life because all users should
30
 
have upgraded by then.  (As of May 2008, Edgy Eft is no longer supported.)
 
30
have upgraded by then.  
31
31
 
32
 
We build a distinct package for each distrorelease.  As of bzr 1.5, Dapper
33
 
uses ``python-support`` and later distributions use ``python-central``.
 
32
We build a distinct package for each distrorelease.  
34
33
If you upload a release-specific version, you should add a suffix to the
35
34
package version, e.g. ``bzr.1.3-1~bazaar1~dapper1``.
36
35
 
 
36
Dapper uses the ``python-support`` framework and later distributions use
 
37
``python-central``.  This has little effect on everyday packaging but does
 
38
mean that some of the control files are quite different.
 
39
 
37
40
Every package is first uploaded into the beta ppa.  For final release
38
41
versions it is also copied to the main PPA.
39
42
 
40
43
The packaging information is kept in branches of bzr on Launchpad, named
41
 
like 
 
44
like
42
45
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
43
46
or
44
47
<lp:~bzr/bzr/packaging-hardy>.  These branches are intended to be used
46
49
 
47
50
Preconditions
48
51
-------------
49
 
  
50
 
* You must have a Launchpad account and be a member of the teams 
 
52
 
 
53
* You must have a Launchpad account and be a member of the teams
51
54
  that own these PPAs (``~bzr``, ``~bzr-beta-ppa``).
52
55
 
53
56
* You must have a GPG key registered to your Launchpad account.
75
78
 
76
79
    [DEFAULT]
77
80
    default_host_main = notspecified
78
 
  
 
81
 
79
82
* Configure ``bzr-builddeb`` to sign the package, which is required for
80
83
  Launchpad to build it.  Put this in ``~/.bazaar/builddeb.conf`` ::
81
84
 
107
110
release packages is as simple as::
108
111
 
109
112
  cd ~/dev/bzr/releases/packaging
110
 
  ln ~/dev/bzr/releases/bzr-1.6.tar.gz ./bzr_1.6.orig.tar.gz
111
 
  export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid"
 
113
  export VERSION="1.17~rc1-1~bazaar1"
 
114
  export PACKAGE="bzr"
 
115
  export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
112
116
  ~/dev/bzr/bzr.dev/tools/packaging/update-packaging-branches.sh
113
 
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
114
 
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages
115
 
  dput bzr-beta-ppa bzr_1.6~beta3-1~bazaar1*.changes
 
117
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
 
118
  ~/dev/bzr/bzr.dev/tools/packaging/update-control.sh 1.16 1.17 1.18
 
119
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
 
120
  dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes
 
121
 
 
122
Rinse and repeat for all the plugins by changing VERSION and PACKAGE.
116
123
 
117
124
Long Form
118
125
~~~~~~~~~
121
128
   release. Such as ``~/dev/bzr/releases/packaging/hardy``. In each of these
122
129
   branches, you will produce the package for the release.
123
130
 
 
131
   The scripts will also create the branches and produce packages for
 
132
   bzrtools and bzr-svn.
 
133
 
124
134
#. Decide on the final version number.  It should be of this form::
125
135
 
126
 
     bzr-1.6~beta3-1~bazaar1~hardy1
 
136
     bzr-1.17~rc1-1~bazaar1~hardy1
127
137
 
128
138
   **Note:** There are three hyphen-separated parts: the *package name*,
129
139
   the *upstream version*, and the *packaging version*.
130
140
 
131
141
   **Caution:** Upstream betas or release candidates must insert a tilde
132
142
   to make them sort before the final release, like this:
133
 
   ``bzr-1.6~beta3-1~bazaar1~hardy1``.
 
143
   ``bzr-1.17~rc1-1~bazaar1~hardy1``.
134
144
 
135
145
   Final releases will use a release string of the form:
136
 
   ``bzr-1.6-1~bazaar1~hardy1``
 
146
   ``bzr-1.17-1~bazaar1~hardy1``
 
147
 
 
148
   Set this base of this up as a usable environment variable::
 
149
 
 
150
      export VERSION="1.17~rc1-1~bazaar1"
137
151
 
138
152
#. Export the distroreleases that you will be packaging for::
139
153
 
140
 
      export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid jaunty"
 
154
      export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
 
155
 
 
156
#. Export the program you are packaging::
 
157
 
 
158
      export PACKAGE="bzr"
141
159
 
142
160
#. Checkout (or update) the packaging branch for each supported release::
143
161
 
155
173
 
156
174
   For bzrtools this is typically::
157
175
 
158
 
      Build-Depends-Indep: bzr (>= 1.6~), rsync
159
 
      Depends: ${python:Depends}, bzr (>= 1.6~), bzr (<< 1.7~), patch
 
176
      Build-Depends-Indep: bzr (>= 1.17~), rsync
 
177
      Depends: ${python:Depends}, bzr (>= 1.17~), bzr (<< 1.18~), patch
 
178
 
 
179
   There is a helper script which will update the control file and commit it
 
180
   for all of your ``$UBUNTU_RELEASES``. It is available as::
 
181
 
 
182
    tools/packaging/update-control.sh
 
183
 
 
184
   You must supply the versions as arguments as follows
 
185
   OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as::
 
186
 
 
187
    tools/packaging/update-control.sh 1.16 1.17 1.18
160
188
 
161
189
#. Make a new ``debian/changelog`` entry for the new release,
162
190
   either by using ``dch`` or just editing the file::
163
191
 
164
 
      dch -v '1.6~beta3-1~bazaar1~hardy1' -D hardy
 
192
      dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy
165
193
 
166
194
   dch will default to the distro you're working in and this isn't checked
167
 
   against the version number (which is just our convention), so make sure 
 
195
   against the version number (which is just our convention), so make sure
168
196
   to specify it.
169
197
 
170
198
   Make sure you have the correct email address for yourself (you may need
171
199
   export DEBEMAIL=`bzr whoami` if it isn't already set), version number, and
172
200
   distribution.  It should look something like this::
173
201
 
174
 
       bzr (1.6~beta3-1~bazaar1~hardy1) hardy; urgency=low
175
 
     
 
202
       bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low
 
203
 
176
204
        * New upstream release.
177
 
     
 
205
 
178
206
       -- John Sample <sample@example.com>  Mon, 31 Mar 2008 12:36:27 +1100
179
207
 
180
208
   If you need to upload the package again to fix a problem, normally you
185
213
 
186
214
   You will also want to commit these changes into the packaging branch.
187
215
 
188
 
   There is a helper script which will update the changelog and commit it
 
216
   There is a helper script which will build all the packages
189
217
   for all of your ``$UBUNTU_RELEASES``. It is available as::
190
218
 
191
219
      tools/packaging/update-changelogs.sh
192
220
 
193
 
   You must supply the release string, such as::
194
 
 
195
 
      tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
196
 
 
197
 
   It will automatically append the distro numbering on the end.
198
 
 
199
221
#. Build the source packages::
200
222
 
201
223
      cd packaging-$DISTRO; bzr builddeb -S
207
229
 
208
230
   where ``$UID`` is the gpg key you want to use to sign the changes.
209
231
 
 
232
   There is a helper script which will build the package
 
233
   for all of your ``$UBUNTU_RELEASES``. It is available as::
 
234
 
 
235
      tools/packaging/build-packages.sh
 
236
 
210
237
#. Upload into the beta PPA for each release::
211
238
 
212
 
     dput bzr-beta-ppa bzr_1.6-1*.changes
 
239
     dput bzr-beta-ppa bzr*1.17-1*.changes
213
240
 
214
241
#. For final release versions, also copy it into the ``~bzr`` PPA::
215
242
 
216
 
     dput bzr-ppa ../bzr_1.6-1\~bazaar1\~hardy1\_source.changes
 
243
     dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes
217
244
 
218
245
   Alternatively, you can use Launchpad's "copy" feature to copy the
219
246
   packages between repositories.
227
254
Packaging bzr-svn
228
255
~~~~~~~~~~~~~~~~~
229
256
 
230
 
bzr-svn uses a packaging branch that contains both the source 
 
257
bzr-svn uses a packaging branch that contains both the source
231
258
(including any changes against upstream) and the ``debian/`` directory.
232
259
 
233
260
To build bzr-svn:
234
261
 
235
262
#. Get a checkout of ``lp:~bzr/bzr-svn/hardy-ppa/``
236
263
 
237
 
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/experimental/``
238
 
  
 
264
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/``
 
265
 
239
266
   This should bring in both upstream and packaging changes for the new
240
267
   release, and it's updated as part of the bzr-svn release process.
241
268
 
 
269
   It's quite possible you will need to resolve some conflicts.
 
270
 
242
271
#. Run ``dch -v 0.4.15-1~bazaar1-hardy1 -D hardy`` or similar
243
272
 
244
273
#. Run ``bzr builddeb --source``