| 1 |
== Guide to Hacking Gitorious |
| 2 |
|
| 3 |
=== Dependencies |
| 4 |
|
| 5 |
Ruby libraries/bindings/gems |
| 6 |
|
| 7 |
* BlueCloth (http://rubyforge.org/projects/bluecloth/) |
| 8 |
* mime-types (http://rubyforge.org/projects/mime-types) |
| 9 |
* oniguruma (http://rubyforge.org/projects/oniguruma) |
| 10 |
* textpow (http://rubyforge.org/projects/textpow) |
| 11 |
* chronic (http://rubyforge.org/projects/chronic) |
| 12 |
* rmagick (http://rubyforge.org/projects/rmagick) |
| 13 |
|
| 14 |
Libraries/applications: |
| 15 |
|
| 16 |
* Git (http://git-scm.org) |
| 17 |
* Oniguruma C library (http://www.geocities.jp/kosako3/oniguruma/) |
| 18 |
* Sphinx (http://sphinxsearch.com/) |
| 19 |
|
| 20 |
(App is deployed on mysql, allthough source should be free of mysql-isms/quirks) |
| 21 |
|
| 22 |
|
| 23 |
=== The Hackers digest guide: |
| 24 |
|
| 25 |
1. Do the normal rails app stuff (database.yml etc.) |
| 26 |
|
| 27 |
2. Rename the config/gitorious.sample.yml file to gitorious.yml, and update it with your changes. |
| 28 |
|
| 29 |
3a. If you want real project data, find a project, set the 'ready' status to true, create a bare git repository (git --bare init) in the directory GitoriousConfig['repository_base_path']/#{project.slug}/#{repository.name}.git, and push something to that repository (cd to a git repository with commits and do "git push path/to/the/bare/repository/you/just/created master"). |
| 30 |
|
| 31 |
3b. OR run the script/task_performer and let it create the repository for you (remember to do step 2 first) |
| 32 |
|
| 33 |
4. Get your git on! |
| 34 |
|
| 35 |
Consult the mailinglist (http://groups.google.com/group/gitorious) or drop in |
| 36 |
by #gitorious on irc.freenode.net if you have questions. |
| 37 |
|
| 38 |
|
| 39 |
=== Tasks and other scripts |
| 40 |
|
| 41 |
* script/task_performer runs any tasks in the queue (creating repositories etc) |
| 42 |
* script/graph_generator generates graph. |
| 43 |
* rake ultrasphinx:index runs the search indexer |
| 44 |
|
| 45 |
|
| 46 |
=== Coding style |
| 47 |
|
| 48 |
* Two spaces, no tabs, for indention |
| 49 |
* Don't use and and or for boolean tests, instead always use && and || |
| 50 |
* MyClass.my_method(my_arg) -- not my_method( my_arg ) or my_method my_arg |
| 51 |
* Unless presedence is an issue; do .. end for multi-line blocks, braces for single line blocks |
| 52 |
* Follow the conventions you see used in the source already |
| 53 |
|
| 54 |
(copied mostly verbatim from dev.rubyonrails.org) |