Modifications done to the Mifos repository for bug fixing / feature enhancements have to be submitted as a patch. This patch should include all the changes done by the developer as part of the bug fixing / feature enhancements.
All code written for Mifos should be accompanied by associated unit tests. If you are writing a new feature, be sure to write unit tests that exercise the new functionality being implemented. If you are fixing a bug, write a unit test that fails because of the bug before you fix the bug. After you fix the bug, your unit test should pass. Include all the unit tests you write as part of your patch.
Prior to submitting a patch or checking in code, you are required confirm step 6 as above mentioned. It takes approximately 30 minutes to 1 hour to run entire build (depending on the hardware you are running on). Only then should you check-in (commit) your code or submit your patch. If you're checking in code to the repository, you can confirm that your check-in didn't break the build by looking at our continuous integration server.
Create an issue in the issue tracker if one does not already exist.
Update the issue:
Attach the patch file to the issue
Add the label, "Patch", once it has been attached. Assign the issue to mifosdeveloperqueue. This adds the patch to the patch queue. The "patch" label is removed if a patch is not ready for review or was rejected.
Watch the issue (click the envelope icon to the right of "Watchers")
Provide a link to relevant mailing list discussion(s) within the issue comments
When the patch has been accepted, the issue will be resolved and assigned back to you (the contributor).
How to apply a patch
Use git am. Give the author credit for their contribution. Using git am will correctly attribute authorship to the patch submitter.
If you manually apply the patch instead, there are several ways to attribute authorship to the contributor, such as