Is MD2K targeting an open source community?

First of all, I fully understand this is a research project and am truly impressed such extensive work is released to the public. However, given that the intent seems to be making this platform (and source code) available to a wider community, I just wanted to point out some major roadblocks I encountered preventing me (for now) from using the platform.

Previously, I got mCerebrum-Study up and running, thus I got quite interested in using parts of this project due to the big overlap with our research. At first it seemed like a potential healthy open source project. Now, while looking at some of the repositories which I believe are related to the 2.0 release (can not know for sure as no real documentation is available) I notice that out of the box some of the repositories do not even compile:

mCerebrum-StudymPerf:

  • has a curly brace too many in ViewPrivacy.java
  • FragmentWorkAnnotation.java tries to find several views with non-existing IDs
  • Fixing these makes the project compile, but then ends up in a NullPointerException at runtime

mCerebrum has 72 build errors: some classes seem to be missing: ConfigManager, AppInstall, BroadcastMessage, MinioObjectStats

I was quite surprised by this since this is code that resides on the master branch. Then I noticed that in fact the master branch is the only one in use and most commits have meaningless ‘initial commit’ comments (over the course of several months). Naturally I became a bit concerned about the feasibility of using these projects and potentially contributing to them.

Are the MD2K GitHub repositories intended to be more than a code dump for the MD2K team which requires inside knowledge to know how to navigate them? If an open source community is intended, there are a few things worthwhile considering:

  • Keeping the master branch ‘clean’ (so it compiles) and use separate feature branches for work in progress (I would even argue each commit should compile).
  • Add tags for ‘stable’ tested/documented version releases.
  • Add at least 2-3 lines of description per GitHub project which describes how it is related to the overall project. As an outsider it is impossible to tell what the difference is between mCerebrum, mCerebrum-Study, mCerebrum-StudymPerf, or mCerebrumStudymPerfLab; especially when they do not compile.

I heard some additional documentation was planned, which I am greatly looking forward to! However, I hope I clarified that it is also worthwhile implementing more strict development processes if you want to have other projects use/rely on these repositories.