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:

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?