vmware-nsx/doc/source/devref/development.environment.rst
Jay Pipes 3a9306054b Start of new developer documentation
There is currently no useful developer-focused documentation in-tree
for Neutron. There are a smattering of useful documents on the
OpenStack wiki, however, there isn't a good organization to this
information, nor is there a condensed developer focus to a lot of it.
Some of the wiki pages are more proposals for features or bug fixes,
and there is a need for architecture, design, and code walk-through
documentation for Neutron to help with new (and existing) contribution.

This patch begins the process of adding developer documentation to Neutron.
It updates the main developer reference index.rst to pull in-line with what
Nova is doing, leaving some todo references for future patches. It also
adds a development.environment tutorial that is up-to-date with current
Neutron development, using tox/testr processes for running unit tests and
including a number of references to external wiki pages that have
instructions for using DevStack for OpenStack contribution/testing.

The next series of patches will add automodule documentation to the
developer reference for some of the major modules in Neutron.

Change-Id: I23aaa11d9a174f24242c49767b92540f5e25b48a
Addresses: blueprint quantum-developer-docs
2013-12-26 17:24:38 -05:00

3.7 KiB

Setting Up a Development Environment

This page describes how to setup a working Python development environment that can be used in developing Neutron on Ubuntu, Fedora or Mac OS X. These instructions assume you're already familiar with Git and Gerrit, which is a code repository mirror and code review toolset , however if you aren't please see this Git tutorial_ for an introduction to using Git and this wiki page_ for a tutorial on using Gerrit and Git for code contribution to Openstack projects.

Following these instructions will allow you to run the Neutron unit tests. If you want to be able to run Neutron in a full OpenStack environment, you can use the excellent DevStack_ project to do so. There is a wiki page that describes setting up Neutron using DevStack_.

Virtual environments

Testing OpenStack projects, including Neutron, is made easier with DevStack_.

Create a machine (such as a VM or Vagrant box) running a distribution supported by DevStack and install DevStack there. For example, there is a Vagrant script for DevStack at https://github.com/jogo/DevstackUp.

Note

If you prefer not to use DevStack, you can still check out source code on your local machine and develop from there.

Getting the code

Grab the code from GitHub:

git clone git://git.openstack.org/openstack/neutron.git
cd neutron

Running unit tests

With run_tests.sh

You can use the run_tests.sh script in the root source directory to execute tests in a virtualenv:

./run_tests -V

With tox

Neutron, like other OpenStack projects, uses tox_ for managing the virtual environments for running test cases. It uses Testr_ for managing the running of the test cases.

Tox handles the creation of a series of virtualenvs_ that target specific versions of Python (2.6, 2.7, 3.3, etc).

Testr handles the parallel execution of series of test cases as well as the tracking of long-running tests and other things.

Running unit tests is as easy as executing this in the root directory of the Neutron source code:

tox

For more information on the standard Tox-based test infrastructure used by OpenStack and how to do some common test/debugging procedures with Testr, see this wiki page:

https://wiki.openstack.org/wiki/Testr

Using a remote debugger