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:
- has a curly brace too many in
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:
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
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.