summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HACKING123
-rw-r--r--HACKING.rst59
2 files changed, 59 insertions, 123 deletions
diff --git a/HACKING b/HACKING
deleted file mode 100644
index 1c1a04a7..00000000
--- a/HACKING
+++ /dev/null
@@ -1,123 +0,0 @@
-Nova Style Commandments
-=======================
-
-Step 1: Read http://www.python.org/dev/peps/pep-0008/
-Step 2: Read http://www.python.org/dev/peps/pep-0008/ again
-Step 3: Read on
-
-Imports
--------
-- thou shalt not import objects, only modules
-- thou shalt not import more than one module per line
-- thou shalt not make relative imports
-- thou shalt organize your imports according to the following template
-
-::
- # vim: tabstop=4 shiftwidth=4 softtabstop=4
- {{stdlib imports in human alphabetical order}}
- \n
- {{nova imports in human alphabetical order}}
- \n
- \n
- {{begin your code}}
-
-
-General
--------
-- thou shalt put two newlines twixt toplevel code (funcs, classes, etc)
-- thou shalt put one newline twixt methods in classes and anywhere else
-- thou shalt not write "except:", use "except Exception:" at the very least
-- thou shalt include your name with TODOs as in "TODO(termie)"
-- thou shalt not name anything the same name as a builtin or reserved word
-- thou shalt not violate causality in our time cone, or else
-
-
-Human Alphabetical Order Examples
----------------------------------
-::
- import httplib
- import logging
- import random
- import StringIO
- import time
- import unittest
-
- from nova import flags
- from nova import test
- from nova.auth import users
- from nova.endpoint import api
- from nova.endpoint import cloud
-
-Docstrings
-----------
- """A one line docstring looks like this and ends in a period."""
-
-
- """A multiline docstring has a one-line summary, less than 80 characters.
-
- Then a new paragraph after a newline that explains in more detail any
- general information about the function, class or method. Example usages
- are also great to have here if it is a complex class for function. After
- you have finished your descriptions add an extra newline and close the
- quotations.
-
- When writing the docstring for a class, an extra line should be placed
- after the closing quotations. For more in-depth explanations for these
- decisions see http://www.python.org/dev/peps/pep-0257/
-
- If you are going to describe parameters and return values, use Sphinx, the
- appropriate syntax is as follows.
-
- :param foo: the foo parameter
- :param bar: the bar parameter
- :returns: description of the return value
-
- """
-
-Text encoding
-----------
-- All text within python code should be of type 'unicode'.
-
- WRONG:
-
- >>> s = 'foo'
- >>> s
- 'foo'
- >>> type(s)
- <type 'str'>
-
- RIGHT:
-
- >>> u = u'foo'
- >>> u
- u'foo'
- >>> type(u)
- <type 'unicode'>
-
-- Transitions between internal unicode and external strings should always
- be immediately and explicitly encoded or decoded.
-
-- All external text that is not explicitly encoded (database storage,
- commandline arguments, etc.) should be presumed to be encoded as utf-8.
-
- WRONG:
-
- mystring = infile.readline()
- myreturnstring = do_some_magic_with(mystring)
- outfile.write(myreturnstring)
-
- RIGHT:
-
- mystring = infile.readline()
- mytext = s.decode('utf-8')
- returntext = do_some_magic_with(mytext)
- returnstring = returntext.encode('utf-8')
- outfile.write(returnstring)
-
-Running Tests
--------------
-The testing system is based on a combination of tox and testr. If you just
-want to run the whole suite, run `tox` and all will be fine. However, if
-you'd like to dig in a bit more, you might want to learn some things about
-testr itself. A basic walkthrough for OpenStack can be found at
-http://wiki.openstack.org/testr
diff --git a/HACKING.rst b/HACKING.rst
new file mode 100644
index 00000000..ac363673
--- /dev/null
+++ b/HACKING.rst
@@ -0,0 +1,59 @@
+Nova Client Style Commandments
+==============================
+
+- Step 1: Read the OpenStack Style Commandments
+ https://github.com/openstack-dev/hacking/blob/master/HACKING.rst
+- Step 2: Read on
+
+
+Nova Client Specific Commandments
+---------------------------------
+None so far
+
+Text encoding
+-------------
+- All text within python code should be of type 'unicode'.
+
+ WRONG:
+
+ >>> s = 'foo'
+ >>> s
+ 'foo'
+ >>> type(s)
+ <type 'str'>
+
+ RIGHT:
+
+ >>> u = u'foo'
+ >>> u
+ u'foo'
+ >>> type(u)
+ <type 'unicode'>
+
+- Transitions between internal unicode and external strings should always
+ be immediately and explicitly encoded or decoded.
+
+- All external text that is not explicitly encoded (database storage,
+ commandline arguments, etc.) should be presumed to be encoded as utf-8.
+
+ WRONG:
+
+ mystring = infile.readline()
+ myreturnstring = do_some_magic_with(mystring)
+ outfile.write(myreturnstring)
+
+ RIGHT:
+
+ mystring = infile.readline()
+ mytext = s.decode('utf-8')
+ returntext = do_some_magic_with(mytext)
+ returnstring = returntext.encode('utf-8')
+ outfile.write(returnstring)
+
+Running Tests
+-------------
+The testing system is based on a combination of tox and testr. If you just
+want to run the whole suite, run `tox` and all will be fine. However, if
+you'd like to dig in a bit more, you might want to learn some things about
+testr itself. A basic walkthrough for OpenStack can be found at
+http://wiki.openstack.org/testr