Developing grok

Preparing for grok development

The Grok development sandbox is set up via 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

Note, that this is the grok core package. If you want to develop Grok applications you might consider to use grokproject instead.

Running the demo applications

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

$ bin/paster serve parts/etc/deploy.ini

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 scripts in bin:

$ bin/grokdocs2html

The output is by default written to build/html/.

Run:

$ bin/grokdocs2html -h

to get all options supported.

With:

$ bin/grokdocs2latex

you get LaTeX output which can be used to generate PDF docs. This requires a working LaTeX installed on your system.

Table Of Contents

Previous topic

API reference

Next topic

Grok changes

This Page