summaryrefslogtreecommitdiffstats
path: root/doc/markdown/dev_guide.md
diff options
context:
space:
mode:
authorLuis Pabon <lpabon@redhat.com>2013-07-30 22:23:16 -0400
committerLuis Pabon <lpabon@redhat.com>2013-08-01 11:18:33 -0700
commit14181f5f95b5cf3767c50ae075d6ad3aca7e6805 (patch)
tree1f1cc246ba1fe414f9ef35795e5a87a7fda21c78 /doc/markdown/dev_guide.md
parent555d958bf7683be3a8353ac6b79c3a28cd03231d (diff)
Finish the doc for developers
* Added package installation section * Cleaned up functional test setup Change-Id: I3ead97408a33daed8a9b430ef6b6569036f1e025 Signed-off-by: Luis Pabon <lpabon@redhat.com> Reviewed-on: http://review.gluster.org/5438 Reviewed-by: Kyle Schneider <kinnder@gmail.com>
Diffstat (limited to 'doc/markdown/dev_guide.md')
-rw-r--r--doc/markdown/dev_guide.md81
1 files changed, 52 insertions, 29 deletions
diff --git a/doc/markdown/dev_guide.md b/doc/markdown/dev_guide.md
index 3547643..8843e48 100644
--- a/doc/markdown/dev_guide.md
+++ b/doc/markdown/dev_guide.md
@@ -1,7 +1,5 @@
# Developer Guide
-## Contributing to the project
-
## Development Environment Setup
The workflow for Gluster-Swift is largely based upon the
[OpenStack Gerrit Workflow][].
@@ -13,8 +11,26 @@ an [SSH key][] to the website. This will allow you to upload
changes to Gerrit. Follow the the information given
at [GitHub Generating SSH Keys][] if you need help creating your key.
-### Download the source
-The source for Gluster for Swift is available in Github. To download
+### Package Requirements
+
+#### Fedora 19
+On Fedora 19 systems, type:
+
+~~~
+sudo yum install gcc python-devel python-setuptools libffi-devel git rpm-build
+~~~
+
+### Git Setup
+If this is your first time using git, you will need to setup the
+following configuration:
+
+~~~
+git config --global user.name "Firstname Lastname"
+git config --global user.email "your_email@youremail.com"
+~~~
+
+### Download the Source
+The source for Gluster for Swift is available in Github. To download
type:
~~~
@@ -23,6 +39,13 @@ cd gluster-swift
~~~
### Git Review
+Before installing pip, make sure you have pip installed. Install the
+python `pip` tool by executing the following command:
+
+~~~
+sudo easy_install pip
+~~~
+
The tool `git review` is a simple tool to automate interaction with Gerrit.
It is recommended to use this tool to upload, modify, and query changes in Gerrit.
The tool can be installed by running the following command:
@@ -31,9 +54,9 @@ The tool can be installed by running the following command:
sudo pip install git-review
~~~
-Note that while many distros offer a version of `git review`, they don't
-necessarily keep it up to date. Pip gives one the latest which
-often avoids problems with various Gerrit servers.
+While many Linux distributions offer a version of `git review`,
+they do not necessarily keep it up to date. Pip provides the latest version
+of the application which avoids problems with various versions of Gerrit.
You now need to setup `git review` to communicate with review.gluster.org.
First, determine your `git review` setup by typing:
@@ -89,16 +112,16 @@ a meaningful name for the topic (e.g. feature_xyz)
### Quality Checking
#### PEP8
-To test that the code adheres to the [PEP8][] specification, please
-type:
+To test that the code adheres to the Python [PEP8][] specification,
+please type:
~~~
tox -e pep8
~~~
#### Unit Tests
-You can run the unit tests after making your changes. To run the unit
-test suite in `tox` type the following as a non-root user:
+Once you have made your changes, you can test the quality of the code
+by executing the automated unit tests as follows:
~~~
tox -e ENV
@@ -107,20 +130,24 @@ tox -e ENV
where *ENV* is either `py27` for systems with Python 2.7+, or `py26` for
systems with Python 2.6+.
+If new functionality has been added, it is highly recommended that
+one or more tests be added to the automated unit test suite. Unit
+tests are available under the `test/unit` directory.
+
#### Functional Tests
-To run the functional tests the following requirements must be met.
+The automated functional tests only run on RPM based systems
+like Fedora/CentOS, etc. To run the functional tests, the following
+requirements must be met.
-1) "/etc/swift" must not exist. So that test would not interfere with
-existing setup. Functional test would create "/etc/swift" and populate
-it with necessary configuration files.
-2) User need to have administrative access.
-2) "/mnt/gluster-object" directory must be created.
-3) Volumes named "test", "test2" should be created. (Gluster volume / XFS
-volume)
-4) Volumes should be mounted under "/mnt/gluster-object/test" and
-"/mnt/gluster-object/test2" respectively.
+1. `/etc/swift` must not exist.
+1. User needs to have `sudo` access; no password necessary
+1. `/mnt/gluster-object/test` and `/mn/gluster-object/test2` directories
+must be created on either an XFS or GlusterFS volume.
+1. glusterfs-openstack-swift RPM must not be installed on the system
+
+Once the requirements have been met, you can now run the full functional
+tests using the following command:
-####To run functional tests:
~~~
tools/functional_tests.sh
~~~
@@ -188,18 +215,14 @@ git review
## Creating Distribution Packages
-### Tools Installation
-TBD: For now please follow the installation instructions
-on the [GlusterFS Compiling RPMS][] page.
-
### Building RPMs for Fedora/RHEL/CentOS Systems
Building RPMs. RPMs will be located in the *build* directory.
`$ bash makerpm.sh`
-Building RPM with a specific release value, useful for automatic
-Jenkin builds, or keeping track of different versions of the
-RPM:
+Building the RPM with a specific release value is useful for
+automatic Jenkin builds, or keeping track of different versions
+of the RPM:
`$ PKG_RELEASE=123 bash makerpm.sh`