| Please feel free to contribute patches; here are the basic guidelines to hack |
| along with us! |
| |
| Please work from a git tree by cloning the repo: |
| |
| git clone https://github.com/ioerror/tlsdate.git |
| |
| Please file bugs on the tlsdate issue tracker: |
| |
| https://github.com/ioerror/tlsdate/issues |
| |
| Please use the github pull request feature when possible. |
| |
| White Space: |
| |
| Spaces only, no tabs; all tabs must die |
| No stray spaces at the end of lines |
| Generally try not to add excessive empty white space |
| |
| Documentation: |
| |
| Document all functions with doxygen style comments |
| |
| Ensuring Correctness: |
| |
| Test your patches and ensure: |
| |
| No compiler warnings or errors |
| No linker warnings or errors |
| |
| Test your improved copy of tlsdate extensively |
| |
| Security: |
| |
| tlsdate is security sensitive - please consider where you add code and in |
| what context it will run. When possible, run with the least privilege as is |
| possible. |
| |
| Proactively find bugs: |
| |
| Run your copy of tlsdate under valgrind |
| |
| Weird but meaningful conventions are prefered in tlsdate. We prefer attention |
| to detail: |
| |
| if ( NULL == foo (void) ) |
| { |
| bar (void); |
| } |
| |
| Over quick, hard to read and potentilly incorrect: |
| |
| if (foo(void)==NULL)) |
| bar(); |
| |
| Define magic numbers and explain their origin: |
| |
| // As taken from RFC 3.14 |
| #define MAGIC_NUMBER 23 // This goes in foo.h |
| ptr = malloc (MAGIC_NUMBER); |
| |
| Rather than just throwing them about in code: |
| |
| ptr = malloc (23); |
| |
| It is almost always prefered to use dynamically allocated memory: |
| |
| widget_ptr = malloc (WIDGET_SIZE); |
| |
| Try to avoid static allocations like the following: |
| |
| char widget[WIDGET_SIZE]; |
| |
| Try to use unsigned values unless an API requires signed values: |
| |
| uint32_t server_time_s; |
| |
| Please provide relevant CHANGELOG entries for all changes. |
| Please remove items from the TODO file as they are completed. |
| Please provide unittest cases. |
| |
| When submitting patches via email, please use `git format-patch` to format |
| patches: |
| |
| git format-patch 9a61fcba9bebc3fa2d91c9f79306bf316c59cbcc |
| |
| Email patches with a GnuPG signature whenever possible. |
| |
| When applying patches, please use `git am` to apply patches: |
| |
| git am -i 0001-add-TODO-item.patch |
| |
| If `git format-patch` is not possible, please send a unified diff. |
| |
| When in doubt, please consult the Tor HACKING guide: |
| |
| https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/HACKING |
| |