~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/ppa.txt

  • Committer: Vincent Ladeuil
  • Date: 2009-01-30 00:49:41 UTC
  • mto: (3982.1.1 bzr.integration)
  • mto: This revision was merged to the branch mainline in revision 3983.
  • Revision ID: v.ladeuil+lp@free.fr-20090130004941-820fpd2ryyo127vv
Add more tests, fix pycurl double handling, revert previous tracking.

* bzrlib/tests/test_http.py:
(PredefinedRequestHandler): Renamed from
PreRecordedRequestHandler.
(PredefinedRequestHandler.handle_one_request): Get the canned
response from the test server directly.
(ActivityServerMixin): Make it a true object and intialize the
attributes in the constructor. Tests can now set the
canned_response attribute before querying the server.
(TestActivity.setUp, TestActivity.tearDown,
TestActivity.get_transport, TestActivity.assertActivitiesMatch):
Extracted from test_get to be able to write other tests.
(TestActivity.test_has, TestActivity.test_readv,
TestActivity.test_post): New tests, all cases should be covered
now.

* bzrlib/transport/http/response.py:
(RangeFile.__init__, RangeFile.read, handle_response): Revert
previous tracking, both http implementations can now report
activity from the socket.

* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport._get_ranged, PyCurlTransport._post): Revert
previous tracking.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
    Final released versions.
20
20
 
21
21
<https://launchpad.net/~bzr-beta-ppa/+archive>
22
 
    Releases and release candidates.
 
22
    Releases and release candidates.    
23
23
 
24
24
<https://launchpad.net/~bzr-nightly-ppa/+archive>
25
25
    Automatic nightly builds from trunk.
38
38
versions it is also copied to the main PPA.
39
39
 
40
40
The packaging information is kept in branches of bzr on Launchpad, named
41
 
like
 
41
like 
42
42
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
43
43
or
44
44
<lp:~bzr/bzr/packaging-hardy>.  These branches are intended to be used
46
46
 
47
47
Preconditions
48
48
-------------
49
 
 
50
 
* You must have a Launchpad account and be a member of the teams
 
49
  
 
50
* You must have a Launchpad account and be a member of the teams 
51
51
  that own these PPAs (``~bzr``, ``~bzr-beta-ppa``).
52
52
 
53
53
* You must have a GPG key registered to your Launchpad account.
75
75
 
76
76
    [DEFAULT]
77
77
    default_host_main = notspecified
78
 
 
 
78
  
79
79
* Configure ``bzr-builddeb`` to sign the package, which is required for
80
80
  Launchpad to build it.  Put this in ``~/.bazaar/builddeb.conf`` ::
81
81
 
85
85
 
86
86
* You need a Ubuntu (or probably Debian) machine, and ::
87
87
 
88
 
    sudo apt-get install build-essential devscripts dput quilt patch libcrypt-ssleay-perl debhelper cdbs python-docutils
89
 
 
90
 
  Please update this document if you encounter unmet dependencies or find a
91
 
  shorter way to express them.
 
88
    sudo apt-get install build-essential devscripts dput quilt patch
92
89
 
93
90
* You will also want to have the `bzr-builddeb`_ plugin installed, which
94
91
  depends on `bzrtools`_.
107
104
release packages is as simple as::
108
105
 
109
106
  cd ~/dev/bzr/releases/packaging
110
 
  export VERSION="1.17~rc1-1~bazaar1"
111
 
  export PACKAGE="bzr"
112
 
  export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
 
107
  ln ~/dev/bzr/releases/bzr-1.6.tar.gz ./bzr_1.6.orig.tar.gz
 
108
  export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid"
113
109
  ~/dev/bzr/bzr.dev/tools/packaging/update-packaging-branches.sh
114
 
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
115
 
  ~/dev/bzr/bzr.dev/tools/packaging/update-control.sh 1.16 1.17 1.18
116
 
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
117
 
  dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes
118
 
 
119
 
Rinse and repeat for all the plugins by changing VERSION and PACKAGE.
 
110
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
 
111
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages
 
112
  dput bzr-beta-ppa bzr_1.6~beta3-1~bazaar1*.changes
120
113
 
121
114
Long Form
122
115
~~~~~~~~~
123
116
 
124
117
#. You will end up checking out a separate directory for each supported
125
 
   release. Such as ``~/dev/bzr/releases/packaging/hardy``. In each of these
126
 
   branches, you will produce the package for the release.
127
 
 
128
 
   The scripts will also create the branches and produce packages for
129
 
   bzrtools and bzr-svn.
 
118
   release. Such as ``~/dev/bzr/releases/packaging/hardy``
130
119
 
131
120
#. Decide on the final version number.  It should be of this form::
132
121
 
133
 
     bzr-1.17~rc1-1~bazaar1~hardy1
 
122
     bzr-1.6~beta3-1~bazaar1~hardy1
134
123
 
135
124
   **Note:** There are three hyphen-separated parts: the *package name*,
136
125
   the *upstream version*, and the *packaging version*.
137
126
 
138
127
   **Caution:** Upstream betas or release candidates must insert a tilde
139
128
   to make them sort before the final release, like this:
140
 
   ``bzr-1.17~rc1-1~bazaar1~hardy1``.
 
129
   ``bzr-1.6~beta3-1~bazaar1~hardy1``.
141
130
 
142
131
   Final releases will use a release string of the form:
143
 
   ``bzr-1.17-1~bazaar1~hardy1``
