/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
1
===========================
6622.1.23 by Jelmer Vernooij
More renames in English docs.
2
Using Breezy with Launchpad
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
3
===========================
4
5
6
Motivation
7
==========
8
9
Communities are different to teams
10
----------------------------------
11
12
The team of people required to create the initial release
13
of a piece of software may vary in size from one person
14
to several thousand people. Depending on the requirements,
15
the challenges involved, both technical and managerial,
6622.1.23 by Jelmer Vernooij
More renames in English docs.
16
can be immense. As explained in the Breezy User Guide, selecting
17
"just right" processes and using tools like Breezy to support
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
18
matching workflows can greatly help.
19
20
Success with software though requires more than a great team - it
21
requires a healthy, active *community*. This group is typically
22
far larger than the team as it includes everyone interested in
23
the software: the team, users, training partners, support partners,
24
third-party developers and so on.
25
5278.1.6 by Martin Pool
More 'open source' occurrences
26
Great communities are well understood in the free software community.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
27
Their applicability extends well beyond that though: most
28
successful commercial software vendors are well skilled at
29
building and managing the communities that grow up around
30
their flagship products.
31
32
Like great teams, great communities don't just happen.
33
Good policies and guidelines are essential for
34
fostering the right sort of behaviour and healthy
35
relationships between participants. For a deeper look at
36
this topic, see Karl Fogel's landmark book:
37
`Producing Open Source Software <http://www.producingoss.com/>`_.
38
39
40
The need for Collaborative Development Environments
41
---------------------------------------------------
42
43
An intelligent toolset is also important for tracking and managing
44
community information and workflows. These tools are called
45
Collaborative Development Environments (CDEs). These toolsets are
46
typically web-based and manage things such as announcements,
47
issues/bugs, questions and answers, downloads, documents and
48
source code. Some examples of CDEs include
49
`Launchpad <https://launchpad.net>`_,
50
`SourceForge <http://sourceforge.net>`_,
51
`java.net <http://java.net>`_ and
52
`SAP Community Network <https://www.sdn.sap.com/irj/sdn>`_.
53
54
55
Helping communities work with related communities
56
-------------------------------------------------
57
58
Many successful products have a huge number of downstream dependencies.
59
In other words, a new challenge arises with success: dealing with other
60
communities and understanding how your changes will impact them. This is
61
most obvious for projects like:
62
63
* software languages, e.g. Python, PHP, Ruby, Java, Perl, etc.
64
* compilers, e.g. gcc, JDK, etc.
65
* libraries, e.g. zlib, openssl, etc.
66
* frameworks, e.g. Zope, Ruby on Rails, Spring, etc.
67
68
However it applies equally for popular applications on which add-ons are
3167.1.1 by Matt Nordhoff
Fix typos of "Firefox" and "OpenOffice.org" in docs.
69
built, e.g. Firefox, Thunderbird, OpenOffice.org, Drupal, Wordpress, Joomla,
70
etc.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
71
72
Tools that assist communities work together to track and manage
73
issues and fixes across community boundaries are required. These
74
tools help people at both ends of the spectrum:
75
76
* users can report problems in their terms, e.g. rendering of image
77
  type X is broken in application Y on operating system Z
78
79
* developers can better appreciate the downstream impact of making a
80
  change or fix, e.g. fixing this bug in a graphics library will
81
  make the users of these 5 applications on these 10 operating
82
  systems happy.
