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 python-lxml
47 Running bootstrap and buildout
48 ------------------------------
50 After installing the requirements, follow these steps:
52 1. Clone the repository::
54 git clone http://git.gitorious.org/mediagoblin/mediagoblin.git
56 2. Bootstrap and run buildout::
59 python bootstrap.py && ./bin/buildout
62 That's it! Using this method, buildout should create a ``user_dev``
63 directory, in which certain things will be stored (media, beaker
64 session stuff, etc). You can change this, but for development
65 purposes this default should be fine.
70 We used `zc.buildout <http://www.buildout.org/>`_ because it
71 involves fewer steps to get things running and less knowledge of
72 Python packaging. However, if you prefer to use `virtualenv
73 <http://pypi.python.org/pypi/virtualenv>`_, that should work just
80 While hacking on GNU MediaGoblin over time, you'll eventually have to
81 update the dependencies. To do that, run::
91 ./bin/paster serve mediagoblin.ini --reload
94 Running the test suite
95 ======================
105 FIXME - this needs to be updated when it's set in stone.
107 All new files need to have license/copyright information.
109 The following kinds of files get the GNU AGPL header:
114 * other files with code in them
116 The following files get a CC BY header:
120 The following files don't get a header because that's hard, but are
121 under the CC BY license:
127 Quickstart for Django programmers
128 =================================
133 Bite-sized bugs to start with
134 =============================