]>
Commit | Line | Data |
---|---|---|
1 | 1 Introduction | |
2 | ||
3 | This document describes some guidelines for people participating | |
4 | in lwIP development. | |
5 | ||
6 | 2 How to contribute to lwIP | |
7 | ||
8 | Here is a short list of suggestions to anybody working with lwIP and | |
9 | trying to contribute bug reports, fixes, enhancements, platform ports etc. | |
10 | First of all as you may already know lwIP is a volunteer project so feedback | |
11 | to fixes or questions might often come late. Hopefully the bug and patch tracking | |
12 | features of Savannah help us not lose users' input. | |
13 | ||
14 | 2.1 Source code style: | |
15 | ||
16 | 1. do not use tabs. | |
17 | 2. indentation is two spaces per level (i.e. per tab). | |
18 | 3. end debug messages with a trailing newline (\n). | |
19 | 4. one space between keyword and opening bracket. | |
20 | 5. no space between function and opening bracket. | |
21 | 6. one space and no newline before opening curly braces of a block. | |
22 | 7. closing curly brace on a single line. | |
23 | 8. spaces surrounding assignment and comparisons. | |
24 | 9. don't initialize static and/or global variables to zero, the compiler takes care of that. | |
25 | 10. use current source code style as further reference. | |
26 | ||
27 | 2.2 Source code documentation style: | |
28 | ||
29 | 1. JavaDoc compliant and Doxygen compatible. | |
30 | 2. Function documentation above functions in .c files, not .h files. | |
31 | (This forces you to synchronize documentation and implementation.) | |
32 | 3. Use current documentation style as further reference. | |
33 | ||
34 | 2.3 Bug reports and patches: | |
35 | ||
36 | 1. Make sure you are reporting bugs or send patches against the latest | |
37 | sources. (From the latest release and/or the current CVS sources.) | |
38 | 2. If you think you found a bug make sure it's not already filed in the | |
39 | bugtracker at Savannah. | |
40 | 3. If you have a fix put the patch on Savannah. If it is a patch that affects | |
41 | both core and arch specific stuff please separate them so that the core can | |
42 | be applied separately while leaving the other patch 'open'. The prefered way | |
43 | is to NOT touch archs you can't test and let maintainers take care of them. | |
44 | This is a good way to see if they are used at all - the same goes for unix | |
45 | netifs except tapif. | |
46 | 4. Do not file a bug and post a fix to it to the patch area. Either a bug report | |
47 | or a patch will be enough. | |
48 | If you correct an existing bug then attach the patch to the bug rather than creating a new entry in the patch area. | |
49 | 5. Trivial patches (compiler warning, indentation and spelling fixes or anything obvious which takes a line or two) | |
50 | can go to the lwip-users list. This is still the fastest way of interaction and the list is not so crowded | |
51 | as to allow for loss of fixes. Putting bugs on Savannah and subsequently closing them is too much an overhead | |
52 | for reporting a compiler warning fix. | |
53 | 6. Patches should be specific to a single change or to related changes.Do not mix bugfixes with spelling and other | |
54 | trivial fixes unless the bugfix is trivial too.Do not reorganize code and rename identifiers in the same patch you | |
55 | change behaviour if not necessary.A patch is easier to read and understand if it's to the point and short than | |
56 | if it's not to the point and long :) so the chances for it to be applied are greater. | |
57 | ||
58 | 2.4 Platform porters: | |
59 | ||
60 | 1. If you have ported lwIP to a platform (an OS, a uC/processor or a combination of these) and | |
61 | you think it could benefit others[1] you might want discuss this on the mailing list. You | |
62 | can also ask for CVS access to submit and maintain your port in the contrib CVS module. | |
63 |