Updating codebase.rst to reflect the modern mediagoblin world

- adding/removing libraries listed as appropriate
 - buildout->virtualenv references
 - Updating directory structure description to reflect current reality
This commit is contained in:
Christopher Allan Webber 2012-02-09 09:10:08 -06:00
parent 0c8e20cf13
commit 973f37e9c3

View 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