This repository contains the code that cycles over commits within a given range, rebuilds the software, calculates the pageranks and analyses the build dependencies.
- Downlaod and install MAKAO and the guess graph exploration software by following the instructions on http://mcis.polymtl.ca/makao.html.
- Clone this repository.
- Place the most recent trace.gdf file created using MAKAO in the build folder.
- In the config.properties file update the locations as instructed in the file.
- Using the terminal change directory to the cloned repository folder.
- To properly run MAKAO you need a working version of java 6. For instructions on how to install java 6 use Google.
- Then open a terminal session and export the following variables:
- JAVA_HOME=/location_of_java6_folder/
- MAKAO=/location_of_makao_folder/
- GUESS_HOME=/location_of_guess_folder/
- Run the command javac *.java
- Run the command java CommitAnalysis
- This tool utilises the trace.gdf file produced by MAKAO to create a graph using HashMaps which can then easily be used to calculate pageranks and also to trace down all intermediate and deliverable files affected by a changing a particular file.
- The output can be of three types:
- If only source code files are changed then the output text file will contain the names of the targets modified during that commit followed by all the files that were impacted along with their pageranks.
- If only build files were changed the tool will reset the build of the software to that configuration and the output text file will read that 'only build files were changed during this commit'
- If both build and source files are changed the tool will reset the build to that configuration and the resulting text file will contain the names of the targets modified during that commit followed by all the files that were impacted along with their pageranks.
- During my research I analysed the open source software called VTK(Visualization Toolkit) on Ubuntu version 16.04. The build of the software system depends on the OS running on the machine. The results of this tool for a linux based machine can be found under the folder Linux.
- It is recommended that the same analysis be carried out on an OS other than Linux e.g on a MAC. The results from a MAC were obtained but due to a shortage of time could not be analysed graphically. They can be found here https://www.dropbox.com/s/h9aq88z4utryuba/Results.zip?dl=0
- Another suggested line of work would be to package these tools as a Gerrit plugin so that we can study change imapact at review time which will help improve our understanding of the same.
If you have any questions you can contact me by email at this address: [email protected]