Hacking
If you care to hack on the Bangarang code and risk near-fatal exposure to my underwhelming and perhaps laughable C++ fu, below are some guidelines that will help.
Bangarang-hacker rule #1 is the only rule:
- Rule #1 – Have fun! If you’re not having fun, take a break.
Once you make sure you’re having fun then consider the following guideline:
- Guideline – Basics first – gravy later…
The guideline is not a rule. It just helps prioritize activities. Besides, who doesn’t like good gravy!
Merge requests
To get your code into Bangarang submit a gitorious merge request. This gives us an opportunity to review and comment on the code. Gitorious has really nice code review and comment facilities.
Branching
Use of local branches is strongly encouraged. For every feature or substantial bugfix create a branch. If possible, break down bigger features into smaller discrete subfeatures or tasks that touch less files and create a separate branch to implement each of those. Following the merge request guidelines, perform merge request as you complete implementation of each branch. You can always delete your local branches as you complete them. Branches are cheap, let’s use them. This also minimizes merge impacts on other team members.
Review
I'm going to try to stay away from commenting on changes committed to your personal clone repositories, unless you ask for it. Otherwise I’ll just wait on a merge request to do a review. This means though that if you'd like feedback before you put too much time and effort into a new feature you’re working on then you have to ask for it.
The changes that will receive the most rigorous review are those that impact any element of the UI/UX. Please be patient during this process and rest assured that any feedback is always meant to be constructive. I know there are a lot of features many want in a media player. Not all of those features will necessarily end up in this media player. You’re certainly encouraged to work on new cool features, but it will likely help code review if we coordinate upfront.
Git Workflow
There are likely a million ways to do this but perhaps one way you could do it is:
1. Clone
a. Create personal clone of bangarang master repo on gitorious.
b. Create your local master by cloning your personal clone repo locally.
2. Work on feature/bugfix
a. Create a branch locally to work on the feature/bugfix.
b. Work in the branch till ready
3. Prepare for merge
a. Switch to local master and git pull from the bangarang master repo to get the latest updates.
b. Merge branch with local master and examine/reconcile merge conflicts locally.
4. Request merge
a. Push local master to personal clone on Gitorious.
b. Do a merge request on Gitorious using your personal clone which should now contain all your changes.
Feel free to recommend any improvements.

