8 So you want to hack on GNU MediaGoblin?
9 =======================================
11 First thing to do is check out the Web site where we list all the
12 project infrastructure including:
18 Additionally, we have information on how to get involved, who to talk
19 to, what needs to be worked on, and other things besides!
22 How to set up and maintain an environment for hacking
23 =====================================================
29 First, you need to have the following installed before you can build
30 an environment for hacking on GNU MediaGoblin:
32 * Python 2.6 or 2.7 - http://www.python.org/
34 You'll need Python as well as the dev files for building modules.
36 * python-lxml - http://lxml.de/
37 * git - http://git-scm.com/
38 * MongoDB - http://www.mongodb.org/
40 If you're running Debian GNU/Linux or a Debian-derived distribution
41 such as Mint or Ubuntu, running the following should install these
44 sudo apt-get install mongodb git-core python python-dev \
48 Running bootstrap and buildout
49 ------------------------------
51 After installing the requirements, follow these steps:
53 1. Clone the repository::
55 git clone http://git.gitorious.org/mediagoblin/mediagoblin.git
57 2. Bootstrap and run buildout::
60 python bootstrap.py && ./bin/buildout
63 That's it! Using this method, buildout should create a ``user_dev``
64 directory, in which certain things will be stored (media, beaker
65 session stuff, etc). You can change this, but for development
66 purposes this default should be fine.
71 We used `zc.buildout <http://www.buildout.org/>`_ because it
72 involves fewer steps to get things running and less knowledge of
73 Python packaging. However, if you prefer to use `virtualenv
74 <http://pypi.python.org/pypi/virtualenv>`_, that should work just
81 While hacking on GNU MediaGoblin over time, you'll eventually have to
82 update your development environment. To do that, run::
87 Wiping your environment for a clean-slate
88 -----------------------------------------
90 Delete the following directories:
95 * mediagoblin.egg-info/
99 FIXME - how to drop data from mongodb?
107 ./bin/paster serve mediagoblin.ini --reload
110 Running the test suite
111 ======================
121 After you've run buildout, you're faced with the following directory
125 |- mediagoblin/ source code
130 |- docs/ documentation
132 | the rest of these directories are generated by
138 |- mediagoblin.egg-info/
140 |- user_dev/ sessions, etc
144 Quickstart for Django programmers
145 =================================
150 Bite-sized bugs to start with
151 =============================