Creation Review

Type
Creation
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Project
Proposal

EGerrit

Tuesday, December 16, 2014 - 16:36 by Guy Perron
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

The purpose of this project is to provide a set of Eclipse plug-ins that offer code review capabilities in the Eclipse IDE. Code review is systematic manual examination of source code with the goal of finding and fixing mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills. Reviews are done in various forms such as pair programming, informal walk-throughs, and formal inspections. Therefore, code reviewing systems and tools have to enable viewing and manually inspecting differences between a base version and a branch version of source code to identify changed code and potentially introduced mistakes. Editors must be able to request reviews, while reviewers must be able to comment on changed code and request it to be changed to address identified issues.

We believe that integrating code review capabilities directly into the IDE improves both the efficiency and effectiveness of the reviewer, as well as the editor receiving feedback on her/his changes. This is mainly due to the fact that the original editor and the reviewer can work in the same context as the original work was performed in and can profit from all the available features in the IDE, such as code highlighting, compilation, completion, team integration, navigation and other IDE features.

One of the most adopted code reviewing system, not only within the Eclipse foundation, but also in many other projects is Gerrit. Some of the mentioned functionality for reviewing code is currently available in a browser-based front-end for the Gerrit code review server. While the Gerrit server offers valuable functionality, making available all of the aforementioned features, such as code highlighting, in the Gerrit browser-based front-end would essentially mean reimplementing the IDE in the browser.

Some of the functionality offered by Gerrit has already been integrated into the Eclipse IDE with the  Mylyn Gerrit connector as part of the Mylyn top-level project. Mylyn is a task management and ALM tool integrated with Eclipse. Therefore, code review is only one of many aspects of the whole application life-cycle management and development activities that have to be integrated with Mylyn. However, many projects use Gerrit-based code review without relying on other functionalities offered by Mylyn, such as task focusing. Not only have these features to be maintained by the developers but also users have to install additional features which are not needed for performing reviews and face an unnecessary load to the system.

On the other hand, the EGerrit project aims to achieve feature parity with the Gerrit web-interface and as its available features go beyond ALM and task focusing, this development might be hampered using Mylyn as a host framework.

For these reasons a dedicated project with the clear scope of implementing and integrating Gerrit with the Eclipse IDE may optimize the code review activities in Eclipse and allow feature parity with the Gerrit web interface more easily and focus on a tight and feature-rich integration with several components of the Eclipse IDE. Also support for model review can be facilitated more easily which is a future development target.

An integration with Mylyn is only an add-on feature in this setup but can still be achieved if required. This approach is consistent with other Eclipse projects, e.g. JDT, CDT, etc.

Scope

EGerrit provides a set of Eclipse plug-ins that provide Gerrit code review integration and capabilities in the Eclipse IDE.

Description

The purpose of this project is to provide a set of Eclipse plug-ins that provide code review capabilities in the Eclipse IDE.

  • Feature parity with the Gerrit 2.9 web front-end
  • Future proof integration via RESTful web services interface
  • Java Based
  • Traction around a code review-centric Eclipse plug-in
  • A dashboard connecting any number of Gerrit servers that displays reviews based on configurable search pattern
  • Tabs that organize and manipulate information relevant to selected review and enables feature parity with Gerrit web
  • Compare editors that feature in-line editing to enable comment editing and navigation
  • Full compatibility with Gerrit web
  • A foundation for model review within Eclipse
  • EGerrit improves the programmer's efficiency by keeping her/him in a single IDE without having to switch to a web browser while performing code review.
Why Here?

The Eclipse IDE is the best ecosystem to host a code review tool as it leverages on the presence of a large community of dynamic developers.

Future Work

EGerrit provides the foundation for realizing systematic reviews of models and diagrams as opposed to text-based code only. Therefore, EGerrit provides add-on functionality to integrate with the Eclipse Modeling Framework (EMF), as well as with modeling technologies that build on top of EMF, such as GMF, UML2, and Papyrus.  

Other Gerrit features, e.g. Git repo management as the following example access control, project configuration

 

 

Project Scheduling

Second Quarter 2015

Project Leads
Committers
Jacques Bouthillier (This committer does not have an Eclipse Account)
Interested Parties

Shawn Pearce (Google)

Mikaël Barbero (Obeo)

Laurent Delaigue (Obeo)

Étienne Juliot (Obeo)

Sascha Vogt (SEEBURGER AG)

Matthias Sohn (SAP)

Dominique Toupin (Ericsson)

Maximilian Koegel (EclipseSource)

Philip Langer (EclipseSource)

Mark Khouzam (Ericsson)

Marc-André Laperle (Ericsson)

Initial Contribution

The initial contribution is a functional integration of Gerrit with the Eclipse IDE.

Source Repository Type

Creation Review