5037.2.8
by Martin Pool
Clearer instructions on building and getting started |
1 |
Contributing to Bazaar |
2 |
====================== |
|
4806.1.2
by Andrew Bennetts
Add 5 minute contribution guide contributed by Stephen Turnbull. |
3 |
|
5037.2.9
by Martin Pool
Point to list and irc (thanks parthm) |
4 |
Talk to us |
5 |
---------- |
|
6 |
||
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
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 |
|
9 |
proposal on Launchpad. |
|
10 |
||
5037.2.8
by Martin Pool
Clearer instructions on building and getting started |
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. |
|
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
15 |
|
5037.2.9
by Martin Pool
Point to list and irc (thanks parthm) |
16 |
* `Bazaar mailing list <http://lists.ubuntu.com/mailman/listinfo/bazaar>`_ |
17 |
||
18 |
* IRC in channel ``#bzr`` on ``irc.ubuntu.com`` |
|
19 |
||
20 |
||
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
21 |
Starting |
22 |
-------- |
|
23 |
||
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. |
|
27 |
||
28 |
You might like to start with a bug tagged `easy |
|
5050.45.20
by Vincent Ladeuil
Fix the edge references in the doc |
29 |
<https://bugs.launchpad.net/bzr/+bugs?field.tag=easy>`_. |
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
30 |
|
6060.4.1
by Martin Pool
contribution doc: feel free to ask what to do |
31 |
If you are wondering if your understanding of the bug is correct, or if the |
32 |
approach you have in mind is likely to work, feel to ask about it on the bug, |
|
33 |
in ``#bzr`` or on the mailing list. |
|
34 |
||
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
35 |
Making a branch |
36 |
--------------- |
|
37 |
||
38 |
First, get a local copy of Bazaar:: |
|
39 |
||
40 |
$ cd $HOME |
|
41 |
$ bzr init-repo bzr |
|
42 |
$ cd bzr |
|
43 |
$ bzr branch lp:bzr bzr.dev |
|
44 |
||
45 |
Now make your own branch; we recommend you include the bug number and also |
|
46 |
a brief description:: |
|
47 |
||
48 |
$ bzr branch bzr.dev 123456-status-speed |
|
49 |
||
50 |
and go ahead and commit in there. Normally you should fix only one bug or |
|
51 |
closely-related cluster of bugs per branch, to make reviews and merges |
|
52 |
flow more smoothly. |
|
53 |
||
54 |
For bugs that exist in older supported branches of bzr like 2.0 or 2.1, |
|
55 |
you might want to fix the bug there so it can go into a bugfix release, |
|
56 |
ie :: |
|
57 |
||
58 |
$ bzr branch lp:bzr/2.1 bzr.2.1 |
|
59 |
$ bzr branch bzr.2.1 123458-2.1-status |
|
60 |
||
61 |
You probably want this configuration in ``~/.bazaar/locations.conf``:: |
|
62 |
||
5037.2.11
by Martin Pool
Clarify Launchpad setup example |
63 |
[/home/USER/bzr] |
64 |
push_location = lp:~LAUNCHPAD_USER/bzr/ |
|
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
65 |
push_location:policy = appendpath |
5037.2.11
by Martin Pool
Clarify Launchpad setup example |
66 |
public_branch = http://bazaar.launchpad.net/~LAUNCHPAD_USER/bzr/ |
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
67 |
public_branch:policy = appendpath |
68 |
||
5037.2.11
by Martin Pool
Clarify Launchpad setup example |
69 |
with your local and Launchpad usernames inserted. |
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
70 |
|
71 |
||
5283.3.1
by Martin Pool
Remove obsolete documentation about using bzr-pqm (thanks bialix) |
72 |
|
73 |
Publishing your changes |
|
74 |
----------------------- |
|
75 |
||
76 |
After you've locally committed your changes, the configuration above |
|
77 |
should be enough that you can push them to Launchpad with a simple :: |
|
78 |
||
79 |
$ bzr push |
|
80 |
||
81 |
||
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
82 |
Writing tests |
83 |
------------- |
|
84 |
||
85 |
We value test coverage and generally all changes should have or update a |
|
86 |
test. There is a powerful test framework but it can be hard to find the |
|
87 |
right place to put your test. Don't hesitate to ask, or to propose a |
|
88 |
merge that does not yet have tests. |
|
89 |
||
90 |
Normally for command-line code you should look in |
|
91 |
``bzrlib.tests.blackbox`` and for library code in ``bzrlib.tests``. For |
|
92 |
functions on an interface for which there are multiple implementations, |
|
93 |
like `Transport`, look in ``bzrlib.tests.per_transport``. |
|
94 |
||
95 |
It's a good idea to search the tests for something related to the thing |
|
96 |
you're changing and you may find a test you can modify or adapt. |
|
97 |
||
5037.2.8
by Martin Pool
Clearer instructions on building and getting started |
98 |
To run the tests:: |
99 |
||
100 |
$ ./bzr selftest |
|
101 |
||
102 |
Normally the tests will skip if some library dependencies are not present. |
|
5819.1.1
by Jonathan Riddell
build-dep needs source repositories |
103 |
On Ubuntu, you can install them with this command (you must have source |
5037.2.8
by Martin Pool
Clearer instructions on building and getting started |
104 |
repositories enabled in Software Sources):: |
105 |
||
106 |
$ sudo apt-get build-dep bzr |
|
107 |
||
108 |
To build the binary extensions:: |
|
109 |
||
110 |
$ make |
|
111 |
||
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
112 |
For more information: `Testing Guide <testing.html>`_. |
113 |
||
5037.2.8
by Martin Pool
Clearer instructions on building and getting started |
114 |
|
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
115 |
Proposing a merge |
116 |
----------------- |
|
117 |
||
118 |
||
119 |
Then propose a merge into bzr; for bzr 2.2 and later you can use the ``bzr |
|
5452.1.1
by John C Barstow
Fix reference to lp-propose-merge in developer docs |
120 |
lp-propose-merge`` command. In the comment for your merge proposal please |
5037.2.7
by Martin Pool
Better contribution information, replacing wiki page |
121 |
explain what you're trying to do and why. For `example |
122 |
<https://code.launchpad.net/~ian-clatworthy/bzr/whats-new-in-2.1/+merge/19677>`_: |
|
123 |
||
124 |
As discussed on the mailing list, this patch adds a What's New document |
|
125 |
summarising the changes since 2.0. |
|
126 |
||
5037.2.10
by Martin Pool
Tips for code review |
127 |
If you make additional changes to your branch you don't need to resubmit; |
128 |
they'll automatically show up in the merge proposal. |
|
129 |
||
130 |
* `Launchpad Code Review Help <http://help.launchpad.net/Code/Review>`_. |
|
131 |
||
4806.1.2
by Andrew Bennetts
Add 5 minute contribution guide contributed by Stephen Turnbull. |
132 |
|
133 |
.. |
|
134 |
vim: ft=rst tw=74 ai |