Setting up a Development Environment

This document describes getting the source from keystone’s Git Repository and setting the environment up for development purposes.

To install keystone from packaging, refer instead to OpenStack’s User Documentation.


This document assumes you are using an Ubuntu, Fedora, or openSUSE platform and that you have the following tools pre-installed on your system:

  • Python 2.7 and 3.5, as the programming language;
  • git, as the version control tool;

Reminder: If you are successfully using a different platform, or a different version of the above, please document your configuration here!

Getting the latest code

Make a clone of the code from our git repository and enter the directory:

$ git clone
$ cd keystone

Development environment

For setting up the Python development environment and running tox testing environments, please refer to the Project Team Guide: Python Project Guide, the OpenStack guide on wide standard practices around the use of Python.

That documentation will guide you to configure your development environment and run keystone tests using tox, which uses virtualenv to isolate the Python environment. After running it, notice the existence of a .tox directory.

Verifying keystone is set up

Once set up, you should be able to invoke Python and import the libraries:

$ .tox/py27/bin/python -c "import keystone"

If you can import keystone without a traceback, you should be ready to move on to Best Practices.

Database setup

The script tools/ sets up databases as used by the unit tests.