83
84
People in the middle play the essential role of *joining the dots* and
85
communicating up and down the line. In many cases, they may also fix the
86
problem for end users, releasing a patch and pushing a suggested fix
87
to the upstream development team. Keeping track of all that over time
88
in a sustainable way is no easy task.
89
90
6622.1.23 by Jelmer Vernooij
More renames in English docs.
91
Breezy: Launchpad's VCS client
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
92
------------------------------
93
6622.1.23 by Jelmer Vernooij
More renames in English docs.
94
This tutorial looks at how Breezy and Launchpad can be used together
3101.2.3 by Ian Clatworthy
chapter -> tutorial fix
95
and how they complement each other. It is important to remember that:
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
96
6622.1.23 by Jelmer Vernooij
More renames in English docs.
97
1. Breezy can be used without Launchpad
98
2. Launchpad can be used without Breezy.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
99
100
By design though, their sum is greater than the individual
3101.2.3 by Ian Clatworthy
chapter -> tutorial fix
101
parts.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
102
103
104
Finding and browsing branches using Launchpad
105
=============================================
106
107
Finding available branches
108
--------------------------
109
110
While there are many advantages in adopting distributed version
111
control, one of the things that disappears is the all-knowing
112
central server with knowledge about all available branches. Indeed
113
in a distributed environment, interesting branches can literally
114
exist in 100s of locations across the Internet (or within an
115
Intranet for that matter).
116
117
Launchpad fills this gap by providing a registry of branches.
118
119
120
Registering branches
121
--------------------
122
123
Branches can be uploaded to Launchpad or simply registered
124
as being available in an external location. Branches can also
125
be given a Status such as *New*, *Development*, *Mature* or
126
*Abandoned*.
127
128
Note: External branches can even be hosted in legacy version control
129
tools, i.e. CVS and Subversion. Code in these systems will be
6622.1.23 by Jelmer Vernooij
More renames in English docs.
130
scanned and converted to Breezy branches on a periodic basis.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
131
For maximum fidelity of course, it is preferable for external
6622.1.23 by Jelmer Vernooij
More renames in English docs.
132
branches to be hosted in Breezy.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
133
134
135
Browsing branches
136
-----------------
137
138
Branches can be listed, filtered and sorted by numerous
139
attributes including Name, Registrant, Author, Status, Age and
140
time of last commit. Browsing of branches is also provided making
141
it easy to see things such as:
142
143
* where the branch can be downloaded from
144
* how to upload changes
145
* recent commits and the changes made by each
146
* the source code of individual files for a given version.
147
148
6622.1.23 by Jelmer Vernooij
More renames in English docs.
149
Accessing code in Launchpad using Breezy
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
150
========================================
151
5278.1.6 by Martin Pool
More 'open source' occurrences
152
Getting the code for a project
153
------------------------------
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
154
5278.1.6 by Martin Pool
More 'open source' occurrences
155
As Launchpad keeps track of thousands of projects
6622.1.23 by Jelmer Vernooij
More renames in English docs.
156
and their latest code whether it be managed by Breezy, CVS or Subversion,
157
Breezy users can grab that code as easily as this::
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
158
6622.1.23 by Jelmer Vernooij
More renames in English docs.
159
  brz branch lp:project-name
3101.2.4 by Ian Clatworthy
include feedback from kiko
160
161
where `project-name` is the Launchpad project ID. Here are some examples::
162
6622.1.23 by Jelmer Vernooij
More renames in English docs.
163
  brz branch lp:inkscape
164
  brz branch lp:amarok
165
  brz branch lp:python
166
  brz branch lp:rails
167
  brz branch lp:java-gnome
3101.2.4 by Ian Clatworthy
include feedback from kiko
168
169
You can then browse the code locally using your favorite editor or IDE and
170
change the code if you wish.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
171
3101.2.5 by Ian Clatworthy
Feedback from jam and jml
172
If a project has multiple series registered (e.g. a development series and a
173
maintenance series), the latest code for a given series can be fetched using::
174
6622.1.23 by Jelmer Vernooij
More renames in English docs.
175
  brz branch lp:project-name/series
3101.2.5 by Ian Clatworthy
Feedback from jam and jml
176
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
177
Publishing your changes
178
-----------------------
179
180
Having fixed that annoying bug or added that cool feature you've always
181
wanted, it's time to impress your friends and make the world a better
182
place by making your code available to others. As explained earlier,
6622.1.23 by Jelmer Vernooij
More renames in English docs.
183
Launchpad is a free Breezy code hosting service so you can push your
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
184
branch to it and others can access your code from there. For example,
3101.2.5 by Ian Clatworthy
Feedback from jam and jml
185
assuming you are a member of the relevant team, login to launchpad like this::
3101.2.4 by Ian Clatworthy
include feedback from kiko
186
6622.1.23 by Jelmer Vernooij
More renames in English docs.
187
  brz launchpad-login userid
