tinydtls  0.8.6
CONTRIBUTING.md
Go to the documentation of this file.
1 Contributing to tinydtls
2 ========================
3 
4 Thanks for your interest in this project.
5 
6 Project description:
7 --------------------
8 
9 tinydtls is a library for Datagram Transport Layer Security (DTLS) covering both the client and the server state machine. It is implemented in C and provides support for the mandatory cipher suites specified in CoAP.
10 
11 - https://projects.eclipse.org/projects/iot.tinydtls
12 
13 Developer resources:
14 --------------------
15 
16 Information regarding source code management, builds, coding standards, and more.
17 
18 - https://projects.eclipse.org/projects/iot.tinydtls/developer
19 
20 Contributor License Agreement:
21 ------------------------------
22 
23 Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).
24 
25 - http://www.eclipse.org/legal/CLA.php
26 
27 Contact:
28 --------
29 
30 Contact the project developers via the project's "dev" list.
31 
32 - https://dev.eclipse.org/mailman/listinfo/tinydtls-dev
33 
34 Search for bugs:
35 ----------------
36 
37 This project uses Bugzilla to track ongoing development and issues.
38 
39 - https://bugs.eclipse.org/bugs/buglist.cgi?product=tinydtls
40 
41 Create a new bug:
42 -----------------
43 
44 Be sure to search for existing bugs before you create another one. Remember
45 that contributions are always welcome!
46 
47 - https://bugs.eclipse.org/bugs/enter_bug.cgi?product=tinydtls
48 
49 Submit Patches via Gerrit:
50 --------------------------
51 
52 Patches must follow to the tinydtls coding style and must be submitted
53 to [gerrit](https://git.eclipse.org/r/p/tinydtls/org.eclipse.tinydtls)
54 for review. To submit a patch to gerrit, the author needs to have a
55 CLA on file and must have a Signed-off-by entry with the same email
56 address in the commit message footer.
57 
58 - https://www.eclipse.org/projects/handbook/#resources-source
59 
60 Every new file must contain the Eclipse license information and the
61 copyright holder(s). Please take a look into existing files and adopt
62 the needed changes to your new file(s).
63 
64 Tinydtls Coding style:
65 ----------------------
66 
67 * For better reading the indentation is set to 2 characters as spaces,
68  this is depended on the often used nested functions like
69  'if-else'. Don't use TABs any there! Avoid trailing white spaces at
70  the end of a line.
71 
72 * Single lines within the source code should not be longer then 78
73  characters.
74 
75 * In the implementation (i.e., in files ending with '.c'), function
76  identifiers start on the first column of a line. The function's
77  return type preceeds the function identifier on a line of its
78  own. For example, in `dtls.c` the following definition is found:
79 
80 ```
81 dtls_peer_t *
82 dtls_get_peer(const dtls_context_t *ctx, const session_t *session) {
83 ...
84 }
85 ```
86 
87 * Declarations in header files do not follow the previous rule. For
88  example, the declaration for `dtls_get_peer()` in `dtls.h` reads as
89  follows:
90 
91 ```
92 dtls_peer_t *dtls_get_peer(const dtls_context_t *context,
93  const session_t *session);
94 ```
95 
96 * A useful source code documentation is mandatory. Mostly to be done
97  within the source code files.
98 
99 * Please set up/adjust the doxygen documentation if you create new
100  functions or change existing functions. The doxygen documentation
101  has to be done in the header files as they are the public part of
102  tinydtls and only use the @-syntax for doxygen commands (akin to
103  javadoc).
104 
105 * Never break the API!
106  Do not remove old functions unless absolutely necessary. If changes
107  are needed in some kind always provide a wrapper for the old call to
108  let the library be backward compatible and mark the old function as
109  @deprecated in the doxygen comment. Please discuss needed changes
110  on the mailing list.
111