GithubHelp home page GithubHelp logo

git2effort's Introduction

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
  • tabulate >= 0.8.7

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. In all cases, the period is 6 months (the default one for git2effort).

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.

git2effort's People

Contributors

gregoriorobles avatar valeriocos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.