Updating codebase.rst to reflect the modern mediagoblin world
authorChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 9 Feb 2012 15:10:08 +0000 (09:10 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 9 Feb 2012 15:16:14 +0000 (09:16 -0600)
 - adding/removing libraries listed as appropriate
 - buildout->virtualenv references
 - Updating directory structure description to reflect current reality

docs/source/codebase.rst

index 2518e48fe74b3e98bec414235599f8838a31868c..e784c9e5a6cd6a32266f098bb14d173f61813db0 100644 (file)
@@ -48,8 +48,10 @@ Software Stack
   * `Nose <http://somethingaboutorange.com/mrl/projects/nose/>`_:
     for unit tests
 
-  * `buildout <http://www.buildout.org/>`_: for getting dependencies,
-    building a runtime environment, ...
+  * `virtualenv <http://www.virtualenv.org/>`_: for setting up an
+    isolated environment to keep mediagoblin and related packages
+    (potentially not required if MediaGoblin is packaged for your
+    distro)
 
 * Data storage
 
@@ -67,21 +69,47 @@ Software Stack
 
   * `Routes <http://routes.groovie.org/>`_: for URL routing
 
-  * `Beaker <http://beaker.groovie.org/>`_: for handling sessions
+  * `Beaker <http://beaker.groovie.org/>`_: for handling sessions and
+    caching
 
   * `Jinja2 <http://jinja.pocoo.org/docs/>`_: the templating engine
 
-  * `MongoKit <http://namlook.github.com/mongokit/>`_: the lightweight
-    ORM for MongoDB we're using which will make it easier to define
-    structures and all that
-
   * `WTForms <http://wtforms.simplecodes.com/>`_: for handling,
     validation, and abstraction from HTML forms
 
   * `Celery <http://celeryproject.org/>`_: for task queuing (resizing
     images, encoding video, ...)
 
-  * `RabbitMQ <http://www.rabbitmq.com/>`_: for sending tasks to celery
+  * `MongoKit <http://namlook.github.com/mongokit/>`_: the lightweight
+    ORM for MongoDB we're using which will make it easier to define
+    structures and all that (will be swapped out soon...)
+
+  * `SQLAlchemy <http://sqlalchemy.org/>`_: SQL ORM and database
+    interaction library for Python.  We'll be moving to this in the
+    upcoming move to SQL.
+
+  * `Babel <http://babel.edgewall.org>`_: Used to extract and compile
+    translations.
+
+  * `Markdown (for python) <http://pypi.python.org/pypi/Markdown>`_:
+    implementation of `Markdown <http://daringfireball.net/projects/markdown/>`_
+    text-to-html tool to make it easy for people to write richtext
+    comments, descriptions, and etc.
+
+  * `lxml <http://lxml.de/>`_: nice xml and html processing for
+    python.
+
+* Media processing libraries
+
+  * `Python Imaging Library <http://www.pythonware.com/products/pil/>`_:
+    used to resize and otherwise convert images for display.
+
+  * `GStreamer <http://gstreamer.freedesktop.org/>`_: (Optional, for
+    video hosting sites only) Used to transcode video, and in the
+    future, probably audio too.
+
+  * `chardet <http://pypi.python.org/pypi/chardet>`_: (Optional, for
+    ascii art hosting sites only)  Used to make ascii art thumbnails.
 
 * Front end
 
@@ -92,7 +120,8 @@ Software Stack
 What's where
 ============
 
-After you've run buildout, you're faced with the following directory
+After you've run checked out mediagoblin and followed the virtualenv
+instantiation instructions, you're faced with the following directory
 tree::
 
     mediagoblin/
@@ -102,12 +131,14 @@ tree::
     |  |- auth/
     |  \- submit/
     |- docs/                     # documentation
+    |- devtools/                 # some scripts for developer convenience
     |
-    |  # the below directories are generated by buildout.
+    |  # the below directories are installed into your virtualenv checkout
     |
     |- bin/                      # scripts
     |- develop-eggs/
-    |- eggs/
+    |- lib/                      # python libraries installed into your virtualenv
+    |- include/
     |- mediagoblin.egg-info/
     |- parts/
     |- user_dev/                 # sessions, etc