A python package to compute a repository best engineering practices indicators
Project description
radon-repository-scorer
The radon-repository-scorer is a Python package to compute a repository best engineering practices indicators.
The module provides the following 8 indicators of well-engineered software projects:
- Core contributors: the number of contributors whose total number of commits accounts for 80% or more of the total contributions.
- Continuous integration (CI): the repository has evidence of a CI service, determined by the presence of a configuration file required by that service (e.g., a.travis.ymlfor TravisCI).
- Comments ratio: ratio between comments and lines of code.
- Commit frequency: the average number of commits per month.
- Issue frequency: the average number of issue events transpired per month.
- License availability: the repository has evidence of a license (i.e., a LICENSE file).
- Lines of Code: the number of executable lines of code.
- Ratio of IaC scripts: ratio between Infrastructure-as-Code (IaC) files and total files.
All the previous indicators but the last are described in depth in:
@inproceedings{@article{munaiah2017curating,
title={Curating GitHub for engineered software projects},
author={Munaiah, Nuthan and Kroh, Steven and Cabrey, Craig and Nagappan, Meiyappan},
journal={Empirical Software Engineering},
volume={22},
number={6},
pages={3219--3253},
year={2017},
publisher={Springer}
}
Note: the tool is intended to be used as a Python library. Therefore, the current version does not provide a command line interface.
How to install
From the Python Package Index
pip install repository-scorer
From source code
pip install -r requirements
pip install .
How to use
from reposcorer.scorer import score_repository
report = score_repository(clone_to='path/to/a/dir/',
full_name_or_id='repo_owner/repo_name', # e.g., radon-h2020/radon-repository-scorer
host='github', # or gitlab
calculate_comments_ratio= True,
calculate_commit_frequency=True,
calculate_core_contributors=True,
calculate_has_ci=True,
calculate_has_license=True,
calculate_iac_ratio=True,
calculate_issue_frequency=True,
calculate_repository_size=True)
Output
{
'has_ci': <bool>,
'comments_ratio': <float in [0,1]>,
'commit_frequency': <float>,
'core_contributors': <int>,
'iac_ratio': <float in [0,1]>,
'issue_frequency': <float>,
'has_license': <bool>,
'repository_size': <int>
}
See CHANGELOG for logs detail about releases.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file repository-scorer-0.5.1.tar.gz
.
File metadata
- Download URL: repository-scorer-0.5.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b87f33d5f0caf3814aa460797514f7729d4cbaf9d6b159ba8cf1cb62be8dd16c |
|
MD5 | dbe41a540ab6bce7deebb88012328e41 |
|
BLAKE2b-256 | 1f5f0c33e7b93c1ec538dcd4224fe59eb431045f9da14c4b79c4d6d10d85e852 |
File details
Details for the file repository_scorer-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: repository_scorer-0.5.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b60bb1c3839d338b791fc5bc718ae0f64cf1860b34236e53c731c1a28eaa06b |
|
MD5 | a2bc5ad787319ec9e9621736b7236b4a |
|
BLAKE2b-256 | cfe20ae2022872ef2372ba37caacca7ef186f81a3c9fa77af5cdf3f798fc857d |