Development
===========

.. highlight:: bash

This package is developed using continuous integration which can be
found here:

http://jenkins.simplistix.co.uk/view/testfixtures/

The latest development version of the documentation can be found here:

http://jenkins.simplistix.co.uk/job/testfixtures-docs/Documentation/

If you wish to contribute to this project, then you should fork the
repository found here:

https://github.com/Simplistix/testfixtures/

Once that has been done and you have a checkout, you can follow these
instructions to perform various development tasks:

Setting up a virtualenv
-----------------------

The recommended way to set up a development environment is to turn
your checkout into a virtualenv and then install the package in
editable form as follows::

  $ virtualenv .
  $ bin/pip install -U -e .[test,build]

Running the tests
-----------------

Once you've set up a virtualenv, the tests can be run as follows::

  $ bin/nosetests

Building the documentation
--------------------------

The Sphinx documentation is built by doing the following from the
directory containing setup.py::

  $ cd docs
  $ make html

Making a release
----------------

The following will build the distribution, upload it to PyPI, register
the metadata with PyPI and upload the Sphinx documentation to PyPI::

  $ bin/pip install -e .[test,build]
  $ cd docs
  $ make clean
  $ make html
  $ cd ..
  $ bin/python setup.py sdist upload register upload_docs --upload-dir=docs/_build/html

Running pip again will make sure the correct package information is
used.

This should all be done on a unix box so that a `.tgz` source
distribution is produced.
