| #summary Melange Modules |
| #labels 2013DeveloperDoc |
| |
| =Static Modules (How Melange Is Organized In Source Control Directories)= |
| |
| ==The "app" Top-Level Directory== |
| |
| The "app" top-level directory contains all source control-based resources that will go into the code package that will be uploaded to App Engine as part of Melange's release. It contains several third-party code directories, the "soc" directory that contains Melange's first-party production code, and the configuration files and outermost scripts that mediate App Engine's interaction with Melange's code. |
| |
| ==app/soc== |
| |
| app/soc is the root of Melange's first-party (authored by Melange developers) code. It is divided into: |
| * *cache* |
| ** Melange's code that interacts with the App Engine memcache. |
| ** Primarily used for XSRF tokens and determining which projects, organizations, and tasks are randomly featured on the home page. |
| * *content* |
| ** Melange's static content (mostly images). |
| * *logic* (described below) |
| * *mapreduce* |
| ** Melange's code for making changes to all instances of a given type of data. |
| * *middleware* |
| ** Melange's code for interacting with Django's Middleware and Blobstore systems. |
| * *models* (described below) |
| * *modules* (described below) |
| * *tasks* |
| ** Melange's code for interacting with App Engine's tasks system. |
| ** Email sending is handled by this code. |
| * *templates* |
| ** Melange's HTML templates. |
| ** As of March 2013 the elimination of a "v2" layer of indirection is in progress in this directory. |
| * *views* (described below) |
| |
| ==Other Top-Level Directories== |
| |
| * *mockup* |
| ** Design assets from past site redesigns (mostly images and HTML). |
| * *scripts* |
| ** First-party Melange code not included in the web application image of Melange. |
| * *tests* |
| ** Tests and test utilities in a directory structure mirroring that of the top-level "app" directory. |
| * *thirdparty* |
| ** Third-party code such as the App Engine SDK. |
| |
| =Dynamic Modules (How Melange Is Organized During Execution)= |
| |
| Add your content here. Format your content with: |
| * Text in *bold* or _italic_ |
| * Headings, paragraphs, and lists |
| * Automatic links to other wiki pages |