×

Status message

This proposal has been approved and the Eclipse EGerrit project has been created.

EGerrit

Basics
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.
Parent Project: 
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.

Project Scheduling: 

Second Quarter 2015

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

 

 

People
Project Leads: 
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)

Source Code
Initial Contribution: 

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

Source Repository Type: 
Sam Davis's picture

This proposal makes a number of inaccurate statements about Mylyn. Please see my response to the forum post: https://www.eclipse.org/forums/index.php?t=msg&th=897686&goto=1553499&#msg_1553499

Eric Rizzo's picture

I agree; I use several Mylyn connectors all the time without ever using the TFI. The effort of bootstrapping an entirely new project seems like it would be better spent improving the Mylyn connector and helping Mylyn's review concepts improve, using gerrit as a driver for framework evolution.

This proposal has a certain amount of "revinventing the wheel" smell to it.

That is not to say that I don't think top-notch gerrit support inside Eclipse is a poor idea; on the contrary it's something I would look forward to. I just think the approach should be one of engagement with the Mylyn team rather than a completely separate effort.