Skip to main content

Calculate development effort from a Git repository

Project description

git2effort PyPI version

Calculate development effort estimation from a Git repository.

Usage

usage: git2effort [-g] [<args>] <git_repository> | --help | --version

optional arguments:
  -t THRESHOLD, --threshold THRESHOLD
                        Threshold value (in commits) to determine if a
                        developers is full-time devoted to the project.
                        Default=75.
  -p PERIOD, --period PERIOD
                        Length of the time period (in months). Default=6.

optional arguments:
  -g, --debug           set debug mode on
  -h, --help            show this help message and exit
  -v, --version         show version

Requirements

  • Python >= 3.4
  • perceval >= 0.12
  • python3-dateutil >= 2.6
  • python3-requests >= 2.7
  • python3-bs4 (beautifulsoup4) >= 4.3
  • python3-feedparser >= 5.1.3
  • python3-dulwich >= 0.18.5
  • tabulate >= 0.8.7
  • grimoirelab-toolkit >= 0.1.4

Note that you should have also the following packages installed in your system:

  • git
  • build-essential

Installation

There are several ways for installing git2effort on your system: from packages or from the source code.

Pip

Perceval can be installed using pip, a tool for installing Python packages. To do it, run the next command:

$ pip3 install git2effort

Source code

To install from the source code you will need to clone the repository first:

$ git clone https://github.com/gregoriorobles/git2effort.git

Then you can execute the following commands:

$ pip3 install -r requirements.txt
$ pip3 install .

Understanding git2effort

The threshold t determines what developers are considered full-time in a period of time p. So, if in p months a developer does t commits, the developer is full-time. If not, his/her contributions will be a fraction of that.

The value of the threshold t depends on the project, in particular, on its process (e.g., if there is a review process in place, if there is commit squashing when merging). Below you can find a list of projects that can serve as an example. The t values given below are supported by feedback provided by the developers of these projects.

Example threshold t values (for a default period of 6 months):
    12: Strong review process with commit squashing, like in OpenStack and Moodle
    18: Review process with commit squashing, like in Linux and Webkit
    30: Soft review process, like in Mediawiki
    50: Strong pull-request-driven process, like in Ceph
    75: Soft pull-request-driven process, like in git2effort
   100: Non-engineered process

Example: Running git2effort on Perceval

To estimate the effort for a Git repository, execute the next command. Take into account that Git has to be installed on your system.

In the case of Perceval, we assume that it is a project that follows a strong pull-request-driven process, like the one in Ceph, so we choose a threshold value of 50:

$ git2effort --threshold=50 https://github.com/chaoss/grimoirelab-perceval.git

Example: Running git2effort on git2effort

To estimate the effort for a Git repository, execute the next command. Take into account that Git has to be installed on your system.

In the case of git2effort, we assume that it is a project that follows a soft pull-request-driven process, so we choose a threshold value of 75 (as this is the default one in git2effort we do not need to specify it):

$ git2effort https://github.com/gregoriorobles/git2effort

Research in Progress

This is research in progress. If you have any comments or suggestions, please contact me (grex at gsyc.urjc.es). I will be more than happy to hear to your feedback.

References

If you use git2effort in your research papers, please refer to Estimating development effort in free/open source software projects by mining software repositories: a case study of openstack -- Pre-print:

APA style

Robles, G., González-Barahona, J. M., Cervigón, C., Capiluppi, A., & Izquierdo-Cortázar, D. (2014, May). Estimating development effort in free/open source software projects by mining software repositories: a case study of openstack. In Proceedings of the 11th Working Conference on Mining Software Repositories (pp. 222-231).

BibTeX

@inproceedings{robles2014estimating,
  title={Estimating development effort in free/open source software projects by mining software repositories: a case study of openstack},
  author={Robles, Gregorio and Gonz{\'a}lez-Barahona, Jes{\'u}s M and Cervig{\'o}n, Carlos and Capiluppi, Andrea and Izquierdo-Cort{\'a}zar, Daniel},
  booktitle={Proceedings of the 11th Working Conference on Mining Software Repositories},
  pages={222--231},
  year={2014}
}

License

Licensed under GNU General Public License (GPL), version 3 or later.

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

git2effort-0.1.4.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

git2effort-0.1.4-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file git2effort-0.1.4.tar.gz.

File metadata

  • Download URL: git2effort-0.1.4.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9

File hashes

Hashes for git2effort-0.1.4.tar.gz
Algorithm Hash digest
SHA256 dfe2edb76a93339a361c33259bc1561fca3f44792764d36f645a9fad6d52291d
MD5 4d66c3b8e1b06637eecd1dabc3f20743
BLAKE2b-256 f48a789bee81f873036cdbb950c61bef493b97d00bfd2ab264ab58dac3a91cb6

See more details on using hashes here.

File details

Details for the file git2effort-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: git2effort-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9

File hashes

Hashes for git2effort-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9579675ad494919e03b1d1a652a98f080489227fba37e2dffc23ff8430fbf634
MD5 2bfe5990b8fb81385b2a848090bbfa5b
BLAKE2b-256 0618a6dbda9168367c01feb2335e733d0c618690d971052b03a530e100b6cac8

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