waf: Add initial unit test for samba_utils.
[samba.git] / README.Coding
index ba70a3c53129b97e53303b7e90b4b085768fe0d5..8416290861026cd262916f2e8df2872644999516 100644 (file)
@@ -16,11 +16,19 @@ style should never outweigh coding itself and so the guidelines
 described here are hopefully easy enough to follow as they are very
 common and supported by tools and editors.
 
-The basic style, also mentioned in prog_guide4.txt, is the Linux kernel
+The basic style for C code, also mentioned in prog_guide4.txt, is the Linux kernel
 coding style (See Documentation/CodingStyle in the kernel source tree). This
 closely matches what most Samba developers use already anyways, with a few
 exceptions as mentioned below.
 
+The coding style for Python code is documented in PEP8,
+http://www.python.org/pep/pep8 (with spaces). 
+If you have ever worked on another free software Python project, you are
+probably already familiar with it.
+
+We try to stay compatible with Python 2.4, so please don't rely on any
+features that were introduced later, such as the "with" statement.
+
 But to save you the trouble of reading the Linux kernel style guide, here
 are the highlights.
 
@@ -96,6 +104,78 @@ Comments
 Comments should always use the standard C syntax.  C++
 style comments are not currently allowed.
 
+The lines before a comment should be empty. If the comment directly
+belongs to the following code, there should be no empty line
+after the comment, except if the comment contains a summary
+of multiple following code blocks.
+
+This is good:
+
+       ...
+       int i;
+
+       /*
+        * This is a multi line comment,
+        * which explains the logical steps we have to do:
+        *
+        * 1. We need to set i=5, because...
+        * 2. We need to call complex_fn1
+        */
+
+       /* This is a one line comment about i = 5. */
+       i = 5;
+
+       /*
+        * This is a multi line comment,
+        * explaining the call to complex_fn1()
+        */
+       ret = complex_fn1();
+       if (ret != 0) {
+       ...
+
+       /**
+        * @brief This is a doxygen comment.
+        *
+        * This is a more detailed explanation of
+        * this simple function.
+        *
+        * @param[in]   param1     The parameter value of the function.
+        *
+        * @param[out]  result1    The result value of the function.
+        *
+        * @return              0 on success and -1 on error.
+        */
+       int example(int param1, int *result1);
+
+This is bad:
+
+       ...
+       int i;
+       /*
+        * This is a multi line comment,
+        * which explains the logical steps we have to do:
+        *
+        * 1. We need to set i=5, because...
+        * 2. We need to call complex_fn1
+        */
+       /* This is a one line comment about i = 5. */
+       i = 5;
+       /*
+        * This is a multi line comment,
+        * explaining the call to complex_fn1()
+        */
+       ret = complex_fn1();
+       if (ret != 0) {
+       ...
+
+       /*This is a one line comment.*/
+
+       /* This is a multi line comment,
+          with some more words...*/
+
+       /*
+        * This is a multi line comment,
+        * with some more words...*/
 
 Indention & Whitespace & 80 columns
 -----------------------------------