Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:guidelines [2019/05/16 13:34]
gkazhoya Added a bit of info on copyright notices.
doc:guidelines [2019/07/11 13:24] (current)
gkazhoya
Line 66: Line 66:
 A contribution is considered substantial if: A contribution is considered substantial if:
   * you added a new feature,   * you added a new feature,
-  * you fixed a major bug and thereby edited many lines of code in the file.+  * 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: A contribution is considered not substantial if:
Line 75: Line 76:
   * minor bug fixes,   * minor bug fixes,
   * copy paste of existing code with minor tweaks.   * 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,​ e.g., from the [[https://​www.gnu.org/​prep/​maintain/​html_node/​Copyright-Notices.html#​Copyright-Notices|GNU project]].
 +
 +
 +==== 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://​cram-system.org/​tutorials/​beginner/​testing|testing tutorial]] to get started on writing tests.