3101.2.4 by Ian Clatworthy
include feedback from kiko
188
189
where `userid` is your Launchpad user ID.
3101.2.5 by Ian Clatworthy
Feedback from jam and jml
190
You can then push your changes to a team branch like this::
191
6622.1.23 by Jelmer Vernooij
More renames in English docs.
192
  brz push lp:~team-name/project-name/branch-name
3101.2.5 by Ian Clatworthy
Feedback from jam and jml
193
3101.2.4 by Ian Clatworthy
include feedback from kiko
194
Others can then download your code like this::
195
6622.1.23 by Jelmer Vernooij
More renames in English docs.
196
  brz branch lp:~team-name/project-name/branch-name
3101.2.4 by Ian Clatworthy
include feedback from kiko
197
198
199
Personal branches
200
-----------------
201
202
Even if you are not a member of a team, Launchpad can be used to publish
203
your changes. In this case, simply create a personal branch like this::
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
204
6622.1.23 by Jelmer Vernooij
More renames in English docs.
205
  brz push lp:~userid/project-name/branch-name
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
206
3101.2.4 by Ian Clatworthy
include feedback from kiko
207
Others can then download your code like this::
208
6622.1.23 by Jelmer Vernooij
More renames in English docs.
209
  brz branch lp:~userid/project-name/branch-name
3101.2.4 by Ian Clatworthy
include feedback from kiko
210
211
Note: Even when publishing to a personal branch, it is polite to notify the
212
upstream developers about your branch so they can pull your changes from
213
it if they are generally applicable to all users and meet the project's
214
quality standards.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
215
216
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
217
Package source branches
218
-----------------------
219
6622.1.23 by Jelmer Vernooij
More renames in English docs.
220
When `maintaining packages for Ubuntu using Breezy`_ you can easily access the
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
221
package's source branch on Launchpad.  The package's source branch in the
222
current (default) series can be downloaded like this::
223
6622.1.23 by Jelmer Vernooij
More renames in English docs.
224
  brz branch ubuntu:package
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
225
226
where *package* is the name of the Ubuntu package you want to access.  To
227
download the package branch for a specific series in Ubuntu (e.g. Maverick or
228
Lucid), use this::
229
6622.1.23 by Jelmer Vernooij
More renames in English docs.
230
  brz branch ubuntu:maverick/package
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
231
5462.4.4 by Barry Warsaw
Update docs.
232
Ubuntu distroseries can also be abbreviated to just their first letter.  For
233
example, the above could also be written::
234
6622.1.23 by Jelmer Vernooij
More renames in English docs.
235
  brz branch ubuntu:m/package
5462.4.4 by Barry Warsaw
Update docs.
236
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
237
You can also download the package source branch from Launchpad for several
238
Debian series.  The default series can be downloaded like this::
239
6622.1.23 by Jelmer Vernooij
More renames in English docs.
240
  brz branch debianlp:package
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
241
242
and a specific series can be downloaded like this::
243
6622.1.23 by Jelmer Vernooij
More renames in English docs.
244
  brz branch debianlp:lenny/package
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
245
246
Note that the ``debianlp:`` scheme access the Debian source branch for a
247
package from Launchpad only.
248
6622.1.23 by Jelmer Vernooij
More renames in English docs.
249
.. _`maintaining packages for Ubuntu using Breezy`: https://wiki.ubuntu.com/DistributedDevelopment
5462.4.1 by Barry Warsaw
Added support for ubuntu: and debianlp: schemes, accessing the relevant
250
251
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
252
Linking branches using Launchpad
253
================================
254
255
Associating a branch with a bug
256
-------------------------------
257
258
After registering a branch, you can associate it to a bug so that
259
people interested in that bug can track and download the fix as
260
it becomes available.
261
262
To do this, the steps are:
263
264
1. Navigate to the bug in question.
265
266
2. Select `Add branch` under `Actions`.
267
268
3. Select the branch.
269
270
4. Optionally set the State of the relationship. This is
271
   *Fix In Progress* by default but you may wish to set it
