Skip to main content

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.

Metadata

Release files for git2effort 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for git2effort 0.1.4
File Size Uploaded Provenance Actions
git2effort-0.1.4.tar.gz 22.9 kB Without provenance Details for git2effort-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for git2effort 0.1.4
File Interpreter ABI Platform Actions
git2effort-0.1.4-py3-none-any.whl Python 3 none any Details for git2effort-0.1.4-py3-none-any.whl

Total release size: 45.5 kB

Release files / git2effort-0.1.4.tar.gz

Download URL git2effort-0.1.4.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dfe2edb76a93339a361c33259bc1561fca3f44792764d36f645a9fad6d52291d
BLAKE2b-256 checksum
How to use checksums
f48a789bee81f873036cdbb950c61bef493b97d00bfd2ab264ab58dac3a91cb6
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / git2effort-0.1.4-py3-none-any.whl

Download URL git2effort-0.1.4-py3-none-any.whl
Size 22.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9579675ad494919e03b1d1a652a98f080489227fba37e2dffc23ff8430fbf634
BLAKE2b-256 checksum
How to use checksums
0618a6dbda9168367c01feb2335e733d0c618690d971052b03a530e100b6cac8
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for git2effort 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page