Skip to content

How the devilry source is organized

espenak edited this page Jul 2, 2011 · 17 revisions

The devilry source code lives in the devilry/ directory.

devilry/apps/

All python code for Devilry except for client side code. Devilry is organized as a set of Django applications, and each subdirectory is such an application.

Each application should not depend on other applications except core (see below), however if depending on another application is natural, this should be documented in the module api docs (in devily/apps/[appname]/__init__.py). Note that this restriction is currently breached without documentation is several devilry apps, however new apps should try to be standalone, or at least document dependencies.

devilry/apps/core/

The devilry core data model. Currently maintained by Bendik R. Opstad.

devilry/utils/

General python modules that does not belong naturally within an app.

devilry/simplified/

The simplified API (see issue 90). TODO: More info about this API when it is more stable. Currently maintained and developed by Espen A. Kristiansen.

devilry/restful/

The RESTful API (see issue 93). TODO: More info about this API when it is more stable. Currently maintained and developed by Tor Ivar Johansen and Espen A. Kristiansen.

devilry/projects/

Each subdirectory is a Django project, which configures the devilry applications into a usable Devilry instance. Some projects may contain many files, however the only required files are settings.py, manage.py and urls.py.

devilry/projects/dev/

The main development project. This directory is allowed to become somewhat cluttered by unused apps and experimental settings. Developer only apps (such as tutorials), should be placed in devilry/projects/dev/apps/.

devilry/(other dirs not explicitly mentioned here)

The devilry directory is our python module. Here we add everything that is not a django application. See the respective __init__.py (or pydoc devilry.(modulename)) of each submodule for their details.

Experiments with new technologies

Should go in the devilry-sandbox repository.