遇见数据集

Assessing Software Evolution with the Stickiness Score: Evaluating Code Persistence Across Files, Folders, and Developers - Replication Package

收藏
Zenodo2025-12-07 更新2026-05-26 收录
官方服务:

资源简介:

Instructions Prerequisites Before running the backend, install these dependencies using the following command: pip install -r ./Devotion/requirements.txt Running the Backend To run the backend of Devotion, navigate to the Devotion folder and use the following command: cd ./Devotion python ./runner.py <GitHub_Repo_URL> <Log_File_Name> After the run is complete, you will have two files in the Devotion/frontend/client/src folder: authors.json containing developer Stickiness Scores, and folder_structure.json containing the Stickiness Scores of each file and folder of the project of interest. Both of these information are also written in a text format to the <Log_File_Name>. When Devotion finishes executing, you can display the Stickiness results in the web application. Running the Web Application Before starting the web application, ensure all dependencies are installed by running: npm install To start the web application of Devotion, navigate to the client folder and run: cd ./Devotion/frontend/client npm run start Once the web application starts successfully, open your browser and go to: http://localhost:3000 You’ll see the Devotion Dashboard, which visualizes the Stickiness results you generated locally. Navigating the Dashboard Developers Tab: Displays a ranked list of contributors along with their Stickiness Scores, LOC added/modified/copied/moved/revived lines, and commit counts (see devo_devs_submission.png). Files & Folders Tab: Shows Stickiness Scores for each file and folder, alongside LOC added/modified statistics. You can click on folders to expand them and explore nested structures (see devotion_file_webview_unpacked.png). Color Codes: Purple: Stickiness Score Green: Added line count Red: Modified line count Use this visualization to quickly identify stable vs unstable regions in your project, or to compare developers’ long-term contributions. Each project view also includes pie charts summarizing the overall distribution of sticky vs modified lines. Tip If you re-run the backend, refresh the page to load the updated authors.json and folder_structure.json data automatically. Running the Hypothesis Testing Code Write your GitHub token: Save your GitHub token in the Hypothesis_Testing/tokens/github-token.txt file to allow the scripts to access the GitHub API. Place the required files: Copy authors.json and folder_structure.json from the Devotion/frontend/client/src folder into the Hypothesis_Testing/preprocess-input folder, inside a new folder named after your project. Execute the hypothesis testing for each research question: First, run the Python script located in the preprocess folder. Then, run the Python script in the hypothesis folder. Output: Results, including data points, plots, and the outcomes of normality and correlation tests, will be saved in the hypothesis-output folder. Survey This directory contains three files related to the practitioner survey: "Anonymized-Stickiness Score Survey (Responses).xlsx": The anonymized dataset containing all responses. "Survey_Questions.pdf": The full list of survey questions as presented to participants. "Survey_Analytics.pdf": Visualization graphs automatically generated by Google Forms based on the collected responses. Appendix This directory includes the density plots generated for each research question and for each project shown in the Appendix.

提供机构:
Zenodo
创建时间:
2025-12-07
二维码
社区交流群
二维码
科研交流群
商业服务