Adding Software To Mifos
This page is about adding software to Mifos. It includes adding source code or binary libraries in the form of jars.
As an open source developer, you are responsible for doing the work to make sure that the software you want to use will be compatible on legal as well as technical terms.
When developing code, if you see a place where external software would be appropriate, please add it! See below for some criteria to help you decide what is appropriate.
Licenses
All software (including library jars) incorporated into Mifos must be compatible with the Apache License 2.0. These include Apache 2.0, BSD, MIT, and others. GPL v2 and v3 software are not compatible, and software using these licenses may not be incorporated into Mifos.
If you are in doubt, do not add the software to Mifos, and ask on the Developer mailing list.
Cryptography
Mifos does not include certain kinds of cryptographic software that is restricted by the United States government. This is because Grameen Foundation, the maker of Mifos, is located in the United States and must abide by its laws.
Not all cryptographic software is excluded - for example, secure hashing functions like MD5 and SHA1 are not restricted. Symmetric and asymmetric encryption and decryption software with keys in excess of 64 bits are restricted. If in doubt, do not add to Mifos, and contact the Mifos Developer Mailing list for help.
For more information see:
- Wikipedia's page on US export of cryptography
- Revised U.S. Encryption Export Control Regulations (at EPIC)
Source Code
To add source code to Mifos, you must sign the Mifos Contributor Agreement.
In general, do not add source code to Mifos if it can added via a jar file. (See Don't Repeat Yourself.) If in doubt, contact the Mifos Developer mailing list for help.
Libraries
All jars added to Mifos - via Maven pom.xml files or other means - must be compatible with the Apache License 2.0 as noted above, and must not contain restricted cryptographic software in the jar or any dependencies of the jar. Use mvn dependency:analyze
to see jar dependencies that are managed by maven.
If in doubt, do not add the jar, and contact the Mifos Developer mailing list for help.
When Should I Add Software To Mifos?
- When you think it is a good idea.
- When it helps customers get what they want.
- When the software you're adding is better than software in Mifos. Be sure to remove the Mifos source code you're replacing!
- When the best way to get new functionality is by using someone else's software.
- When the software you want to use is Open Source.
- When the licenses are compatible.
- When the software is currently maintained and has an active community.
- When the software does just what you need, and doesn't introduce bloat.
- When the software doesn't introduce security risk.
- When other Mifos and non-Mifos developers you've consulted with aren't opposed to the software.