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/>`_: * `Nose <http://somethingaboutorange.com/mrl/projects/nose/>`_:
for unit tests for unit tests
* `buildout <http://www.buildout.org/>`_: for getting dependencies, * `virtualenv <http://www.virtualenv.org/>`_: for setting up an
building a runtime environment, ... isolated environment to keep mediagoblin and related packages
(potentially not required if MediaGoblin is packaged for your
distro)
* Data storage * Data storage
@ -67,21 +69,47 @@ Software Stack
* `Routes <http://routes.groovie.org/>`_: for URL routing * `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 * `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, * `WTForms <http://wtforms.simplecodes.com/>`_: for handling,
validation, and abstraction from HTML forms validation, and abstraction from HTML forms
* `Celery <http://celeryproject.org/>`_: for task queuing (resizing * `Celery <http://celeryproject.org/>`_: for task queuing (resizing
images, encoding video, ...) 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 * Front end
@ -92,7 +120,8 @@ Software Stack
What's where 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:: tree::
mediagoblin/ mediagoblin/
@ -102,12 +131,14 @@ tree::
| |- auth/ | |- auth/
| \- submit/ | \- submit/
|- docs/ # documentation |- 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 |- bin/ # scripts
|- develop-eggs/ |- develop-eggs/
|- eggs/ |- lib/ # python libraries installed into your virtualenv
|- include/
|- mediagoblin.egg-info/ |- mediagoblin.egg-info/
|- parts/ |- parts/
|- user_dev/ # sessions, etc |- user_dev/ # sessions, etc