Merge lp:~mbp/bzr/doc into lp:bzr

Proposed by Martin Pool
Status: Merged
Approved by: John A Meinel
Approved revision: no longer in the source branch.
Merged at revision: 5227
Proposed branch: lp:~mbp/bzr/doc
Merge into: lp:bzr
Diff against target: 485 lines (+185/-237)
5 files modified
doc/developers/HACKING.txt (+1/-236)
doc/developers/code-review.txt (+170/-0)
doc/developers/index-plain.txt (+2/-0)
doc/developers/index.txt (+1/-0)
doc/developers/testing.txt (+11/-1)
To merge this branch: bzr merge lp:~mbp/bzr/doc
Reviewer Review Type Date Requested Status
John A Meinel Approve
Review via email: mp+25137@code.launchpad.net

Commit message

(mbp) mention babune in testing guide; split out review guide

Description of the change

Mention Babune in the testing guide.

To post a comment you must log in.
Revision history for this message
John A Meinel (jameinel) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Martin Pool wrote:
> Martin Pool has proposed merging lp:~mbp/bzr/doc into lp:bzr.
>
> Requested reviews:
> bzr-core (bzr-core)
> Related bugs:
> #398653 Releasing guide should include instructions on updating trunk NEWS file
> https://bugs.launchpad.net/bugs/398653
> #473099 Incorrect markup in centralized workflow tutorial
> https://bugs.launchpad.net/bugs/473099
> #512385 Broken link to "quick start card" in online user guide
> https://bugs.launchpad.net/bugs/512385
>
>
> Mention Babune in the testing guide.
>

 merge: approve

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkvqmQwACgkQJdeBCYSNAAMVOACeKZVFdoCXPXGdHD2n/C7yp2Dz
i3QAoKxsNHzIZTkopePafb+OMX9DPm/A
=xpco
-----END PGP SIGNATURE-----

review: Approve
Revision history for this message
Martin Pool (mbp) wrote :

