]> arthur.barton.de Git - bup.git/blob - HACKING
HACKING: explain running single and parallel tests
[bup.git] / HACKING
1
2 Conventions?  Are you kidding?  OK fine.
3
4 Code Branching Model
5 ====================
6
7 The master branch is what we consider the main-line of development,
8 and the last, non-rc tag on master is the most recent stable release.
9
10 Any branch with a "tmp/" prefix might be rebased (often), so keep that
11 in mind when using or depending on one.
12
13 Any branch with a "tmp/review/" prefix corresponds to a patchset
14 submitted to the mailing list.  We try to maintain these branches to
15 make the review process easier for those not as familiar with patches
16 via email.
17
18
19 Current Trajectory
20 ==================
21
22 Now that we've finished the 0.27 release, we're working on 0.28, and
23 although we're not certain which new features will be included, here
24 are likely candidates:
25
26   - Support for rm/gc.
27
28   - Support for transferring saves between repositories and rewriting
29     branches.
30
31 and these are also under consideration:
32
33   - Better VFS performance for large repositories (i.e. fuse, ls,
34     web...).
35
36   - Incremental indexing via inotify.
37
38   - Smarter (and quieter) handling of cross-filesystem metadata.
39
40   - Support for more general purpose push/pull of branches, saves, and
41     tags between repositories.  (See the bup-get patch series.)
42
43 If you have the time and inclination, please help review patches
44 posted to the list, or post your own.  (See "ways to help" below.)
45
46
47 More specific ways to help
48 ==========================
49
50 Testing -- yes please.  
51
52 With respect to patches, bup development is handled via the mailing
53 list, and all patches should be sent to the list for review (see
54 "Submitting Patches" below).
55
56 In most cases, we try to wait until we have at least one or two
57 "Reviewed-by:" replies to a patch posted to the list before
58 incorporating it into master, so reviews are an important way to help.
59 We also love a good "Tested-by:" -- the more the merrier.
60
61
62 Testing
63 =======
64
65 You can run the test suite much more quickly via "make -j test" (as
66 compared to "make test"), at the expense of slightly more confusing
67 output (interleaved parallel test output), and inaccurate intermediate
68 success/failure counts, but the final counts displayed should be
69 correct.
70
71 Individual non-Python tests can be run via "./wvtest run t/TEST" and
72 if you'd like to see all of the test output, you can omit the wvtest
73 run wrapper: "t/TEST"
74
75 Individual Python tests can be run via "./wvtest run ./wvtest.py
76 lib/bup/t/TEST", and as above, you can see all the output by omitting
77 the wvtest run wrapper like this: "./wvtest.py lib/bup/t/TEST"
78
79
80 Submitting patches
81 ==================
82
83 As mentioned, all patches should be posted to the mailing list for
84 review, and must be "signed off" by the author before official
85 inclusion (see ./SIGNED-OFF-BY).  You can create a "signed off" set of
86 patches in ./patches, ready for submission to the list, like this:
87
88     git format-patch -s -o patches origin/master
89
90 which will include all of the patches since origin/master on your
91 current branch.  Then you can send them to the list like this:
92
93     git send-email --to bup-list@googlegroups.com --compose patches/*
94
95 The use of --compose will cause git to ask you to edit a cover letter
96 that will be sent as the first message.
97
98 It's also possible to handle everything in one step:
99
100     git send-email -s --to bup-list@googlegroups.com --compose origin/master
101
102 and you can add --annotate if you'd like to review or edit each patch
103 before it's sent.
104
105 For single patches, this might be easier:
106
107     git send-email -s --to bup-list@googlegroups.com --annotate -n1 HEAD
108
109 which will send the top patch on the current branch, and will stop to
110 allow you to add comments.  You can add comments to the section with
111 the diffstat without affecting the commit message.
112
113 Of course, unless your machine is set up to handle outgoing mail
114 locally, you may need to configure git to be able to send mail.  See
115 git-send-email(1) for further details.
116
117 Oh, and we do have a ./CODING-STYLE, hobgoblins and all, though don't
118 let that scare you off.  We're not all that fierce.
119
120
121 Even More Generally
122 ===================
123
124 It's not like we have a lot of hard and fast rules, but some of the
125 ideas here aren't altogether terrible:
126
127   http://www.kernel.org/doc/Documentation/SubmittingPatches
128
129 In particular, we've been paying at least some attention to the bits
130 regarding Acked-by:, Reported-by:, Tested-by: and Reviewed-by:.