272
   to another state such as *Fix Available* if the branch already
273
   addresses the issue.
274
275
If you wish, you can also provide some arbitrary comments about
276
the relationship between the bug and the branch.
277
278
6622.1.23 by Jelmer Vernooij
More renames in English docs.
279
Changing the state in Launchpad while committing in Breezy
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
280
----------------------------------------------------------
281
6622.1.23 by Jelmer Vernooij
More renames in English docs.
282
Breezy and Launchpad can work together to reduce some of
283
the status housekeeping for you. When you commit using Breezy,
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
284
use the --fixes option like this::
285
6622.1.23 by Jelmer Vernooij
More renames in English docs.
286
  brz commit --fixes lp:1234 -m "..."
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
287
288
where 1234 is the bug ID. This will changes the State of the
289
bug-branch relationship to *Fix Available*. If the one commit
290
fixes multiple issues, the --fixes option can be specified multiple
291
times.
292
293
One of the cool things about this feature is that Launchpad does
294
not need to be accessible when making the commit. The ``--fixes``
295
option works by storing metadata which Launchpad will detect next
296
time the branch is pushed to it or scanned once online again.
297
298
Note: Launchpad will not implicitly close a bug just because a
299
branch is available that fixes it. There are several reasons for this.
300
Firstly, the branch usually needs to be merged into the trunk
301
(main development branch) before most teams consider it fixed.
302
Secondly, many teams have a separate process for confirming
303
bugs are fixed over and above a developer saying so.
304
3101.2.4 by Ian Clatworthy
include feedback from kiko
305
As explained later, merge control features are currently under
306
development in Launchpad and automatically changing the status of
307
bugs to *Fix Committed* will be more appropriate once those features
308
are in place.
309
310
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
311
Associating a branch with a blueprint
312
-------------------------------------
313
314
After registering a branch, you can associate it to a blueprint so that
315
people interested in that blueprint can track and test the feature as
316
it develops.
317
318
To do this, the steps are:
319
320
1. Navigate to the blueprint in question.
321
322
2. Select `Link branch` under `Actions`.
323
324
3. Select the branch.
325
326
If you wish, you can also provide some arbitrary comments about
327
the relationship between the blueprint and the branch.
328
329
330
Managing releases using Launchpad
331
=================================
332
333
Integrating changes
334
-------------------
335
336
Once a branch has been developed and published, communities
337
typically go through a rigorous process before those changes
338
are integrated into the core product and rolled out to end users.
339
Some of the steps involved may include:
340
341
* peer review of the changes
342
343
* deciding which releases to include the changes in, e.g. the
344
  next maintenance release, the next major release, or both
345
346
* running functional regression tests
347
348
* benchmarking to ensure performance remains acceptable
349
350
* packaging into early access releases for end user testing
351
352
* documentation updates, e.g. Release Notes for the targeted
353
  releases
354
355
* translation of the user interface and documentation into
356
  multiple languages.
