Chiefr

Distributed project development model and toolkit

Share and decentralize the development and maintenance of different parts of a project between its members. Chiefr is inspired by the contribution model of the Linux kernel and their get_contributors.pl script.

Chiefr workflow

Advantages

Why?

The current contribution scheme of a typical project is totally centralized by default. If a contribution sent to a project/repo, every related person is notified and interrupted, so it does not scale. Thus, a project with more than one active member generates more and more wasted time as it grows, since all the incoming contributions and issues are propagated to every member.

Chiefr aims to solve this problem both with a better process and supporting tools.

How?

Chiefr requires to split a single project up to multiple logical segments, where every segment has its own maintainers, repository and optionally other services like mailing lists or chat. Depending on the size of a project, its segments can be split into even smaller segments to be more manageable.

Chiefr workflow

If you have any question about applying this model to your project, feel free to get in touch with me.

Usage

Chiefr tool

Chiefr is also a command-line tool which depends on .maintainers.ini and has the following commands:

Maintainers file (a.k.a. .maintainers.ini)

Chiefr requires a .maintainers.ini file in the project root which defines the project’s segment. .maintainers.ini can contain any number of segments

Segment

A segment defines the resources of a logical block of the project.

Segment attributes:

example segment in .maintainers.ini:

[code]
Repository = https://github.com/asciimoo/chiefr
IssueTracker = https://github.com/asciimoo/chiefr/issues
Chiefs = asciimoo
FilePatterns = .+.go
Priority = 1

Installation

Check out releases to get the binary or

$ go get github.com/asciimoo/chiefr
$ "$GOPATH/bin/chiefr" --help

Bugs

Bugs or suggestions? Visit the issue tracker