Welcome to ape’s documentation!

ape is a make/rake/ant/fab-like system with support for FOSD.

ape is short for “A Productive Environment”. It provides a way to organize tasks in feature modules. Feature modules can introduce new tasks and refine tasks that have been introduced by other features.

Tasks are defined as simple python functions. ape makes these task functions available from the command line and provides usage information by extracting the functions` docstrings.


make looks for a Makefile in your current directory that defines the available tasks. In Contrast, ape composes the available tasks from a list of selected feature modules.

ape provides two basic modes of operation, that make different assumptions on how features are selected:

  • in standalone mode (default) features need to be placed somewhere on the PYTHONPATH.
  • in container mode ape provides a set of conventions to organize features and products in a directory structure.

For details, see Modes of Operation.

Specifying tasks is really simple: you implement your task as a simple python function. Other features can contain refinements for tasks. This way, it is possible to adapt the behaviour of specific tasks depending on the feature selection. For details, see Task functions.

Indices and tables