Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plotting arbitrary data for repository

I'm looking for a way to visualize arbitrary information about my repository over time, which might be some version-dependent number, such as:

  • lines of code
  • number of lines in a latex document
  • time between commits
  • anything that can be output by a script

What is the best way to visualize this information?

More specifically, I'm using mercurial and would ideally like something with a decent interface, with plot resizing/scrolling/etc... Jenkins' plot plugin is decent but not great, but more importantly it's not possible to visualize past data (say, after adding a new metric).

like image 562
Felix Avatar asked Sep 19 '12 17:09

Felix


1 Answers

I would suggest to split your task to simplify everything a little bit. It is likely you will need several different tools in order to collect and visualize all required information. Historical view seems to be another big challenge.

Lines of code

There are several plugins available for Jenkins, but almost all are highly specialized. SLOCCount plug-in seems to be most universal, but it does not provide any graphical output.

enter image description here

  • NSIQ Collector Plugin
  • SLOCCount plug-in
  • JavaNCSS Plugin

There might be some other option for your language. For example, CCCC will provide required information for C and C++ code:

enter image description here

Number of lines in a latex document I see several options to achieve that:

  • adapt existing solution/plugin
  • use repository statistics tool (Pepper, for example, can do the trick)
  • use simple shell script to count lines and report it

Pepper will generate something like the following:

enter image description here

Please check Pepper gallery. There are another tools, for example: hgchart

Time between commits

The simplest solution is to let a commit to trigger some trivial job, so Jenkins will provide all information as part of build history (with a timeline, etc).

enter image description here

Another solution is to use repository statistics tool once again:

enter image description here

Anything that can be output by a script

There are several good plug-ins for that.

  • Plot plugin can visualize multiple values provided as properties or csv file.
  • Measurement Plots Plugin scans the output in order to find values to be visualized

enter image description here

Happy continuous integration.

like image 51
Renat Gilmanov Avatar answered Sep 28 '22 08:09

Renat Gilmanov