blob: 01825f14dc9f3102f6fd5bcb5599444c1c5baffa [file] [log] [blame] [view]
Contributing to tinydtls
========================
Thanks for your interest in this project.
Project description:
--------------------
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.
- https://projects.eclipse.org/projects/iot.tinydtls
Developer resources:
--------------------
Information regarding source code management, builds, coding standards, and more.
- https://projects.eclipse.org/projects/iot.tinydtls/developer
Contributor License Agreement:
------------------------------
Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).
- http://www.eclipse.org/legal/CLA.php
Contact:
--------
Contact the project developers via the project's "dev" list.
- https://dev.eclipse.org/mailman/listinfo/tinydtls-dev
Search for bugs:
----------------
This project uses Bugzilla to track ongoing development and issues.
- https://bugs.eclipse.org/bugs/buglist.cgi?product=tinydtls
Create a new bug:
-----------------
Be sure to search for existing bugs before you create another one. Remember
that contributions are always welcome!
- https://bugs.eclipse.org/bugs/enter_bug.cgi?product=tinydtls
Submit Patches via Gerrit:
--------------------------
Patches must follow to the tinydtls coding style and must be submitted
to [gerrit](https://git.eclipse.org/r/p/tinydtls/org.eclipse.tinydtls)
for review. To submit a patch to gerrit, the author needs to have a
CLA on file and must have a Signed-off-by entry with the same email
address in the commit message footer.
- https://www.eclipse.org/projects/handbook/#resources-source
Every new file must contain the Eclipse license information and the
copyright holder(s). Please take a look into existing files and adopt
the needed changes to your new file(s).
Tinydtls Coding style:
----------------------
* For better reading the indentation is set to 2 characters as spaces,
this is depended on the often used nested functions like
'if-else'. Don't use TABs any there! Avoid trailing white spaces at
the end of a line.
* Single lines within the source code should not be longer then 78
characters.
* In the implementation (i.e., in files ending with '.c'), function
identifiers start on the first column of a line. The function's
return type preceeds the function identifier on a line of its
own. For example, in `dtls.c` the following definition is found:
```
dtls_peer_t *
dtls_get_peer(const dtls_context_t *ctx, const session_t *session) {
...
}
```
* Declarations in header files do not follow the previous rule. For
example, the declaration for `dtls_get_peer()` in `dtls.h` reads as
follows:
```
dtls_peer_t *dtls_get_peer(const dtls_context_t *context,
const session_t *session);
```
* A useful source code documentation is mandatory. Mostly to be done
within the source code files.
* Please set up/adjust the doxygen documentation if you create new
functions or change existing functions. The doxygen documentation
has to be done in the header files as they are the public part of
tinydtls and only use the @-syntax for doxygen commands (akin to
javadoc).
* Never break the API!
Do not remove old functions unless absolutely necessary. If changes
are needed in some kind always provide a wrapper for the old call to
let the library be backward compatible and mark the old function as
@deprecated in the doxygen comment. Please discuss needed changes
on the mailing list.