Preparing for grok development
------------------------------

The Grok development sandbox is set up via `zc.buildout`_

.. _zc.buildout: http://cheeseshop.python.org/pypi/zc.buildout

You may have setuptools already installed for your system Python. In
that case, you may need to upgrade it first because buildout requires
a very recent version::

    $ sudo easy_install -U setuptools

If this command fails because easy_install is not available, there is
a good chance you do not have setuptools available for your system
Python. If so, there is no problem because setuptools will be
installed locally by buildout.

Bootstrap the buildout environment::

    $ python bootstrap/bootstrap.py

and run the buildout command::

    $ bin/buildout
    [lots of stuff will be downloaded and installed here]

Note that if you have more than one sandbox for a Zope-based web
application, it will probably make sense to share the eggs between the
different sandboxes.  You can tell zc.buildout to use a central eggs
directory by creating ``~/.buildout/default.cfg`` with the following
contents::

    [buildout]
    eggs-directory = /home/bruno/buildout-eggs

Running the demo applications
-----------------------------

You can start Zope with the demo applications installed with the
following command:

    $ bin/zopectl fg

If you now connect to port 8080 and log in with username 'grok',
password 'grok', you should be able to add the grok-based applications
(such as grokwiki) from the menu.

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

Grok's tests are easily run by executing the test runner that's
installed in the ``bin`` directory::

    $ bin/test

Generating the website files
----------------------------

Grok's tutorial documents for the website can easily be generated
using the following script in ``bin``:

    $ bin/grok2html /path/of/output/directory