144
 
 
145
 
   Set this base of this up as a usable environment variable::
146
 
 
147
 
      export VERSION="1.17~rc1-1~bazaar1"
 
132
   ``bzr-1.6-1~bazaar1~hardy1``
148
133
 
149
134
#. Export the distroreleases that you will be packaging for::
150
135
 
151
 
      export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
152
 
 
153
 
#. Export the program you are packaging::
154
 
 
155
 
      export PACKAGE="bzr"
 
136
      export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid"
156
137
 
157
138
#. Checkout (or update) the packaging branch for each supported release::
158
139
 
170
151
 
171
152
   For bzrtools this is typically::
172
153
 
173
 
      Build-Depends-Indep: bzr (>= 1.17~), rsync
174
 
      Depends: ${python:Depends}, bzr (>= 1.17~), bzr (<< 1.18~), patch
175
 
 
176
 
   There is a helper script which will update the control file and commit it
177
 
   for all of your ``$UBUNTU_RELEASES``. It is available as::
178
 
 
179
 
    tools/packaging/update-control.sh
180
 
 
181
 
   You must supply the versions as arguments as follows
182
 
   OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as::
183
 
 
184
 
    tools/packaging/update-control.sh 1.16 1.17 1.18
 
154
      Build-Depends-Indep: bzr (>= 1.6~), rsync
 
155
      Depends: ${python:Depends}, bzr (>= 1.6~), bzr (<< 1.7~), patch
185
156
 
186
157
#. Make a new ``debian/changelog`` entry for the new release,
187
158
   either by using ``dch`` or just editing the file::
188
159
 
189
 
      dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy
 
160
      dch -v '1.6~beta3-1~bazaar1~hardy1' -D hardy
190
161
 
191
162
   dch will default to the distro you're working in and this isn't checked
192
 
   against the version number (which is just our convention), so make sure
 
163
   against the version number (which is just our convention), so make sure 
193
164
   to specify it.
194
165
 
195
 
   Make sure you have the correct email address for yourself (you may need
196
 
   export DEBEMAIL=`bzr whoami` if it isn't already set), version number, and
197
 
   distribution.  It should look something like this::
198
 
 
199
 
       bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low
200
 
 
 
166
   Make sure you have the correct email address for yourself, version
 
167
   number, and distribution.  It should look something like this::
 
168
 
 
169
       bzr (1.6~beta3-1~bazaar1~hardy1) hardy; urgency=low
 
170
     
201
171
        * New upstream release.
202
 
 
 
172
     
203
173
       -- John Sample <sample@example.com>  Mon, 31 Mar 2008 12:36:27 +1100
204
174
 
205
175
   If you need to upload the package again to fix a problem, normally you
210
180
 
211
181
   You will also want to commit these changes into the packaging branch.
212
182
 
213
 
   There is a helper script which will build all the packages
 
183
   There is a helper script which will update the changelog and commit it
214
184
   for all of your ``$UBUNTU_RELEASES``. It is available as::
215
185
 
216
186
      tools/packaging/update-changelogs.sh
217
187
 
 
188
   You must supply the release string, such as::
 
189
 
 
190
      tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
 
191
 
 
192
   It will automatically append the distro numbering on the end.
 
193
 
218
194
#. Build the source packages::
219
195
 
220
196
      cd packaging-$DISTRO; bzr builddeb -S
226
202
 
227
203
   where ``$UID`` is the gpg key you want to use to sign the changes.
228
204
 
229
 
   There is a helper script which will build the package
230
 
   for all of your ``$UBUNTU_RELEASES``. It is available as::
231
 
 
232
 
      tools/packaging/build-packages.sh
233
 
 
234
205
#. Upload into the beta PPA for each release::
235
206
 
236
 
     dput bzr-beta-ppa bzr*1.17-1*.changes
 
207
     dput bzr-beta-ppa bzr_1.6-1*.changes
237
208
 
238
209
#. For final release versions, also copy it into the ``~bzr`` PPA::
239
210
 
240
 
     dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes
 
211
     dput bzr-ppa ../bzr_1.6-1\~bazaar1\~hardy1\_source.changes
241
212
 
242
213
   Alternatively, you can use Launchpad's "copy" feature to copy the
243
214
   packages between repositories.
251
222
Packaging bzr-svn
252
223
~~~~~~~~~~~~~~~~~
253
224
 
254
 
bzr-svn uses a packaging branch that contains both the source
255
 
(including any changes against upstream) and the ``debian/`` directory.
 
225
bzr-svn uses bzr-builddeb in "split" mode, where the packaging branch
 
226
contains both the source and the ``debian/`` directory, and the
 
227
``orig.tar.gz`` is split off when building the packgae.
256
228
 
257
229
To build bzr-svn:
258
230
 
259
231
#. Get a checkout of ``lp:~bzr/bzr-svn/hardy-ppa/``
260
232
 
261
 
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/``
262
 
 
 
233
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/experimental/``
 
234
  
263
235
   This should bring in both upstream and packaging changes for the new
264
236
   release, and it's updated as part of the bzr-svn release process.
265
237
 
266
 
   It's quite possible you will need to resolve some conflicts.
 
238
#. ``export UPSTREAM_VERSION=bzr-svn-0.4.15`` or similar
267
239
 
268
240
#. Run ``dch -v 0.4.15-1~bazaar1-hardy1 -D hardy`` or similar
269
241