c@447
|
1
|
c@447
|
2 Contributing
|
c@447
|
3 ============
|
c@447
|
4
|
c@448
|
5 The qm-dsp library is maintained in a Github repository at
|
c@447
|
6 https://github.com/c4dm/qm-dsp.
|
c@447
|
7
|
c@447
|
8
|
c@447
|
9 Reporting bugs
|
c@447
|
10 --------------
|
c@447
|
11
|
c@448
|
12 Please use Github issues for bug reports. Try to make them as specific
|
c@448
|
13 as possible. For example, describe an input that triggers some
|
c@448
|
14 particular behaviour, and tell us how that behaviour differs from what
|
c@448
|
15 you expected.
|
c@447
|
16
|
c@447
|
17 If your bug can be reproduced by processing an audio file using one of
|
c@447
|
18 the QM Vamp Plugins (https://github.com/c4dm/qm-vamp-plugins), which
|
c@447
|
19 are built using this library, that might be a good way to illustrate
|
c@447
|
20 the problem.
|
c@447
|
21
|
c@447
|
22
|
c@447
|
23 Pull requests
|
c@447
|
24 -------------
|
c@447
|
25
|
c@447
|
26 We're happy to see pull requests, and can pull them directly in some
|
c@447
|
27 circumstances.
|
c@447
|
28
|
c@447
|
29 * Please make sure your change compiles without warnings and passes
|
c@447
|
30 the existing tests.
|
c@447
|
31
|
c@447
|
32 * Please follow the code style guidelines (see below).
|
c@447
|
33
|
c@447
|
34 * Please make it as easy as possible to verify the behaviour of the
|
c@447
|
35 pull request, for example by adding a new test in the `tests`
|
c@447
|
36 directory. This library has only limited test coverage, but we
|
c@447
|
37 would like to expand it, and prefer not to make changes unless they
|
c@447
|
38 are backed by tests.
|
c@447
|
39
|
c@447
|
40 * Please provide your changes under terms which permit Queen Mary
|
c@447
|
41 University of London to relicense the code for commercial
|
c@447
|
42 purposes. The qm-dsp library as a whole is provided under the GPL,
|
c@447
|
43 but QM also make commercial licences available separately, and
|
c@447
|
44 cannot accept any pull request whose copyright status would prevent
|
c@447
|
45 that. In practice, this means any non-trivial change not
|
c@447
|
46 originating from QM must be explicitly licensed using a BSD-like
|
c@447
|
47 licence text, either in the source file itself or in an
|
c@447
|
48 accompanying file. See `thread/BlockAllocator.h` for an example of
|
c@447
|
49 typical language.
|
c@447
|
50
|
c@447
|
51 Please note also that fixes which change the behaviour of the existing
|
c@447
|
52 QM Vamp Plugins will need particularly close scrutiny - these are
|
c@447
|
53 reasonably widely used and, even where they have defects, changes may
|
c@447
|
54 cause problems for users and will at least need to be documented with
|
c@447
|
55 the plugins. For this reason it may take some time for such changes to
|
c@447
|
56 be reviewed or integrated.
|
c@447
|
57
|
c@447
|
58
|
c@447
|
59 Code style
|
c@447
|
60 ----------
|
c@447
|
61
|
c@448
|
62 * C++ code must compile with the C++98 standard, except for the unit
|
c@448
|
63 tests which are C++14
|
c@447
|
64
|
c@448
|
65 * Classes are named `LikeThis` - functions, methods, and local
|
c@448
|
66 variables `likeThis` - class member variables `m_likeThis`
|
c@447
|
67
|
c@447
|
68 * Indentation is four spaces at a time (no tabs)
|
c@447
|
69
|
c@447
|
70 * The opening brace for a block goes at the end of the line, except
|
c@447
|
71 at the start of a function or class definition where it gets a line
|
c@447
|
72 of its own
|
c@447
|
73
|
cannam@473
|
74 * Please use braces around any conditional or loop block that is not
|
cannam@473
|
75 on the same line as the test
|
cannam@473
|
76
|
cannam@473
|
77 * Please keep lines to no more than 80 characters in length
|
c@447
|
78
|
cannam@500
|
79 * Avoid using unsigned int types, unless doing bit manipulation (see
|
cannam@500
|
80 http://soundsoftware.ac.uk/c-pitfall-unsigned.html for rationale)
|
c@447
|
81
|