Skip to content

Commit

Permalink
update buildout section
Browse files Browse the repository at this point in the history
  • Loading branch information
cehbrecht committed Mar 19, 2015
1 parent acd9b75 commit 32200cf
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
29 changes: 28 additions & 1 deletion docs/source/dev_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,37 @@ Alternative package manager to Anaconda are for example :term:`Homebrew` (MacOSX
Using Buildout in Birdhouse
---------------------------

Birdhouse uses the :term:`Buildout` build tool to install and configure all Birdhouse components (:term:`Phoenix`, :term:`Malleefowl`, :term:`Emu`...). The main configuration file is ``buildout.cfg`` which is in the root folder of the application.
As an example have a look at the `buildout.cfg from Emu <https://github.com/bird-house/emu/blob/master/buildout.cfg>`_.

Before building an application with Buildout you have an initial bootstrap step::

$ python bootstrap-buildout.py -c buildout.cfg

This will generate the ``bin/buildout`` script.
Now you can build the application::

$ bin/buildout -c buildout.cfg

The default configuration in the ``buildout.cfg`` should always work to run your application on ``localhost`` with default ports. You can customize the configuration by editing the ``custom.cfg`` which extends and overwrites the settings of ``buildout.cfg``. You may have a look at the
`custom.cfg example of Emu <https://github.com/bird-house/emu/blob/master/custom.cfg.example>`_. So, instead of using ``buildout.cfg`` you should use ``custom.cfg`` for the build::

$ bin/buildout -c custom.cfg

For convenience Birdhouse has a Makefile which hides all these steps. If you want to build an application you just need to run::

$ make install

See the `Makefile example of Emu <https://github.com/bird-house/emu/blob/master/Makefile>`_
For more details see the :ref:`installation` section and the :ref:`Makefile documentation <bootstrap:makefile>`.


Buildout Recipes by Birdhouse
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:term:`Buildout` has a plugin mechanism to extend the build tool functionality with `recipes <http://www.buildout.org/en/latest/docs/recipe.html>`_. Birdhouse provides a Buildout recipe to install Anaconda packages. There is also a set of recipes to set up Web Processing Service with PyWPS, Nginx, Gunicorn and Supervisor. All these `Buildout recipes are on GitHub <https://github.com/bird-house?query=birdhousebuilder.recipe>`_ and can be `found on PyPi <https://pypi.python.org/pypi?%3Aaction=search&term=birdhousebuilder.recipe&submit=search>`_.
:term:`Buildout` has a plugin mechanism to extend the build tool functionality with `recipes <http://www.buildout.org/en/latest/docs/recipe.html>`_. Buildout can handle Python dependencies by its own. But in Birdhouse we install most dependencies with Anaconda. We are using a Buildout extension to install conda packages with Buildout. Buildout does use these Python packages instead of downloading them from :term:`PyPi`.
There is also a set of recipes to set up Web Processing Service with :term:`PyWPS`, :term:`Nginx`, :term:`Gunicorn` and :term:`Supervisor`.
All these `Buildout recipes are on GitHub <https://github.com/bird-house?query=birdhousebuilder.recipe>`_ and can be `found on PyPi <https://pypi.python.org/pypi?%3Aaction=search&term=birdhousebuilder.recipe&submit=search>`_.

Here is the list of currently used Buildout recipes by Birdhouse:

Expand Down
15 changes: 15 additions & 0 deletions docs/source/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -134,5 +134,20 @@ Glossary
https://github.com/
https://en.wikipedia.org/wiki/GitHub

Phoenix
Pyramid *Phoenix* is a web-application build with the Python web-framework pyramid.
Phoenix has a user interface to make it easier to interact with :term:`Web Processing Services <wps>`.
http://pyramid-phoenix.readthedocs.org/en/latest

Malleefowl
*Malleefowl* is a Python package to simplify the usage of :term:`Web Processing Services <wps>`.
http://malleefowl.readthedocs.org/en/latest/

Emu
*Emu* is a Python package with some test proccess for :term:`Web Processing Services <wps>`.
http://emu.readthedocs.org/en/latest/





0 comments on commit 32200cf

Please sign in to comment.