My initial study of datapkg code has just finished. The full report can be obtained here (PDF). It is a document which will incrementally be upgraded at each iteration.
Sorry for my bad English, I wrote it during late hours of the day :)
Let’s summarize it: from what I learned during this software engineering phase, I confirm my first impression that datapkg has not been written to act as a library. Unfortunately, the interaction with the user is not completely performed ad the command line level, but also one level below in the architecture.
There are good news, anyway. The code is very well written and I will be able to write a tiny library wrapper that the GUI – and hopefully, the CLI and future projects – will use. I will first try to write it without touching datapkg internal code. If this will not be possible, I will probably fork the project to perform the tiny modifications and directly integrate the GUI and the library in it.
Here is how the future architecture of datapkg should be, if the authors follow us:
There are tiny modifications that are needed at the current code, if none at all. Let’s hope to minimize them.
For more information, read the report.