Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:guidelines [2019/02/14 18:27] – gkazhoya | doc:guidelines [2019/07/11 13:24] (current) – gkazhoya | ||
|---|---|---|---|
| Line 21: | Line 21: | ||
| Relevant documentation: | Relevant documentation: | ||
| - | * As a ''< | + | * As a ''< |
| * Use ''< | * Use ''< | ||
| * The license for all CRAM code should be BSD / Public Domain | * The license for all CRAM code should be BSD / Public Domain | ||
| Line 35: | Line 35: | ||
| **Lisp** | **Lisp** | ||
| - | * Pay attention to the indentation! | + | * Pay attention to the indentation!!! |
| * Try not to exceed 80 symbols in width in your code | * Try not to exceed 80 symbols in width in your code | ||
| - | * Lisp names (variables, classes, methods, packages) are all lowercase with dashes in between: my-awesome-lisp-variable | + | * Lisp names (variables, classes, methods, packages) are all lowercase with dashes in between: |
| * Do you usually get that feeling that something is underdocumented? | * Do you usually get that feeling that something is underdocumented? | ||
| * Try not to '' | * Try not to '' | ||
| Line 48: | Line 48: | ||
| **Ros-related** | **Ros-related** | ||
| - | * ROS packages' | + | * ROS packages' |
| + | |||
| + | |||
| + | ==== Copyright notices ==== | ||
| + | CRAM is open source software licensed under the BSD licence. | ||
| + | This means the code can be used by any third party without having to contribute anything back and having to mention the original authors. | ||
| + | Our copyright notice is there to allow others to use our software without being afraid of being sued. | ||
| + | |||
| + | An example copyright notice can be found in the header of most '' | ||
| + | |||
| + | Here are some guidelines on how to deal with the copyright notice of your code: | ||
| + | * When you create a new '' | ||
| + | * If you simply copy pasted a file, please keep the original notice intact. | ||
| + | * For non-sourcecode files such as a '' | ||
| + | * When editing an existing file, you can add your name into the header if you made a substantial contribution to the code. | ||
| + | |||
| + | A contribution is considered substantial if: | ||
| + | * you added a new feature, | ||
| + | * you fixed a major bug and thereby edited many lines of code in the file, | ||
| + | * you made a major refactoring of the code and improved readability and maintainability greatly. | ||
| + | |||
| + | A contribution is considered not substantial if: | ||
| + | * you fixed a typo, | ||
| + | * fixed indentation, | ||
| + | * slightly improved a documentation string, | ||
| + | * other minor contributions such as minor refactoring and nicification, | ||
| + | * minor bug fixes, | ||
| + | * copy paste of existing code with minor tweaks. | ||
| + | |||
| + | This definition is, of course, not quantitative. If you are unsure, ask the current main maintainer of the software for an advice or look on the Internet for some inspiration, | ||
| + | |||
| + | |||
| + | ==== Unit Testing ==== | ||
| + | |||
| + | Testing your code is essential! | ||
| + | CRAM is a huge framework with a thousands of lines of code, so we have to make sure that whatever bricks we put in our CRAM skyscraper, they are robust. A couple of fragile bricks and our whole building will collapse. | ||
| + | |||
| + | To aid with testing, consider adding unit tests to functions in your code that have math and to your main API functions. | ||
| + | Take a look at the [[http:// | ||

