Tool to compute the truck factor of a Git repository
Project description
What is this?
This tool, truckfactor
computes the
truck (bus/lorry/lottery) factor for a
given Git repository.
The truck factor is
the number of people on your team that have to be hit by a truck (or quit) before the project is in serious trouble
L. Williams and R. Kessler, Pair Programming Illuminated. Addison Wesley, 2003.
Installation
pip install truckfactor
Requirements
The tool requires that git
is installed and accessible on PATH
.
How to use it?
You have to either point the tool to a directory containing a Git repository or to a URL with a remote repository. In case a URL is given, the tool will clone the repository into a temporary directory.
From the terminal, the tool can be run as in the following:
Usage:
truckfactor <repository> [<commit_sha>] [--output=<kind>]
truckfactor -h | --help
truckfactor --version
Options:
-h --help Show this screen.
--version Show version.
--output=<kind> Kind of output, either csv or verbose.
For example, in its most basic form it can be called like this:
$ truckfactor <path_or_url_to_repository>
The truck factor of <path_to_repository> (<commit_sha>) is: <number>
If no output
switch is given, the tool produces a single line output above. Otherwise, it will output a line in CSV format or in key: value form.
Calling it from code:
from truckfactor.compute import main
truckfactor, commit_sha, authors = main("<path_to_repo>")
How does the tool compute the truck factor?
In essence the tool does the following:
- Reads a git log from the repository
- Computes for each file who has the knowledge ownership of it.
- A contributor has knowledge ownership of a file when she edited the most lines in it.
- That computation is inspired by A. Thornhill Your Code as a Crime Scene.
- Note, only for text files knowledge ownership is computed. The tool may not return a good answer for repositories containing only binary files.
- Then similar to G. Avelino et al. A novel approach for estimating Truck Factors low-contributing authors are removed from the analysis as long as still more than half of all files have a knowledge owner. The amount of remaining knowledge owners is the truck factor of the given repository.
Why does it exist?
This tool was developed since in Dec. 2020, we could not find an open-source and readily installable tool to compute truck factors of projects on PyPI or Rubygems.
Attributions
The logo is combined from two logos from flaticon:
- Truck: Icons made by Kiranshastry from www.flaticon.com
- Warning sign: Icons made by Gregor Cresnar from www.flaticon.com
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 truckfactor-0.3.2.tar.gz
.
File metadata
- Download URL: truckfactor-0.3.2.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.6 Linux/5.19.0-76051900-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 613f484b81783db6731257778cc71be7fafd119f0f9cf51ba43950249002064f |
|
MD5 | 35b1781b683a5cabbbd6928bd073e618 |
|
BLAKE2b-256 | 75b31c3ff24045ae16aa2c92e021e3ba4e4f126df3c4662f0d15d4cd7ea4fff2 |
File details
Details for the file truckfactor-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: truckfactor-0.3.2-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.6 Linux/5.19.0-76051900-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3e6c32a04d46f58410fea960856c21169d01881a99c01d9e9664d202855c77c |
|
MD5 | 6203db4ab97f91776457ed17a076a065 |
|
BLAKE2b-256 | eb5fd5c24ad25c183f4774766817d38df50eb1546423e918d01f15eb7412aa3b |