ualberta-smr / LibraryMetricScripts

Scripts to collect metrics from software libraries.
MIT License
4 stars 2 forks source link

DOI

Library Metric Scripts

This repository contains the scripts used to extract various metrics to compare software libraries. These metrics are discussed in detail in our PROMISE '18 paper An Empirical Study of Metric-based Comparisons of Software Libraries, which can be found here. If you are looking for the exact scripts we used in the PROMISE '18 paper, along with the relevant README file, please take a look at the promise18 tag, which also contains the data collected from the survey in a git submodule.

We have done a lot of refactoring and changes of the code since then, mainly to incorporate some of the feedback we got from the survey in our library comparison website. This feedback includes graphs for some of the metrics, as well as new metrics. For example, instead of having one folder for each of the 9 metrics, we combine the code for some of the metrics into the same folder and scripts to avoid computation redundany. The documentation below refers to the current version of the code. Note that we have also changed the way we calculate Popularity to no longer rely on Boa.

How to Run

This code requires Python >= 3.6.9 to run. The libraries used are in the requirements.txt file.

The current output files for each metric, based on when they last ran, are included inside each directory. Most of the output files are Python pickle files, while a few are text files. Each script describes its input and output. If you would like to get updated metric data, for the same list of libraries we have (found in SharedFiles/LibraryData.json, please follow the following steps:

How to Add New Libraries

To add a new library, you need to go to SharedData/LibraryData.json and add one json entry (per library added) with the following information:

How to Add New Metrics

Data Schema

[ Currently Outdated.. will update soon. Please check librarycomparison/models.py for the latest schema ]

Contributors