357
358
This section briefly looks at some of the features in Launchpad that
3101.2.4 by Ian Clatworthy
include feedback from kiko
359
help get good quality code into production. Strong integration with
6622.1.23 by Jelmer Vernooij
More renames in English docs.
360
Breezy is core to making this happen smoothly.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
361
362
Note: Where indicated, some of the features below are still under
363
development. If one or more of these features interest you, please
364
consider joining the Launchpad beta test team at this link:
365
https://help.launchpad.net/JoiningLaunchpadBetaTesters. You can
366
then get early access to features and provide feedback to the
367
developers before wider roll-out.
368
369
370
Branch merge proposals
371
----------------------
372
373
After navigating to a branch in Launchpad, one of the available actions
374
is *Propose for merging*. This lets you nominate which branch this code
375
ought to be merged into.
376
3101.2.4 by Ian Clatworthy
include feedback from kiko
377
Tracking the knowledge about which branches are proposed to be merged
378
into a codeline helps Release Managers keep on top of what still needs
379
to be completed, or can be completed, before a ship date. Using this
380
information, they can ensure branches are merged after completing any
381
necessary reviews. In the simple case, the Release Manager may manually
382
merge branches. In more advanced cases, the merging could be automatically
383
done by a robot (like `PQM`_) when the branch reaches the right state
384
(e.g. *Review completed*).
385
386
.. _PQM: https://launchpad.net/pqm
387
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
388
389
Code review tracking
390
--------------------
391
3638.6.25 by Dmitry Vasiliev
using_bazaar_with_launchpad.txt: Update and review translation
392
A number of features are under development in Launchpad to track the
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
393
states, conversations and outcomes of code reviews. These features are
394
expected to be integrated with branch merge proposals and branch
395
browsing features.
396
3101.2.4 by Ian Clatworthy
include feedback from kiko
397
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
398
Personal Package Archives (PPAs)
399
--------------------------------
400
401
PPAs help developers and development teams get custom builds into the
402
hands of users for early testing and feedback. In other words, a PPA
403
allows a developer to form a community of testers who are interested
404
in their changes. The testing community can install the packages,
405
run them for the test period and then remove them cleanly from their
406
system.
407
408
See https://help.launchpad.net/PPAQuickStart for further details.
409
410
411
Translations
412
------------
413
414
The Translations module in Launchpad is designed to make it easy for
415
anyone to get involved translating applications to languages they know.
416
Translators are shielded from the low level details.
417
418
Launchpad keeps track of the translations for each major version of a
419
project separately, allowing translators to continue to improve the
420
translations of your stable releases while others start work on newer
421
versions that are still in development. Translation speed in reduced
422
by sharing resources across projects. Automatic suggestions, from a
423
library of 750,000 translated strings, and a community of 19,000
424
registered translators can radically cut the time required to
425
localise your project into many languages.
426
427
428
Summary
429
=======
430
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
431
The communities we join, whether off-line or on-line,
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
432
say a lot about the sort of people we are. The flip-side
433
to this is that the tools you choose for your community - particularly
434
the CDE and version control tool - can have a large impact on who
435
joins and how easily they can contribute.
436
6622.1.23 by Jelmer Vernooij
More renames in English docs.
437
In their own right, Launchpad and Breezy are highly useful tools.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
438
Together, they can:
439
440
* help your community track major assets such as source code and knowledge
441
* help it grow by reducing barriers to entry
442
* help it interact with related communities.
443
6622.1.23 by Jelmer Vernooij
More renames in English docs.
444
In particular, Launchpad is a free code hosting service for your Breezy
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
445
branches, branches can be browsed online, branches can be linked to bugs
446
and blueprints, and the status of bug-branch relationships can be
6622.1.23 by Jelmer Vernooij
More renames in English docs.
447
automatically managed by mentioning the bug while committing in Breezy.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
448
Further integration is under development with the aim of streamlining
3101.2.4 by Ian Clatworthy
include feedback from kiko
449
the process from *great idea* to *running code in the hands of end users*.
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
450
6622.1.23 by Jelmer Vernooij
More renames in English docs.
451
If you have any feedback on how you'd like to see Breezy and Launchpad
3101.2.1 by Ian Clatworthy
Add Using Bazaar with LP tutorial
452
further integrated, please contact us on the Bazaar mailing list,
453
bazaar@lists.canonical.com.
3101.2.3 by Ian Clatworthy
chapter -> tutorial fix
454
5278.1.6 by Martin Pool
More 'open source' occurrences
455
While designed as a free service to support free software projects,
3101.2.3 by Ian Clatworthy
chapter -> tutorial fix
456
Canonical may make Launchpad available to commercial software developers
457
depending on their requirements. We would be happy to hear from you
5278.1.6 by Martin Pool
More 'open source' occurrences
458
if you think Launchpad would be useful for managing your community.