Commit Privileges Process
Wait!
If you really want to contribute to Mifos, you can become a committer. It isn't hard. But keep in mind that you do not need to be a committer to be a contributor!
Ask for help often: "will someone take a look at my patch(es)?" and "will someone pull from my repository?". If you find yourself asking for this kind of help often, read on.
How to become a committer
What do you need to do in order to gain privileges to push code into the authoritative Mifos source code repositories?
The first requirement is to submit enough code for the Mifos team to evaluate your work. This won't translate into some particular number of patches since some patches will contain more code than others.
Here are some things that we look for in patches we receive in order to decide if someone should get commit privileges and continue evaluating to determine is someone should retain commit privileges they have been granted. Contributors should:
- Follow the Code Submission Process and not break the build
- Follow builds on our continuous integration server so that you are aware if the build has been broken (committers, also see How To Break The Build)
- Write test driven code. If you are fixing a bug, then there should be a test which demonstrates the bug. If you are building new functionality, then there should be unit tests that exercise that functionality.
- Work iteratively. If you are working on something that involves a significant amount of code, send it in multiple patches or commits as you complete parts of the work rather than one big piece when everything is done.
- Not introduce new bugs. Fixing a bug or adding a feature shouldn't break other functionality.
- Follow the Mifos Coding Standards. Database schema changes must be accompanied by appropriate automatic upgrade steps.
- Demonstrate the ability to write clean code and apply good software design
- Submit a contributor agreement
- Participate on the mifos-developer mailing list
- Read Adding Software To Mifos before introducing dependencies on new third party libraries
Mifos is a work in progress and current Mifos code is not always the best example of how code should be written. When preparing to write code, it is always good to look at existing Mifos code and ask yourself if it can be improved rather than just following what has been done before. If it seems like there is an improvement to be made, suggest it on the developer mailing list to get feedback. Based on the feedback, then make your change and help to improve the Mifos code base.