SofiaWL-ExpertPlusPlus 1.1.3

dotnet tool install --global SofiaWL-ExpertPlusPlus --version 1.1.3
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SofiaWL-ExpertPlusPlus --version 1.1.3
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=SofiaWL-ExpertPlusPlus&version=1.1.3
                    
nuke :add-package SofiaWL-ExpertPlusPlus --version 1.1.3
                    

This package contains the necessary methods to replicate the information from the "Mitigating the Risk of Defects and Improving Knowledge Distribution with Code Reviewer Recommenders" study, which is accepted for presentation at the FSE'26 Conference.

To run the simulations, follow these steps:

  1. You should first download and restore the database backup into your local MS SQL Server from Figshare. There is a separate database for each studied project, and you should restore all of them. To restore a database from a .bacpac file, start by opening SQL Server Management Studio (SSMS) and connecting to your local SQL Server instance. In the Object Explorer, right-click on the Databases node and choose Import Data-tier Application. From there, click Browse to locate the .bacpac file on your local disk. Once you’ve selected the file, follow the wizard by clicking Next, reviewing the steps, and then clicking Finish to complete the import process. This will restore your database and make it available in your SQL Server instance. Note that the databases are approximately 2 GB in size.

  2. Install the SofiaWL-ExpertPlusPlus package and download the simulation commands and configuration files from the official GitHub repository.

dotnet tool install --global SofiaWL-ExpertPlusPlus --version 1.1.3
  1. Open and modify each configuration file to set up the connection with the database. You have to provide the server address along with the credentials to your local SQL server instance. The following snippet shows a sample of how the connection string should be set.

"ConnectionStrings": {
  "RelationalGit": "Server=ip_db_server;User Id=user_name;Password=pass_word;Database=Roslyn_Defect"
},

  1. Open the simulations.ps1 file using an editor and update all the paths to the configuration files. For instance, each of the following variables contains the absolute path of the corresponding configuration file for the Roslyn project.
$roslyn_conf_replace = "Absolute\Path\To\Config\Replace_All\roslyn_conf.json"
$roslyn_conf_AddExpert25 = "Absolute\Path\To\Config\Add_Expert_25\roslyn_conf.json"
$roslyn_conf_AddExpert50 = "Absolute\Path\To\Config\Add_Expert_50\roslyn_conf.json"
$roslyn_conf_AddExpert75 = "Absolute\Path\To\Config\Add_Expert_75\roslyn_conf.json"
  1. Open PowerShell and run the simulations.ps1 script to simulate the performance of all the studied recommendation strategies across all projects.
./simulations.ps1
  1. To get your simulation IDs, connect to your local SQL Server instance and run the following query for each project. This query is a sample for the Rolsyn project.
-- Get the Id of the simulation 
SELECT  Id,
	KnowledgeShareStrategyType, 
	StartDateTime,
	EndDateTime
	PullRequestReviewerSelectionStrategy,
	SimulationType 
FROM [Roslyn_Defect].[dbo].[LossSimulations]
WHERE EndDateTime > StartDateTime
ORDER BY StartDateTime DESC
  1. To get your simulation results, you should run the analyzer using the following command. Substitute the <rec_sim_id> variable with the Id of your desired recommender, and compare the recommender performance with the actual values, <reality_id>. Note that you can add multiple simulation IDs, separating them with a space. You should also substitute <path_to_result> and <path_to_config_file> variables with the path where you want to save the results and the config file of the corresponding project.
dotnet-rgit --cmd analyze-simulations --analyze-result-path <path_to_result> --recommender-simulation <rec_sim_id> --reality-simulation <reality_id>  --conf-path <path_to_config_file>

For more details, check out the official repository on GitHub.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.2 is compatible.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.1.3 121 2/17/2026
1.1.2 102 2/14/2026
1.1.1 326 8/10/2025