Skip to content

CommitAnalysisInfrastructure/ComAnI

Repository files navigation

ComAnI

The Commit Analysis Infrastructure (ComAnI) is an open and configurable infrastructure for the extraction and analysis of commits from software repositories. For both tasks, individual plug-ins realize different extraction and analysis capabilities, which rely on the same data model provided by the infrastructure. Hence, any combination of extraction and analysis plug-ins is possible. ComAnI Overview ComAnI enables conducting an analysis for a software hosted in a Git repository first and later conducting the same analysis for a different software hosted by SVN (assuming that the analysis is able to cope with the artifacts and their technologies of the new software under analysis). Another example is to use the same commit extractor, e.g., supporting the commit extraction from Git repositories, for different analyses. The definition of a particular ComAnI instance consists of a set of configuration parameters saved in a configuration file, which the infrastructure reads at start-up. Hence, there is no implementation effort needed. The infrastructure automatically performs its internal setup, loads and starts the desired plug-ins.

The ComAnI Guide provides more information about the capabilities of the infrastructure.

Available Plug-ins:

Installation

Download the ComAnI.jar file from the release directory and save it to a directory of your choice on your machine.

Requirements:

  • Java 11 or higher (or equivalents, like OpenJDK)
  • Check the plug-in Github pages for information about plug-in-specific requirements

Execution

The infrastructure can be executed as a typical Java Jar-file, which expects the following parameters:

  • Mandatory: A configuration (properties) file, which defines the particular ComAnI instance and its setup. The available configuration options and their valid values are described in the ComAnI Guide.
  • Optional: the -i option can be used to perform a single commit extraction. It has to be followed by the commit information, which is terminated by a last line containing the string “!q!”.

Examples:

java -jar ComAnI.jar /path/to/configuration-file.properties

or

java -jar ComAnI.jar /path/to/configuration-file.properties –i <CommitContent>\n!q!

License

This project is licensed under the Apache License 2.0.

Acknowledgments

This work is partially supported by the ITEA3 project REVaMP², funded by the BMBF (German Ministry of Research and Education) under grant 01IS16042H.

A special thanks goes to the developers of KernelHaven: Adam Krafczyk, Sascha El-Sharkawy, Moritz Flöter, Alice Schwarz, Kevin Stahr, Johannes Ude, Manuel Nedde, Malek Boukhari, and Marvin Forstreuter. Their architecture and core concepts significantly inspired the development of this project. In particular, the mechanisms for file-based configuration of the infrastructure and the plug-ins as well as loading and executing individual plug-ins are adopted in this work.

Releases

No releases published

Packages

No packages published

Languages