Recominer is a tool aiming to help developers to make changes into source code file. Therefore, using historical information of the commits and issues from software project, it is applied Machine Learning's Classification and Association Rules in order to predict files that are change-prone to complete a particular issue.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
You will need to install the following software:
- Java 8 to run Recominer
- MySQL Database Server for save data
- Python 2.x to run Bicho and CVSAnalY2
- Bicho to extract data from issue tracker repository
- CVSAnalY2 to extract data from version control repository
- Git, SVN and/or CVS client to extract data from version control repository.
These software needs to be configured in your Operational System's classpath in order to Recominer work (python, csvanaly, bicho, java, git, etc).
To build a binary of Recominer (Extractor and Web), you will need the Maven and run the following command on root path of projet:
mvn clean build
To extract data from repository, you will need run the following command:
java -jar recominer-extractor-[version].jar --projectName=[NAME] --versionControlUrl=[url] --repositoryPath=[local_path_of_downloaded_repostiory] --issueTrackerUrl=[url] --issueTrackerSystem=[BUGZILLA|JIRA|GITHUB]
A practical example:
java -jar recominer-extractor-0.6.0.jar -D --projectName=CXF --versionControlUrl=git://git.apache.org/cxf.git --repositoryPath=/home/user/repositories/cxf --issueTrackerUrl=https://issues.apache.org/jira/browse/CXF --issueTrackerSystem=JIRA
To run the Recominer Web module (interface to view the prediction results), you will need run the following command:
java -jar recominer-web-[version].jar
The unit and integration tests can be run by Maven with following command:
mvn test
- Spring Boot - The application framework used
- Spring Batch - The application framework used
- Angular JS - The front-end framework used in Web module
- Maven - Dependency Management
Please, fell free to make your suggestion and contribution. You can submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Rodrigo Kuroda - Developer and researcher - Rodrigo Kuroda's GitHub
- Igor Wiese - Researcher - Igor Wiese's GitHub
- Reginaldo Ré - Researcher
See also the list of contributors who participated in this project.
This project is licensed under the Apache 2.0 License - see the LICENSE.md file for details
- This software was developed during Rodrigo Kuroda's Master's Degree at Federal Technological University of Paraná - UTFPR.