# Development
{{toc 2-}}
MojoMojo has been under [web development](http://www.seop.com/web-development/) for a long time. It started its life as a Maypole app, and has since been ported to [Catalyst](http://www.catalystframework.org/). The ORM has also been changed from Class::DBI to {{cpan DBIx::Class}}, which gave the [nested set](http://dev.mysql.com/tech-resources/articles/hierarchical-data.html) code a fair bit more elegance.
It's still a bit rough in the edges, but it has grown a fairly comprehensive test suite over the years. The controllers and models are fairly easy to follow, and thanks to [TT](http://template-toolkit.org/), the templates are pretty clean too.
## Visualize
* [database schema diagram]( https://satya.huntana.com/mojomojo_schema/public/relationships.html)
* [[/documentation/MojoMojo_private_paths_visualized]]
* MojoMojo dependencies - [text](http://deps.cpantesters.org/?module=MojoMojo;perl=latest) and [SVG diagram](http://svn.ali.as/graph/MojoMojo-runtime-5.010.svg)
* commit history - notice how the activity intensifies in 2009
{{youtube http://www.youtube.com/watch?v=-uFsoZ4AfkQ}}
## Source Control
MojoMojo is being maintained in a [Git](http://git.or.cz/) repo, currently residing at:
<http://github.com/marcusramberg/mojomojo/tree/master>
## Contributing
First, make sure you read the [[best_practices|development best practices]].
1. To use github, follow the [first two Github tutorials](http://github.com/guides/home):
* [Configure your name and e-mail](http://github.com/guides/tell-git-your-user-name-and-email-address)
* [Provide your public SSH key](http://github.com/guides/providing-your-ssh-key)
2. Clone the repository using "Your clone URL" (the Public one is read-only):
git@github.com:marcusramberg/mojomojo.git
1. To have your username hyperlinked on the web interface, configure your git e-mail address to match the e-mail address you used to sign up for github.com:
git config --global user.email "user@domain.com"
It's possible that if you add other email addresses via the Account or Profile, those will work too. Note that the matching is done by email address, not by username.
## Dependencies and testing
Mojomojo requires a number of dependencies, among which:
* [Imager](http://search.cpan.org/dist/Imager/), which requires the following libraries to be installed **beforehand**:
* libpng-dev libgif-dev libjpeg-dev. If you installed Imager before these, reinstall it with **cpan** `force install Imager`
## Developers
MojoMojo has had quite a few developers over the years. Here are the committers from GitHub and svn, in somewhat of an order of current activity so you know who to bug:
* [[/marcus|Marcus Ramberg]] - project coordinator
* [[/dandv|Dan Dascalescu (dandv)]]
* [[/mateus]]
* [[/linio]]
* [plu](http://github.com/plu)
* [[/autarch|Dave Rolsky (autarch)]]
* [batman](http://github.com/jhthorsen)
* [rafl](http://github.com/rafl)
* [lestrrat](http://github.com/lestrrat)
* [[/b10m]]
* nothingmuch
* gabbana
* dave
* sri
* andyg
* rimbu
* leonard
* [[/arne]]
* ilmari
* oleo
* bluefeet
* waswas
* [[/matthewt]]
* Penguin
* jshirley
* kixx
* martijn
* jrockway
* zby
* tkremer
* सूर्य के पिता
* 日本語
If you want to contribute, contact [[/marcus]] to get added. See also the list of [MojoMojo watchers on GitHub](jhthorsen)
## Roadmap
MojoMojo is nearing a 1.0 release. See the [[Roadmap]] for more info.
## Development Discussion
### [[Discussion/Single Level Page Hierarchy]]
### [[Discussion/Moving and renaming]]
### [[Discussion/MojoMojo Plugin Syntax ]]
## Support
For discussing MojoMojo, or if you want to help out with development, please go to [\#mojomojo](http://widget.mibbit.com/?server=irc.perl.org&channel=%23mojomojo) on irc.perl.org.