4 XXX: These are mostly guidelines for new code, as some of existing hasn't been
5 updated to these conventions yet.
7 Whitespace (all languages):
9 * indentation is 4 spaces
11 * never use tabs as indents
13 * otherwise tab equals to 8 spaces
15 * separate classes with two empty lines
19 * camelCase for functions/methods
21 * UpperCase for structures/classes
23 * lowercase for namespaces/modules
25 * `UPPER_CASE` for #defines
29 * enclose single statement `if` clauses in { }, specially for automatically
34 * use inlines for functions/methods which are called with high-frequency
40 * space between ( and precedent name
43 When in doubt, be consistent with the existing code.
51 * Existing features in master branch should not degrade at any time, for any
52 platform. (Unless it is not widely used and there is agreement.)
54 * It's fine to add new features for only some platforms.
56 * Non-trivial changes should be staged in a branch, to enable peer-review and
57 regression testing. Branch should be deleted once code has been merged.
59 * Releases are tagged commits from master. There are no stable branches.
62 Backwards compatibility:
64 * Backwards binary compatibility with old traces must be always maintained: all
65 tools, including glretrace, must handle old traces without regressions.
67 * No backwards compatibility guarantees for derived data (ASCII dumps, state,
70 * There should be no gratuitous change to command line tool interfaces, but no
78 There is a regression test suite under development in
79 https://github.com/apitrace/apitrace-tests .