submitted to PQM by hand.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'doc/developers/HACKING.txt'
--- doc/developers/HACKING.txt 2010-04-16 12:59:03 +0000
+++ doc/developers/HACKING.txt 2010-05-12 11:06:25 +0000
@@ -179,11 +179,9 @@
179179
180* Bazaar - http://bazaar-vcs.org/180* Bazaar - http://bazaar-vcs.org/
181181
182* Bundle Buggy - http://bundlebuggy.aaronbentley.com/
183
184* Patch Queue Manager - https://launchpad.net/pqm/182* Patch Queue Manager - https://launchpad.net/pqm/
185183
186For further information, see http://bazaar-vcs.org/BzrDevelopment.184For further information, see <http://wiki.bazaar.canonical.com/BzrDevelopment>.
187185
188186
189187
@@ -272,239 +270,6 @@
272<http://doc.bazaar-vcs.org/developers/overview.html>`_.270<http://doc.bazaar-vcs.org/developers/overview.html>`_.
273271
274272
275The Code Review Process
276#######################
277
278All code changes coming in to Bazaar are reviewed by someone else.
279Normally changes by core contributors are reviewed by one other core
280developer, and changes from other people are reviewed by two core
281developers. Use intelligent discretion if the patch is trivial.
282
283Good reviews do take time. They also regularly require a solid
284understanding of the overall code base. In practice, this means a small
285number of people often have a large review burden - with knowledge comes
286responsibility. No one likes their merge requests sitting in a queue going
287nowhere, so reviewing sooner rather than later is strongly encouraged.
288
289
290
291
292
293Review cover letters
294====================
295
296Please put a "cover letter" on your merge request explaining:
297
298* the reason **why** you're making this change
299
300* **how** this change achieves this purpose
301
302* anything else you may have fixed in passing
303
304* anything significant that you thought of doing, such as a more
305 extensive fix or a different approach, but didn't or couldn't do now
306
307A good cover letter makes reviewers' lives easier because they can decide
308from the letter whether they agree with the purpose and approach, and then
309assess whether the patch actually does what the cover letter says.
310Explaining any "drive-by fixes" or roads not taken may also avoid queries
311from the reviewer. All in all this should give faster and better reviews.
312Sometimes writing the cover letter helps the submitter realize something
313else they need to do. The size of the cover letter should be proportional
314to the size and complexity of the patch.
315
316
317Reviewing proposed changes
318==========================
319
320Anyone is welcome to review code, and reply to the thread with their
321opinion or comments.
322
323The simplest way to review a proposed change is to just read the patch on
324the list or in Bundle Buggy. For more complex changes it may be useful
325to make a new working tree or branch from trunk, and merge the proposed
326change into it, so you can experiment with the code or look at a wider
327context.
328
329There are three main requirements for code to get in:
330
331* Doesn't reduce test coverage: if it adds new methods or commands,
332 there should be tests for them. There is a good test framework
333 and plenty of examples to crib from, but if you are having trouble
334 working out how to test something feel free to post a draft patch
335 and ask for help.
336
337* Doesn't reduce design clarity, such as by entangling objects
338 we're trying to separate. This is mostly something the more
339 experienced reviewers need to help check.
340
341* Improves bugs, features, speed, or code simplicity.
342
343Code that goes in should not degrade any of these aspects. Patches are
344welcome that only cleanup the code without changing the external
345behaviour. The core developers take care to keep the code quality high
346and understandable while recognising that perfect is sometimes the enemy
347of good.
348
349It is easy for reviews to make people notice other things which should be
350fixed but those things should not hold up the original fix being accepted.
351New things can easily be recorded in the Bug Tracker instead.
352
353It's normally much easier to review several smaller patches than one large
354one. You might want to use ``bzr-loom`` to maintain threads of related
355work, or submit a preparatory patch that will make your "real" change
356easier.
357
358
359Checklist for reviewers
360=======================
361
362* Do you understand what the code's doing and why?
363
364* Will it perform reasonably for large inputs, both in memory size and
365 run time? Are there some scenarios where performance should be
366 measured?
367
368* Is it tested, and are the tests at the right level? Are there both
369 blackbox (command-line level) and API-oriented tests?
370
371* If this change will be visible to end users or API users, is it
372 appropriately documented in NEWS?
373
374* Does it meet the coding standards below?
375
376* If it changes the user-visible behaviour, does it update the help
377 strings and user documentation?
378
379* If it adds a new major concept or standard practice, does it update the
380 developer documentation?
381
382* (your ideas here...)
383
384
385Reviews on Launchpad
386====================
387
388From May 2009 on, we prefer people to propose code reviews through
389Launchpad.
390
391 * <https://launchpad.net/+tour/code-review>
392
393 * <https://help.launchpad.net/Code/Review>
394
395Anyone can propose or comment on a merge proposal just by creating a
396Launchpad account.
397
398There are two ways to create a new merge proposal: through the web
399interface or by email.
400
401
402Proposing a merge through the web
403---------------------------------
404
405To create the proposal through the web, first push your branch to Launchpad.
406For example, a branch dealing with documentation belonging to the Launchpad
407User mbp could be pushed as ::
408
409 bzr push lp:~mbp/bzr/doc
410
411Then go to the branch's web page, which in this case would be
412<https://code.launchpad.net/~mbp/bzr/doc>. You can simplify this step by just
413running ::
414
415 bzr lp-open
416
417You can then click "Propose for merging into another branch", and enter your
418cover letter (see above) into the web form. Typically you'll want to merge
419into ``~bzr/bzr/trunk`` which will be the default; you might also want to
420nominate merging into a release branch for a bug fix. There is the option to
421specify a specific reviewer or type of review, and you shouldn't normally
422change those.
423
424Submitting the form takes you to the new page about the merge proposal
425containing the diff of the changes, comments by interested people, and
426controls to comment or vote on the change.
427
428Proposing a merge by mail
429-------------------------
430
431To propose a merge by mail, send a bundle to ``merge@code.launchpad.net``.
432
433You can generate a merge request like this::
434
435 bzr send -o bug-1234.diff
436
437``bzr send`` can also send mail directly if you prefer; see the help.
438
439Reviewing changes
440-----------------
441
442From <https://code.launchpad.net/bzr/+activereviews> you can see all
443currently active reviews, and choose one to comment on. This page also
444shows proposals that are now approved and should be merged by someone with
445PQM access.
446
447
448Reviews through Bundle Buggy
449============================
450
451The Bundle Buggy tool used up to May 2009 is still available as a review
452mechanism.
453
454Sending patches for review
455--------------------------
456
457If you'd like to propose a change, please post to the
458bazaar@lists.canonical.com list with a bundle, patch, or link to a
459branch. Put ``[PATCH]`` or ``[MERGE]`` in the subject so Bundle Buggy
460can pick it out, and explain the change in the email message text.
461Remember to update the NEWS file as part of your change if it makes any
462changes visible to users or plugin developers. Please include a diff
463against mainline if you're giving a link to a branch.
464
465You can generate a merge request like this::
466
467 bzr send -o bug-1234.patch
468
469A ``.patch`` extension is recommended instead of .bundle as many mail clients
470will send the latter as a binary file.
471
472``bzr send`` can also send mail directly if you prefer; see the help.
473
474Please do **NOT** put [PATCH] or [MERGE] in the subject line if you don't
475want it to be merged. If you want comments from developers rather than
476to be merged, you can put ``[RFC]`` in the subject line.
477
478If this change addresses a bug, please put the bug number in the subject
479line too, in the form ``[#1]`` so that Bundle Buggy can recognize it.
480
481If the change is intended for a particular release mark that in the
482subject too, e.g. ``[1.6]``.
483Anyone can "vote" on the mailing list by expressing an opinion. Core
484developers can also vote using Bundle Buggy. Here are the voting codes and
485their explanations.
486
487:approve: Reviewer wants this submission merged.
488:tweak: Reviewer wants this submission merged with small changes. (No
489 re-review required.)
490:abstain: Reviewer does not intend to vote on this patch.
491:resubmit: Please make changes and resubmit for review.
492:reject: Reviewer doesn't want this kind of change merged.
493:comment: Not really a vote. Reviewer just wants to comment, for now.
494
495If a change gets two approvals from core reviewers, and no rejections,
496then it's OK to come in. Any of the core developers can bring it into the
497bzr.dev trunk and backport it to maintenance branches if required. The
498Release Manager will merge the change into the branch for a pending
499release, if any. As a guideline, core developers usually merge their own
500changes and volunteer to merge other contributions if they were the second
501reviewer to agree to a change.
502
503To track the progress of proposed changes, use Bundle Buggy. See
504http://bundlebuggy.aaronbentley.com/help for a link to all the
505outstanding merge requests together with an explanation of the columns.
506Bundle Buggy will also mail you a link to track just your change.
507
508Coding Style Guidelines273Coding Style Guidelines
509#######################274#######################
510275
511276
=== added file 'doc/developers/code-review.txt'
--- doc/developers/code-review.txt 1970-01-01 00:00:00 +0000
+++ doc/developers/code-review.txt 2010-05-12 11:06:25 +0000
@@ -0,0 +1,170 @@
1The Code Review Process
2#######################
3
4All code changes coming in to Bazaar are reviewed by someone else.
5Normally changes by core contributors are reviewed by one other core
6developer, and changes from other people are reviewed by two core
7developers. Use intelligent discretion if the patch is trivial.
8
9Good reviews do take time. They also regularly require a solid
10understanding of the overall code base. In practice, this means a small
11number of people often have a large review burden - with knowledge comes
12responsibility. No one likes their merge requests sitting in a queue going
13nowhere, so reviewing sooner rather than later is strongly encouraged.
14
15
16
17Review cover letters
18====================
19
20Please put a "cover letter" on your merge request explaining:
21
22* the reason **why** you're making this change
23
24* **how** this change achieves this purpose
25
26* anything else you may have fixed in passing
27
28* anything significant that you thought of doing, such as a more
29 extensive fix or a different approach, but didn't or couldn't do now
30
31A good cover letter makes reviewers' lives easier because they can decide
32from the letter whether they agree with the purpose and approach, and then
33assess whether the patch actually does what the cover letter says.
34Explaining any "drive-by fixes" or roads not taken may also avoid queries
35from the reviewer. All in all this should give faster and better reviews.
36Sometimes writing the cover letter helps the submitter realize something
37else they need to do. The size of the cover letter should be proportional
38to the size and complexity of the patch.
39
40
41Reviewing proposed changes
42==========================
43
44Anyone is welcome to review code, and reply to the thread with their
45opinion or comments.
46
47The simplest way to review a proposed change is to just read the patch on
48the list or in Bundle Buggy. For more complex changes it may be useful
49to make a new working tree or branch from trunk, and merge the proposed
50change into it, so you can experiment with the code or look at a wider
51context.
52
53There are three main requirements for code to get in:
54
55* Doesn't reduce test coverage: if it adds new methods or commands,
56 there should be tests for them. There is a good test framework
57 and plenty of examples to crib from, but if you are having trouble
58 working out how to test something feel free to post a draft patch
59 and ask for help.
60
61* Doesn't reduce design clarity, such as by entangling objects
62 we're trying to separate. This is mostly something the more
63 experienced reviewers need to help check.
64
65* Improves bugs, features, speed, or code simplicity.
66
67Code that goes in should not degrade any of these aspects. Patches are
68welcome that only cleanup the code without changing the external
69behaviour. The core developers take care to keep the code quality high
70and understandable while recognising that perfect is sometimes the enemy
71of good.
72
73It is easy for reviews to make people notice other things which should be
74fixed but those things should not hold up the original fix being accepted.
75New things can easily be recorded in the Bug Tracker instead.
76
77It's normally much easier to review several smaller patches than one large
78one. You might want to use ``bzr-loom`` to maintain threads of related
79work, or submit a preparatory patch that will make your "real" change
80easier.
81
82
83Checklist for reviewers
84=======================
85
86* Do you understand what the code's doing and why?
87
88* Will it perform reasonably for large inputs, both in memory size and
89 run time? Are there some scenarios where performance should be
90 measured?
91
92* Is it tested, and are the tests at the right level? Are there both
93 blackbox (command-line level) and API-oriented tests?
94
95* If this change will be visible to end users or API users, is it
96 appropriately documented in NEWS?
97
98* Does it meet the coding standards below?
99
100* If it changes the user-visible behaviour, does it update the help
101 strings and user documentation?
102
103* If it adds a new major concept or standard practice, does it update the
104 developer documentation?
105
106* (your ideas here...)
107
108
109Reviews on Launchpad
110====================
111
112From May 2009 on, we prefer people to propose code reviews through
113Launchpad.
114
115 * <https://launchpad.net/+tour/code-review>
116
117 * <https://help.launchpad.net/Code/Review>
118
119Anyone can propose or comment on a merge proposal just by creating a
120Launchpad account.
121
122There are two ways to create a new merge proposal: through the web
123interface or by email.
124
125
126Proposing a merge through the web
127---------------------------------
128
129To create the proposal through the web, first push your branch to Launchpad.
130For example, a branch dealing with documentation belonging to the Launchpad
131User mbp could be pushed as ::
132
133 bzr push lp:~mbp/bzr/doc
134
135Then go to the branch's web page, which in this case would be
136<https://code.launchpad.net/~mbp/bzr/doc>. You can simplify this step by just
137running ::
138
139 bzr lp-open
140
141You can then click "Propose for merging into another branch", and enter your
142cover letter (see above) into the web form. Typically you'll want to merge
143into ``~bzr/bzr/trunk`` which will be the default; you might also want to
144nominate merging into a release branch for a bug fix. There is the option to
145specify a specific reviewer or type of review, and you shouldn't normally
146change those.
147
148Submitting the form takes you to the new page about the merge proposal
149containing the diff of the changes, comments by interested people, and
150controls to comment or vote on the change.
151
152Proposing a merge by mail
153-------------------------
154
155To propose a merge by mail, send a bundle to ``merge@code.launchpad.net``.
156
157You can generate a merge request like this::
158
159 bzr send -o bug-1234.diff
160
161``bzr send`` can also send mail directly if you prefer; see the help.
162
163Reviewing changes
164-----------------
165
166From <https://code.launchpad.net/bzr/+activereviews> you can see all
167currently active reviews, and choose one to comment on. This page also
168shows proposals that are now approved and should be merged by someone with
169PQM access.
170
0171
=== modified file 'doc/developers/index-plain.txt'
--- doc/developers/index-plain.txt 2010-02-23 04:12:26 +0000
+++ doc/developers/index-plain.txt 2010-05-12 11:06:25 +0000
@@ -24,6 +24,8 @@
2424
25* `Testing <testing.html>`_ |--| Guide to writing tests for Bazaar.25* `Testing <testing.html>`_ |--| Guide to writing tests for Bazaar.
2626
27* `Code Review <code-review.html>`_.
28
27* `Writing plugins <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_29* `Writing plugins <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_
28 |--| specific advice on writing Bazaar plugins. (web link)30 |--| specific advice on writing Bazaar plugins. (web link)
2931
3032
=== modified file 'doc/developers/index.txt'
--- doc/developers/index.txt 2010-02-23 04:12:26 +0000
+++ doc/developers/index.txt 2010-05-12 11:06:25 +0000
@@ -23,6 +23,7 @@
23 bug-handling23 bug-handling
24 HACKING24 HACKING
25 testing25 testing
26 code-review
2627
27* `Contributing to Bazaar Documentation <http://wiki.bazaar.canonical.com/ContributingToTheDocs>`_ (wiki)28* `Contributing to Bazaar Documentation <http://wiki.bazaar.canonical.com/ContributingToTheDocs>`_ (wiki)
2829
2930
=== modified file 'doc/developers/testing.txt'
--- doc/developers/testing.txt 2010-05-06 23:41:35 +0000
+++ doc/developers/testing.txt 2010-05-12 11:06:25 +0000
@@ -6,7 +6,7 @@
6The Importance of Testing6The Importance of Testing
7=========================7=========================
88
9Reliability is a critical success factor for any Version Control System.9Reliability is a critical success factor for any version control system.
10We want Bazaar to be highly reliable across multiple platforms while10We want Bazaar to be highly reliable across multiple platforms while
11evolving over time to meet the needs of its community.11evolving over time to meet the needs of its community.
1212
@@ -183,6 +183,16 @@
183183
184.. _testrepository: https://launchpad.net/testrepository184.. _testrepository: https://launchpad.net/testrepository
185185
186
187Babune continuous integration
188-----------------------------
189
190We have a Hudson continuous-integration system that automatically runs
191tests across various platforms. In the future we plan to add more
192combinations including testing plugins. See
193<http://babune.ladeuil.net:24842/>. (Babune = Bazaar Buildbot Network.)
194
195
186Writing Tests196Writing Tests
187=============197=============
188198