Overview

Griotte is an experiment in Modern Code Review with two goals:

  1. Improving the code review process in the Pharo programming language and environment.
  2. Improving code review in general.

In general, we aim to improve code review by exploiting information provided by 2.2 fine-grained IDE events. Most notably this comes in the form of groups of changes. Read the extended abstract and presentation slides given on the homepage for more information on this topic. The documentation pages will discuss them briefly too.

Within Pharo specifically, one of the goals was to leverage existing services for doing code review, and creating a frontend within Pharo to use them. This means that one uses for example GitHub as their backend, and doing the code review process within Pharo. The Pharo frontend then enables the use of groups and other special features by storing metadata in the backend service. One can imagine using git-notes to do this in the case of Git repositories.

There is currently one backend implementation which is for GitHub. It uses the GitHub API Bindings internally. It also serves as a reference implementation for possible future backends.

Currently, both the UI and the model don't actually allow for full code review yet. The aforementioned concept of groups is yet to be implemented, and it is the main component which will enable the process of code review.

1.1. Further Documentation

The documentation is split into three parts:

  1. 2 The Model: Explains briefly the model of Griotte, and Epicea's fine-grained IDE events.
  2. 3 Backends: How Griotte integrates with backends and versioning tools.
  3. 4 The UI: Some words about the UI, and approaches for extending it.

1.2. Installation

To install and try Griotte, run the following Metacello script (taken from the homepage) in a Pharo 5 image:

Metacello new
	baseline: 'Griotte';
	repository: 'github://Balletie/Griotte:master';
	load.

This will also load a tool to do basic versioning in GitHub repositories. Griotte integrates with this tool to create new reviews.