EarlyPR: Early Prediction of Potential Pull-Requests from Forks
EarlyPR: Early Prediction of Potential Pull-Requests from ForksThis repository contains the code necessary to replicate the findings presented in the paper "EarlyPR: Early Prediction of Potential Pull-Requests from Forks".Folder Structuredatasets: data and preprocessing method for generating the required dataset.pr_run.py: The training entrance for RQ1.mergedpr_run.py: The training entrance for RQ2.test.py: The overall test and TemporalFilter implemented for RQ1 and RQ2.confusionMatrixCalculation.py: Running this script could directly derive the confusion matrix and the metrics conclusion for RQ1 and RQ2.Tables folder: This folder contains the tables and figures generated by this repository, which are also presented in the paper.CONSTANT: This folder contains the constant variables for the whole project, including mongoDB connection, Redis connection and Mapping tables.performPredict folder The metrics evaluated for RQ1 and RQ2.models folder : The main experiments and ablation model introduced.saveRunningResults folder : The running results of the prediction process. It is composed of the prediction results of the PRs and merged PRs for main experiments including EarlyPR and RandomPR.Running the scriptsThis paper contains two research questions and 16 different repositories, and the code for each research question is in the corresponding file.The command and the parameters for training the PRs' prediction process is as follows, change the repo_name to the repository you want to train.```pythonnohup python -u pr_run.py --repo_name corefx --do_train --device 0 > trainCorefx.log 2>&1 &```The command and the parameters for training the merged PRs' prediction process is as follows:```pythonnohup python -u mergedpr_run.py --repo_name corefx --do_train --device 0 > trainMergeCorefx.log 2>&1 &```The parameters needed for testing PRs' and mergedPRs' prediction codes are as follows:```pythonnohup python -u pr_run.py --do_test --mergedPRTest True --repo_name corefx --modelPath "output/pr_output/servo/" --MPmodelPath "output/mergepr_output/servo/" > TestCorefx.log 2>&1 &```We also provide the running results of the prediction process in the folder **saveRunningResults**. It contains the prediction results of the PRs and merged PRs for main experiments including **EarlyPR** and **RandomPR**. You can directly execute the following command to obtain the main experimental results presented in Tables 3 and Figure 3.```pythonpython confusionMatrixCalculation.py```RequirementsThe requirements for running this repository are all in the requirements.yaml file. You can install them by running the following command:```pythonconda env create -f requirement.yaml```
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2024-12-12
- DOI
- https://doi.org/10.5281/zenodo.11634868
- Primary Topic
- Software System Performance and Reliability
- Type
- article
- Field-Weighted Citation Impact
- 0.00