Skip to main content

A python package to compute a repository best engineering practices indicators

Project description

Actions

Build Upload Python Package

Code quality

lgtm LGTM Alerts Issues

PyPI

pypi-version pypi-status pypi-download

Others

python-version release-date license

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 repositoryscorer.scorer import score_repository

report = score_repository(path_to_repo='path/to/cloned/repo',
                          access_token='<GITHUB_ACCESS_TOKEN>',
                          full_name_or_id='repo_owner/repo_name',  # e.g., radon-h2020/radon-repository-scorer
                          host='github')  # or gitlab

Expected

{
  'continuous_integration': <bool>,
  'percent_comment': <float in [0,1]>,
  'commit_frequency': <float>,
  'core_contributors': <int>,
  'iac_ratio': <float in [0,1]>,
  'issue_frequency': <float>,
  'license': <bool>,
  'repository_size': <int>
}

See CHANGELOG for logs detail about releases.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repository-scorer-0.0.7.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

repository_scorer-0.0.7-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file repository-scorer-0.0.7.tar.gz.

File metadata

  • Download URL: repository-scorer-0.0.7.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for repository-scorer-0.0.7.tar.gz
Algorithm Hash digest
SHA256 9ab0074e1fb09b042ef5c674293dc6d03e58e3607d18d6d35c1d2ed1df2b09cc
MD5 38082ad5e662a79cf4a6a76deff7dbfa
BLAKE2b-256 09a9e7bb9e24992fc4251d016f462a09b35d3c6307e6cac405e0bf07c6d8083a

See more details on using hashes here.

File details

Details for the file repository_scorer-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: repository_scorer-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for repository_scorer-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1863bf374a01cd2bb4dd807a7f138f7740485090cec7c5ee0a4daf65e9e21860
MD5 ac5f67a54d94b2143669ce31f1348c81
BLAKE2b-256 1765e9e8dd5a5788ba7a0d91a6d51e0a964c69cfb471b2645caddad6a0a5eb81

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page