You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2013/12/15 20:21:22 UTC

git commit: docs: Add costrings conventions section (moved from the site).

Updated Branches:
  refs/heads/trunk bd1d3b1a1 -> cb72aea4b


docs: Add costrings conventions section (moved from the site).


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/cb72aea4
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/cb72aea4
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/cb72aea4

Branch: refs/heads/trunk
Commit: cb72aea4ba980c88df92f8480365dea78a69d7fb
Parents: bd1d3b1
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Dec 15 20:19:43 2013 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Dec 15 20:21:08 2013 +0100

----------------------------------------------------------------------
 docs/development.rst | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/cb72aea4/docs/development.rst
----------------------------------------------------------------------
diff --git a/docs/development.rst b/docs/development.rst
index 755fb4f..29d12c0 100644
--- a/docs/development.rst
+++ b/docs/development.rst
@@ -44,6 +44,37 @@ After you have installed this hook it will automatically check modified Python
 files for violations before a commit. If a violation is found, commit will be
 aborted.
 
+Docstring conventions
+---------------------
+
+For documenting the API we we use Sphinx and reStructuredText syntax. Docstring
+conventions to which you should adhere to are described bellow.
+
+* Docstrings should always be used to describe the purpose of methods,
+  functions, classes, and modules.
+* Method docstring should describe all the normal and keyword arguments. You
+  should describe all the available arguments even if you use ``*args`` and
+  ``**kwargs``.
+* All parameters must be documented using ``:param p:`` or ``:keyword p:``
+  and ``:type p:`` annotation.
+* ``:param p: ...`` -  A description of the parameter ``p`` for a function
+  or method.
+* ``:keyword p: ...`` - A description of the keyword parameter ``p``.
+* ``:type p: ...`` The expected type of the parameter ``p``.
+* Return values must be documented using ``:return:`` and ``:rtype``
+  annotation.
+* ``:return: ...`` A description of return value for a function or method.
+* ``:rtype: ...`` The type of the return value for a function or method.
+* Required keyword arguments must contain ``(required)`` notation in
+  description. For example: ``:keyword image:  OS Image to boot on node. (required)``
+*  Multiple types are separated with ``or``
+   For example: ``:type auth: :class:`.NodeAuthSSHKey` or :class:`.NodeAuthPassword```
+* For a description of the container types use the following notation:
+  ``<container_type> of <objects_type>``. For example:
+  ``:rtype: `list` of :class:`Node```
+
+You can find some examples in the following file: https://github.com/apache/libcloud/blob/trunk/libcloud/compute/base.py
+
 General guidelines
 ------------------