Infrastructure: Mifos X vs. Apache Fineract
As we’ve made the transition to moving development over to our Apache Fineract community, we have added some additional layers of complexity and confusion. We now have multiple mailing lists, multiple issue trackers, and multiple source code repositories. We’ve tried to address these in various webinars and developer meetings but wanted to make clear where you should go to ask questions, where you should go to report issues, and where you should go to grab the source code.
Mifos X versus Apache Fineract
A line of clarity we must first draw is Mifos X vs. Apache Fineract. Prior to the transition to becoming an Apache project, Mifos X was the software platform. From the moment we became an Apache project, Mifos X, the software platform became Apache Fineract. Mifos X now refers to the open source product distribution led by the Mifos Initiative that is built on top of Apache Fineract. Just as Musoni Services provides Musoni System or Conflux Technologies provide Finflux, Mifos X is another distribution on top of Apache Fineract.
The Mifos X distribution is an entire out-of-the-box solution that is a value-added distribution for financial inclusion. which includes a web app (formerly referred to as community app), a mobile app for field officers, soon a mobile app for clients, reports powered by Pentaho and a data import tool. This distribution is released and available for download via SourceForge from the Mifos.org website. It is directed towards partners and user looking for a readily deployable solution including the Apache Fineract platform, a web user interface, and corresponding mobile apps.
The Apache Fineract is a general core banking system with just the back-end and APIs and no front-end. Developers and Innovators looking to build on Apache Fineract should go directly to GitHub and grab the source code for Apache Fineract (see below).
Source Code
As soon as the Mifos X platform became Apache Fineract, our main GitHub repo for Mifos X (https://github.com/openMF/mifosx) became deprecated.
The main repo for the platform is Apache Fineract at https://github.com/apache/incubator-fineract.
The openMF github account provides all the repositories related to the Mifos X distribution. We also provide a mirror of the Apache Fineract repo (https://github.com/openMF/incubator-fineract) that we use for the Mifos X distribution.
Source code for the specifics apps and modules that are part of the Mifos X distribution can be found at:
- Web App: https://github.com/openMF/community-app
- Android App for Field Officers: https://github.com/openMF/android-client
- Android App for Clients (Self-Service): https://github.com/openMF/self-service-app
- Data Import Tool: https://github.com/openMF/DataImportTool
- Message Gateway: https://github.com/openMF/message-gateway
Mailing Lists
There are now four mailing lists you can join – they’re all documented and described on our Communications page. If you don’t know where to post your question, you should first post to either Apache Fineract developer or user’s lists and if that’s not the correct place we’ll redirect it to the proper mailing list.
Apache Fineract Developer Mailing List
Any technical questions or discussions related to any of the core functionality in the software should go here. This will likely be the most heavily used mailing list. Subscribe to the dev mailing list by sending a blank email to dev-
Mifos Developers’ Mailing List
If you have a question or topic related to development of one of the apps or modules specific to the Mifos X distribution, you should post here. If you’re developing on the AngularJS web app, or the Android mobile apps, post questions here.
Apache Fineract User Mailing List
Any question, discussion, or topic related to functionality in the Apache Fineract platform or using any of the distributions powered by Apache Fineract should go here. If you want to request a new core feature this should go here. Typical conversations include how to use or configure a feature, reporting or verifying a bug, discussing the design or requirements of a new feature, etc. Subscribe to the user mailing list by sending a blank email to user-subscribe@fineract.
Mifos User’s Mailing List
If you have a question that’s specific only to using the Mifos X distribution or its mobile apps, post it here. More often than not, it will also be appropriate for the Apache Fineract User’s Mailing List too.
Issue Trackers
Our issue trackers are used to report bugs and request features. This is where the transition has resulted in some of the biggest changes so pay close attention.
Prior to the transition, all issues and feature requests were reported as JIRA tickets (MIFOSX-XXX) on MifosForge – https://mifosforge.jira.com/secure/Dashboard.jspa. Going forward with the transition, this JIRA instance on MifosForge will only be used as a historical archive.
No new issues should be reported on MifosForge – all these will get reported on the issue trackers described below.
All active issues on MifosForge are being closed and migrated over to the new issue trackers with the following status – @FINERACT (moved to Apache Fineract Issue Tracker) or Closed with the Resolution of GitHub (moved to GitHub issue tracker).
Apache Fineract Jira Issue Tracker
Anything related to the Apache Fineract platform should be logged as a ticket here – whether it’s a bug, a new feature you’d like to request, or a new enhancement you’re working on. You can see a list of open tickets.
GitHub Issues
With the majority of issues now being reported on the Apache Fineract issue tracker, we’ve chosen to go with a more lightweight and more integrated approach to issue tracking for issues related to the Mifos X distribution. GitHub issues, while not as robust as Jira, provides a simple interface, ample functionality and most importantly direct integration with the respective app or module the ticket relates to.
Going forward, any issues related to the Mifos X distribution should be logged as an issue in the respective GitHub repository.
- If you find an issue with the web app user interface (that’s not related to the core platform) report it at: https://github.com/openMF/community-app/issues
- If you find an issue with the android field officer app, report it at: https://github.com/openMF/android-client/issues
- If you find an issue with the data import tool, report it at: https://github.com/openMF/DataImportTool/issues
- If you find an issue with the android self-service app, report it at https://github.com/openMF/self-service-app/issues
- If you find an issue with a report in Mifos X, report it at https://github.com/openMF/community-app/issues
For all but reporting, where you log issues should make logical sense – you create an issue in the repository of the app or module you were using.
GitHub provides lightweight project management which allows us to assign issues to release/milestones and track progress, direct integration with incoming pull requests, and direct integration with our Gitter chatrooms.
One downside is that users that aren’t collaborators on the repository can’t assign labels but we will create a group that you can be assigned to so in the future you can attach labels.
Triage
Each week the core team goes through the list of bugs, confirms them, and assigns them a priority of P1, P2, or P3 based on the severity documented by the reporter. The core team aims to fix P1 and P2 issues first and ship those in subsequent point releases. We’re currently getting through the existing backlog and will be then triaging new bugs as they’re reported each week.
You can report severity according to the following:
Blocker: Prevents work from getting done, causes data loss, or BFI (“Bad First Impression”).
Critical: Workaround required to get stuff done.
Major: Like Critical, but rarely encountered in normal usage.
Minor: Developer concern only, API stability or cleanliness issue.
Trivial: Nice to fix, but in a pinch we could live with it.
Triage meetings are on Wednesday at 1300GMT and we welcome the participation of community members.