From 9777aa9df8c3fbb6695178350b8f1b9ca220d9bd Mon Sep 17 00:00:00 2001
From: Shuo Yang <shuo.yang@huawei.com>
Date: Tue, 23 Jun 2015 18:59:16 -0700
Subject: [PATCH] 1. clean up confusing comment in setup.py; 2. add
 developer/contributor documentation in README.md

Change-Id: I7bd0bbbfe266032e11e09d260c37edf524339009
---
 README.md | 79 +++++++++++++++++++++++++++++++++++++++++--------------
 setup.py  | 34 ++++++++----------------
 2 files changed, 70 insertions(+), 43 deletions(-)

diff --git a/README.md b/README.md
index bd227cd9..1b732675 100644
--- a/README.md
+++ b/README.md
@@ -14,48 +14,87 @@ tools (Cobbler, Chef, Ansible) and allows third-parties (vendors) plugins for ha
 
 ##Quick Guide to Developers
 
+### Get started with coding and contributing
+
+** Before everything, setup your environment:**
+
+i. Make sure MySQL is installed on your development box:
+
+    e.g., ```brew install mysql``` (for your Mac OSX box)
+
+ii. Dedicatedly create a virtual environment for your development. You can use  [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/) to help you manage your virtual environment.
+
+  ```$mkvirtualenv compass-core``` (skip this if you already created compass-core-env)
+
+  ```$workon compass-core``` (get into compass-core-env)
+
+_Note: the above assumes you use virtualenvwrapper to manage your virtualenv_
+
+** 1. Checkout source **
+
+    (compass-core-env)$git checkout https://github.com/stackforge/compass-core.git
+
+** 2. Run the tests making sure you are working on a clean and working code base**  (i.e., did someone else break the code)
+
+``` (compass-core-env)$tox -r ```
+
+** 3. Write your  change, and make sure test your code thoroughly** (otherwise, reviewers won't approve it)
+
+``` (compass-core-env)$git branch -b [TOPIC]```
+
+working, working, working on the [TOPIC] branch ...
+
+``` (compass-core-env)$tox -r ``` (make sure your new code still works)
+
+** 4. Submit for review **
+
+```(compass-core-env)$git review ```
+
+
+
+
 
 ### Directories (How codebase is organized)
 
-* bin/ - contains Compass utility scripts
+    * bin/ - contains Compass utility scripts
 
-* compass/ - contains all Compass business logic including database & backend
+    * compass/ - contains all Compass business logic including database & backend
 
-    *  api/ - contains Compass RESTful APIs implementation
+        *  api/ - contains Compass RESTful APIs implementation
 
-    * actions/ - interface to essential functionalities executed by Celery tasks, including deploy, find servers and so on
+        * actions/ - interface to essential functionalities executed by Celery tasks, including deploy, find servers and so on
 
-    * apiclient/ - contains Compass RESTful API client
+        * apiclient/ - contains Compass RESTful API client
 
-    * db/ - contains database model and supported database operations
+        * db/ - contains database model and supported database operations
 
-    * deployment/ - contains the module for deploying a distributed system from OS installation to package installation based on user configuration via RESTful or Web UI.
+        * deployment/ - contains the module for deploying a distributed system from OS installation to package installation based on user configuration via RESTful or Web UI.
 
-    * hdsdiscovery/ - contains the module for learning server hardware spec
+        * hdsdiscovery/ - contains the module for learning server hardware spec
 
-    * log_analyzor/ - library to calculate installation progress by processing logs from the servers being deployed
+        * log_analyzor/ - library to calculate installation progress by processing logs from the servers being deployed
 
-    * tasks/ - definition of Celery tasks triggering Compass actions
+        * tasks/ - definition of Celery tasks triggering Compass actions
 
-    * utils/ - contains utility functions for other modules
+        * utils/ - contains utility functions for other modules
 
-    * tests/ - unittests level testing code
+        * tests/ - unittests level testing code
 
-    * tests_serverside/ - tests that Compass's functionality to communicate with a known chef server
+        * tests_serverside/ - tests that Compass's functionality to communicate with a known chef server
 
-* install/ - contains scripts for Compass installation on virtual machine or bare metal server
+    * install/ - contains scripts for Compass installation on virtual machine or bare metal server
 
-* service/ - contains Compass messaging service and cluster installation progress service
+    * service/ - contains Compass messaging service and cluster installation progress service
 
-* vagrant/ - contains scripts of downloading compass-adapters and installing the target systems onto the virtual machine(s), this directory is for testing purpose
+    * vagrant/ - contains scripts of downloading compass-adapters and installing the target systems onto the virtual machine(s), this directory is for testing purpose
 
-* regtest/ - contains the scripts that will be used by the continuous integrations.
+    * regtest/ - contains the scripts that will be used by the continuous integrations.
 
-* monitor/ - contains a script monitor Compass server's resource utilization during an installation
+    * monitor/ - contains a script monitor Compass server's resource utilization during an installation
 
-* misc/ - configuration files for Compass server setup
+    * misc/ - configuration files for Compass server setup
 
-* conf/ - configuration files related to newly supported target systems will be added here.
+    * conf/ - configuration files related to newly supported target systems will be added here.
 
 
 Quick Guide to Users
diff --git a/setup.py b/setup.py
index fe6ff1eb..67ae473d 100644
--- a/setup.py
+++ b/setup.py
@@ -14,20 +14,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""Bootstrap setuptools installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
-    from ez_setup import use_setuptools
-    use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
 
 """setup script."""
 try:
@@ -45,6 +31,10 @@ import os
 import sys
 
 
+# This helps python setup.py test command to utilize tox
+# See the instruction at https://testrun.org/tox/latest/example/basic.html\
+#                 #integration-with-setuptools-distribute-test-commands
+
 class Tox(TestCommand):
     """Tox to do the setup."""
 
@@ -59,11 +49,9 @@ class Tox(TestCommand):
         sys.exit(errno)
 
 
-INSTALL_REQUIRES_DIR = os.path.join(
+INSTALL_REQUIRES_FILE = os.path.join(
     os.path.dirname(__file__), 'requirements.txt')
-
-
-with open(INSTALL_REQUIRES_DIR, 'r') as requires_file:
+with open(INSTALL_REQUIRES_FILE, 'r') as requires_file:
     REQUIREMENTS = [line.strip() for line in requires_file if line != '\n']
 
 DATA_FILES_DIR = os.path.join(
@@ -80,10 +68,10 @@ setup(
     version='0.1.0',
 
     # general info
-    description='Open Deployment System for zero touch installation',
-    long_description='Open Deployment System for zero touch installation',
-    author='Compass Dev Group, Huawei Cloud',
-    author_email='shuo.yang@huawei.com',
+    description="""Compass: automation framework of
+                system deployment on baremetal""",
+    author='Compass Development Group',
+    author_email='dev@syscompass.org',
     url='https://github.com/stackforge/compass-core',
     download_url='',
 
@@ -92,7 +80,7 @@ setup(
     packages=find_packages(exclude=['compass.tests']),
     include_package_data=True,
     classifiers=[
-        'Development Status :: 5 - Production/Stable',
+        'Development Status :: 4 - Beta',
         'Environment :: Console',
         'Intended Audience :: Developers',
         'Intended Audience :: Information Technology',