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
In particular, the rostered
12
`Patch Pilot <http://wiki.bazaar.canonical.com/PatchPilot>`_
13
is an experienced developer who will help you get your changes in, through
14
code review, advice, debugging, writing tests, or whatever it takes.
16
* `Bazaar mailing list <http://lists.ubuntu.com/mailman/listinfo/bazaar>`_
18
* IRC in channel ``#bzr`` on ``irc.ubuntu.com``
24
Before starting on a change it's a good idea to either file a bug, find a
25
relevant existing bug, or send a proposal to the list. If there is a bug
26
you should set it to "In Progress" and if you wish assign it to yourself.
28
You might like to start with a bug tagged `easy
29
<https://bugs.edge.launchpad.net/bzr/+bugs?field.tag=easy>`_.
34
First, get a local copy of Bazaar::
39
$ bzr branch lp:bzr bzr.dev
41
Now make your own branch; we recommend you include the bug number and also
44
$ bzr branch bzr.dev 123456-status-speed
46
and go ahead and commit in there. Normally you should fix only one bug or
47
closely-related cluster of bugs per branch, to make reviews and merges
50
For bugs that exist in older supported branches of bzr like 2.0 or 2.1,
51
you might want to fix the bug there so it can go into a bugfix release,
54
$ bzr branch lp:bzr/2.1 bzr.2.1
55
$ bzr branch bzr.2.1 123458-2.1-status
57
You probably want this configuration in ``~/.bazaar/locations.conf``::
60
push_location = lp:~LAUNCHPAD_USER/bzr/
61
push_location:policy = appendpath
62
public_branch = http://bazaar.launchpad.net/~LAUNCHPAD_USER/bzr/
63
public_branch:policy = appendpath
65
with your local and Launchpad usernames inserted.
69
Publishing your changes
70
-----------------------
72
After you've locally committed your changes, the configuration above
73
should be enough that you can push them to Launchpad with a simple ::
81
We value test coverage and generally all changes should have or update a
82
test. There is a powerful test framework but it can be hard to find the
83
right place to put your test. Don't hesitate to ask, or to propose a
84
merge that does not yet have tests.
86
Normally for command-line code you should look in
87
``bzrlib.tests.blackbox`` and for library code in ``bzrlib.tests``. For
88
functions on an interface for which there are multiple implementations,
89
like `Transport`, look in ``bzrlib.tests.per_transport``.
91
It's a good idea to search the tests for something related to the thing
92
you're changing and you may find a test you can modify or adapt.
98
Normally the tests will skip if some library dependencies are not present.
99
On Ubuntu, you can install them with this command (you must have some
100
repositories enabled in Software Sources)::
102
$ sudo apt-get build-dep bzr
104
To build the binary extensions::
108
For more information: `Testing Guide <testing.html>`_.
115
Then propose a merge into bzr; for bzr 2.2 and later you can use the ``bzr
116
propose-merge`` command. In the comment for your merge proposal please
117
explain what you're trying to do and why. For `example
118
<https://code.launchpad.net/~ian-clatworthy/bzr/whats-new-in-2.1/+merge/19677>`_:
120
As discussed on the mailing list, this patch adds a What's New document
121
summarising the changes since 2.0.
123
If you make additional changes to your branch you don't need to resubmit;
124
they'll automatically show up in the merge proposal.
126
* `Launchpad Code Review Help <http://help.launchpad.net/Code/Review>`_.
1
Bazaar Contribution in Five Minutes
2
===================================
4
Contributing to Bazaar requires attention to quality. To ensure
5
high-quality commits, the "Bazaar process" involves you in our
6
code review and improvement activities.
8
In brief, a contribution should include:
10
1. A brief rationale, including expected audience and use cases,
11
for inclusion in Bazaar.
13
2. A branch registered as a branch on Launchpad, and submitted as
16
3. The branch should include:
18
a. implementation of the feature,
20
b. user documentation (if the feature is visible in the user
21
interface) and/or developer documentation (if new or
22
changed APIs are provided), and
24
c. tests to ensure the specification is correctly
27
For more information, see the `Bazaar Developer Guide <HACKING.html>`_.
29
If you are not an experienced Bazaar contributor, why not ask for
30
mentoring? When you submit your merge proposal on Launchpad, simply say
31
"I'd like to be mentored, please" in your submission. Or ask for help
32
with your contribution on the IRC channel, mailing list, or on Launchpad
33
(https://answers.launchpad.net/bzr).
36
Current Bazaar Mentors
37
----------------------
39
See the roster at http://bazaar-vcs.org/PatchPilot, although other
40
developers may help too!
46
1. Why is this "Bazaar process" in HACKING.txt so complicated?
48
Answer: If we knew *that*, we'd simplify it! We are working
49
on streamlining many aspects, but quality comes first.
51
1. What sort of things can a mentor help with?
53
Anything that's getting in your way, time permitting. This includes
54
guiding you through the ``bzrlib`` API, explaining how to use our test
55
infrastructure, discussing possible designs for your bug fix or
130
59
vim: ft=rst tw=74 ai