This repository contains the necessary data to replicate the information from the study "The Cost vs. the Benefit of Adding an Extra Code Reviewer to Mitigate Developer Turnover through Reviewer Recommenders" which is published in ICSE'26. First, you should install the dependencies for the replication package, and then follow the instructions in the README File to run the simulations.
Before installing the replication package, you need to install the following dependencies.
You need to get the latest bits on .NET Core.
Download and install Microsoft SQL Server and set up a local server instance on your computer. You can install SQL Server Management Studio to query the database.
You need to get the latest version of PowerShell Core. RelationalGit uses PowerShell for extracting blame information.
RelationalGit has been built on top of the most popular Git Libraries. It uses libgit2Sharp, Octokit.Net, and Octokit.Extensions to extract the data from the git data structure and GitHub, respectively.
RelationalGit extracts valuable information about commits, blame, changes, developers, and pull requests from Git's data structure and imports it into a relational database, such as Microsoft SQL Server. These data can be used for further source code mining analysis. You can easily query the database and find answers to many interesting questions. Since source code mining is one of the most prominent topics in academia and industry, RelationalGit aims to facilitate researchers' investigations more conveniently. For example, you can find answers to the following questions by running a simple SQL query over extracted data.
- What files have recently been changed by a given developer?
- Who is the author of a specific line in a specific file? (Git Blame)
- Which developer has the most commits?
- What files are usually changed together? This way, you can detect and document your hidden dependencies.
- Which developer has the most knowledge about a file or project? This idea is based on Rigby's paper.
- Which files are constantly changing? Maybe they are bug-prone.
- Who is the most appropriate developer to work on a given file?
SofiaWL-LearnerPlusPlus is a dotnet Global tool based on RelationalGit. You should install this tool to run the simulations. You can use it seamlessly with your favorite command-line application.
dotnet tool install --global SofiaWL-LearnerPlusPlus --version 1.1.5For replication steps and running simulations, follow the instructions in README File.