I have been thinking about releasing the project that I am working on (my final PhD project) but I have some doubts/questions. I would appreciate it if any of you throw some ideas at me (links, keywords, etc.).
The project is a concurrency testing framework. It takes a go source as input, automatically instruments and collects a set of traces, and does some analysis on the collected (stored) data. Its ultimate focus is on exploring interleaving space and covering some concurrency coverage criteria.
For doing that, I inject some additional code to the runtime (by a pre-written patch), connect to a SQL database and query the database for analysis. So it is not a straightforward API to be usable through a package. However, I have been thinking about building the project somehow through to the built-in “testing” package of Go. This way users can enhance their unit testing with some concurrency testing too; but I am not sure how feasible is that.
With that being said, what do you think is a better option. Which on is a better fit for such a tool, a CLI or a package? What are the factors in making such a decision? Any input is much appreciated. I would be more than happy to clear things out if you have questions.