|
@@ -9,8 +9,11 @@ statistics but rather provide the requirements for other items. The top-level it
|
|
|
include:
|
|
|
|
|
|
- BurndownAnalysis - line burndown statistics for project, files and developers.
|
|
|
+
|
|
|
- CouplesAnalysis - coupling statistics for files and developers.
|
|
|
|
|
|
+- ShotnessAnalysis - structural hotness and couples, by any Babelfish UAST XPath (functions by default).
|
|
|
+
|
|
|
The typical API usage is to initialize the Pipeline class:
|
|
|
|
|
|
import "gopkg.in/src-d/go-git.v4"
|
|
@@ -21,10 +24,7 @@ The typical API usage is to initialize the Pipeline class:
|
|
|
|
|
|
Then add the required analysis:
|
|
|
|
|
|
- ba := pipeline.DeployItem(&hercules.BurndownAnalysis{
|
|
|
- Granularity: 30,
|
|
|
- Sampling: 30,
|
|
|
- }).(hercules.LeafPipelineItem)
|
|
|
+ ba := pipeline.DeployItem(&hercules.BurndownAnalysis{}).(hercules.LeafPipelineItem)
|
|
|
|
|
|
This call will add all the needed intermediate pipeline items. Then link and execute the analysis tree:
|
|
|
|
|
@@ -35,17 +35,20 @@ Finally extract the result:
|
|
|
|
|
|
result := result[ba].(hercules.BurndownResult)
|
|
|
|
|
|
-The actual usage example is cmd/hercules/main.go - the command line tool's code.
|
|
|
+The actual usage example is cmd/hercules/root.go - the command line tool's code.
|
|
|
|
|
|
Hercules depends heavily on https://github.com/src-d/go-git and leverages the
|
|
|
diff algorithm through https://github.com/sergi/go-diff.
|
|
|
|
|
|
-Besides, hercules defines File and RBTree. These are low level data structures
|
|
|
-required by BurndownAnalysis. File carries an instance of RBTree and the current line
|
|
|
+Besides, BurndownAnalysis involves File and RBTree. These are low level data structures
|
|
|
+which enable incremental blaming. File carries an instance of RBTree and the current line
|
|
|
burndown state. RBTree implements the red-black balanced binary tree and is
|
|
|
based on https://github.com/yasushi-saito/rbtree.
|
|
|
|
|
|
Coupling stats are supposed to be further processed rather than observed directly.
|
|
|
labours.py uses Swivel embeddings and visualises them in Tensorflow Projector.
|
|
|
+
|
|
|
+Shotness analysis as well as other UAST-featured items relies on
|
|
|
+[Babelfish](https://doc.bblf.sh) and requires the server to be running.
|
|
|
*/
|
|
|
package hercules
|