7
If you want to fix or improve something in Bazaar, we want to help you.
8
You can ask at any time for help, on the list, on irc, or through a merge
11
* `Bazaar mailing list <http://lists.ubuntu.com/mailman/listinfo/bazaar>`_
13
* IRC in channel ``#bzr`` on ``irc.freenode.net``
19
Before starting on a change it's a good idea to either file a bug, find a
20
relevant existing bug, or send a proposal to the list. If there is a bug
21
you should set it to "In Progress" and if you wish assign it to yourself.
23
You might like to start with a bug tagged `easy
24
<https://bugs.launchpad.net/bzr/+bugs?field.tag=easy>`_.
26
If you are wondering if your understanding of the bug is correct, or if the
27
approach you have in mind is likely to work, feel to ask about it on the bug,
28
in ``#bzr`` or on the mailing list.
33
First, get a local copy of Bazaar::
38
$ bzr branch lp:bzr bzr.dev
40
Now make your own branch; we recommend you include the bug number and also
43
$ bzr branch bzr.dev 123456-status-speed
45
and go ahead and commit in there. Normally you should fix only one bug or
46
closely-related cluster of bugs per branch, to make reviews and merges
49
For bugs that exist in older supported branches of bzr like 2.0 or 2.1,
50
you might want to fix the bug there so it can go into a bugfix release,
53
$ bzr branch lp:bzr/2.1 bzr.2.1
54
$ bzr branch bzr.2.1 123458-2.1-status
56
You probably want this configuration in ``~/.bazaar/locations.conf``::
59
push_location = lp:~LAUNCHPAD_USER/bzr/
60
push_location:policy = appendpath
61
public_branch = http://bazaar.launchpad.net/~LAUNCHPAD_USER/bzr/
62
public_branch:policy = appendpath
64
with your local and Launchpad usernames inserted.
68
Publishing your changes
69
-----------------------
71
After you've locally committed your changes, the configuration above
72
should be enough that you can push them to Launchpad with a simple ::
80
We value test coverage and generally all changes should have or update a
81
test. There is a powerful test framework but it can be hard to find the
82
right place to put your test. Don't hesitate to ask, or to propose a
83
merge that does not yet have tests.
85
Normally for command-line code you should look in
86
``breezy.tests.blackbox`` and for library code in ``breezy.tests``. For
87
functions on an interface for which there are multiple implementations,
88
like `Transport`, look in ``breezy.tests.per_transport``.
90
It's a good idea to search the tests for something related to the thing
91
you're changing and you may find a test you can modify or adapt.
97
Normally the tests will skip if some library dependencies are not present.
98
On Ubuntu, you can install them with this command (you must have source
99
repositories enabled in Software Sources)::
101
$ sudo apt-get build-dep bzr
103
To build the binary extensions::
107
For more information: `Testing Guide <testing.html>`_.
114
Then propose a merge into bzr; for bzr 2.2 and later you can use the ``bzr
115
lp-propose-merge`` command. In the comment for your merge proposal please
116
explain what you're trying to do and why. For `example
117
<https://code.launchpad.net/~ian-clatworthy/bzr/whats-new-in-2.1/+merge/19677>`_:
119
As discussed on the mailing list, this patch adds a What's New document
120
summarising the changes since 2.0.
122
If you make additional changes to your branch you don't need to resubmit;
123
they'll automatically show up in the merge proposal.
125
* `Launchpad Code Review Help <http://help.launchpad.net/Code/Review>`_.