The files in Wigwam are laid out to mimic the standard
Unix/GNU filesystem hierarchy, with one major change.
In Unix, /usr is used to represent
"files only needed once the
system is booted." We don't care about that, hence we don't have
/usr.
However, files which are installed as Wigwam packages
should place their files in a similar directory,
$PLAYPEN_ROOT/ext.
You should never hand-edit files in
$PLAYPEN_ROOT/ext, nor should
ext be checked into your
CVS repository.

A project using Wigwam contains a few major directories. They are generally checked into CVS, except that all the files installed by packages are in ext/, so those should not be cvs commit'd.
Usually the other directories are similar to the normal Unix hierarchy:
Shared libraries and other language libraries: they contain helpful functions used by programs.
Programs run by a users.
Project configuration files.
Web documents: html and template files.
Source code that must be compiled (such as C or Java).
External packages: programs, libraries and data provided by code outside your project. The directory is not checked into CVS.
In order to configure services, developers must put configuration information into the etc/roles/ROLE/config and etc/clusters/CLUSTER/config files. These environment variables may be interpreted in any way the services please, but often implementors use the sub-conf script to substitute patterns of the form __ENVAR__ with the value of the environment variable ENVAR. See the Section called Configuring Wigwam Services in Chapter 3 for more information.