~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/contribution-quickstart.txt

  • Committer: Martin Pool
  • Date: 2005-06-28 03:02:31 UTC
  • Revision ID: mbp@sourcefrog.net-20050628030231-d311e4ebcd467ef4
Merge John's import-speedup branch:

                                                                                         
  777 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:20:32 -0500
      revision-id: john@arbash-meinel.com-20050627032031-e82a50db3863b18e
      bzr selftest was not using the correct bzr

  776 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:20:22 -0500
      revision-id: john@arbash-meinel.com-20050627032021-c9f21fde989ddaee
      Add was using an old mutter

  775 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:02:33 -0500
      revision-id: john@arbash-meinel.com-20050627030233-9165cfe98fc63298
      Cleaned up to be less different

  774 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:54:53 -0500
      revision-id: john@arbash-meinel.com-20050627025452-4260d0e744edef43
      Allow BZR_PLUGIN_PATH='' to negate plugin loading.

  773 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:49:34 -0500
      revision-id: john@arbash-meinel.com-20050627024933-b7158f67b7b9eae5
      Finished the previous cleanup (allowing load_plugins to be called twice)

  772 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:45:08 -0500
      revision-id: john@arbash-meinel.com-20050627024508-723b1df510d196fc
      Work on making the tests pass. versioning.py is calling run_cmd directly, but plugins have been loaded.

  771 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:32:29 -0500
      revision-id: john@arbash-meinel.com-20050627023228-79972744d7c53e15
      Got it down a little bit more by removing import of tree and inventory.

  770 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:26:05 -0500
      revision-id: john@arbash-meinel.com-20050627022604-350b9773ef622f95
      Reducing the number of import from bzrlib/__init__.py and bzrlib/branch.py

  769 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:32:25 -0500
      revision-id: john@arbash-meinel.com-20050627013225-32dd044f10d23948
      Updated revision.py and xml.py to include SubElement.

  768 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:03:56 -0500
      revision-id: john@arbash-meinel.com-20050627010356-ee66919e1c377faf
      Minor typo

  767 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:03:13 -0500
      revision-id: john@arbash-meinel.com-20050627010312-40d024007eb85051
      Caching the import

  766 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:51:47 -0500
      revision-id: john@arbash-meinel.com-20050627005147-5281c99e48ed1834
      Created wrapper functions for lazy import of ElementTree

  765 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:46:37 -0500
      revision-id: john@arbash-meinel.com-20050627004636-bf432902004a94c5
      Removed all of the test imports of cElementTree

  764 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:43:59 -0500
      revision-id: john@arbash-meinel.com-20050627004358-d137fbe9570dd71b
      Trying to make bzr startup faster.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Contributing to Bazaar
2
 
======================
3
 
 
4
 
Talk to us
5
 
----------
6
 
 
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
 
 
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.
15
 
 
16
 
* `Bazaar mailing list <http://lists.ubuntu.com/mailman/listinfo/bazaar>`_
17
 
 
18
 
* IRC in channel ``#bzr`` on ``irc.ubuntu.com``
19
 
 
20
 
 
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
29
 
<https://bugs.edge.launchpad.net/bzr/+bugs?field.tag=easy>`_.
30
 
 
31
 
Making a branch
32
 
---------------
33
 
 
34
 
First, get a local copy of Bazaar::
35
 
 
36
 
   $ cd $HOME
37
 
   $ bzr init-repo bzr
38
 
   $ cd bzr
39
 
   $ bzr branch lp:bzr bzr.dev
40
 
 
41
 
Now make your own branch; we recommend you include the bug number and also
42
 
a brief description::
43
 
 
44
 
   $ bzr branch bzr.dev 123456-status-speed
45
 
 
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
48
 
flow more smoothly.
49
 
 
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,
52
 
ie ::
53
 
 
54
 
   $ bzr branch lp:bzr/2.1 bzr.2.1
55
 
   $ bzr branch bzr.2.1 123458-2.1-status
56
 
 
57
 
You probably want this configuration in ``~/.bazaar/locations.conf``::
58
 
 
59
 
    [/home/USER/bzr]
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
64
 
 
65
 
with your local and Launchpad usernames inserted.
66
 
 
67
 
 
68
 
Writing tests
69
 
-------------
70
 
 
71
 
We value test coverage and generally all changes should have or update a
72
 
test.  There is a powerful test framework but it can be hard to find the
73
 
right place to put your test.  Don't hesitate to ask, or to propose a
74
 
merge that does not yet have tests.
75
 
 
76
 
Normally for command-line code you should look in
77
 
``bzrlib.tests.blackbox`` and for library code in ``bzrlib.tests``.  For
78
 
functions on an interface for which there are multiple implementations,
79
 
like `Transport`, look in ``bzrlib.tests.per_transport``.
80
 
 
81
 
It's a good idea to search the tests for something related to the thing
82
 
you're changing and you may find a test you can modify or adapt.
83
 
 
84
 
To run the tests::
85
 
 
86
 
    $ ./bzr selftest
87
 
 
88
 
Normally the tests will skip if some library dependencies are not present.
89
 
On Ubuntu, you can install them with this command (you must have some
90
 
repositories enabled in Software Sources)::
91
 
 
92
 
    $ sudo apt-get build-dep bzr
93
 
 
94
 
To build the binary extensions::
95
 
 
96
 
    $ make
97
 
 
98
 
For more information: `Testing Guide <testing.html>`_.
99
 
 
100
 
 
101
 
Proposing a merge
102
 
-----------------
103
 
 
104
 
 
105
 
Then propose a merge into bzr; for bzr 2.2 and later you can use the ``bzr
106
 
propose-merge`` command.  In the comment for your merge proposal please
107
 
explain what you're trying to do and why.  For `example
108
 
<https://code.launchpad.net/~ian-clatworthy/bzr/whats-new-in-2.1/+merge/19677>`_:
109
 
 
110
 
  As discussed on the mailing list, this patch adds a What's New document
111
 
  summarising the changes since 2.0.
112
 
 
113
 
If you make additional changes to your branch you don't need to resubmit;
114
 
they'll automatically show up in the merge proposal.
115
 
 
116
 
* `Launchpad Code Review Help <http://help.launchpad.net/Code/Review>`_.
117
 
 
118
 
 
119
 
..
120
 
   vim: ft=rst tw=74 ai