GSoC idea: Emacs integration

102 views
Skip to first unread message

Chingiz Dyussenov

unread,
Mar 31, 2011, 5:06:03 PM3/31/11
to reviewbo...@googlegroups.com
Hello,

My name is Chingiz. I'm a student from Kazakhstan. I would like to participate in GSoC this year contributing to the Review Board project.

My main area of interest in IT is web development. I'm experienced with Zend Framework and also familiar with Django.

I used svn in my projects and had later switched to git and familiar with both at a good level.

My proposal is about IDE integration. I would like to get feedback on it from the developers of Review Board.

The proposal follows.


==================================
Review Board and Emacs integration
==================================


Abstract
========

GNU Emacs is an extensible IDE supported over a wide variety of platforms.

It can be extended with Elisp. A wide range of Elisp-based modes currently allow users to perform many development-related tasks not limited to writing code.

In this project I propose to integrate Review Board with Emacs environment by creating a plugin which will allow to post, examine and update review requests. It will also allow to browse review request diffs and locally apply them.


Detailed description
====================

Task description and subdivision
--------------------------------

The plugin will communicate with a Review Board server using the REST API. [2]

The review board server URL will be determined from the VCS settings.

Review request post will be initiated by a key-bound command which will display a form to fill in the request details.

In this view, another key-bound command will create a new request on the server using the specified details. This command will take an optional revision range parameter and will post the request by invoking post-review.

Another command will list the user's review requests grouped by categories (screenshot 1). From this view, a user will be able to open the review request view (screenshot 2).

The review request view will display request metadata and list available diff revisions. From this view a user will be able to change the review request status, examine a particular diff revision and apply a diff revision to the local source tree (screenshot 2).

Diff revisions will be displayed using Ediff [3], a mode in Emacs which allows to browse through the differences between a pair of files (screenshot 3). It will display two files side-by-side visually marking the changes.

After examining the diff revisions a user will be able to apply a specific diff to the VCS by clicking a button in the review request view.


Mockup screenshots
-------------------

(1) Review request list view
(2) Review request details view
(3) Diff revision view


Benefit to reviewboard
======================

This plugin will enhance the workflow of Review Board users who use Emacs by providing the functionality to browse and apply review requests from within the editor.


Milestones and project plan
===========================


April 25 - May 23
-----------------

Study Elisp and the necessary editing mode functions.

Think over the best way to apply the review request changes to the source tree. For example, after patching the code, the plugin could insert the review request URL and description into the commit message and allow the reviewer to edit the message before committing. The commmit invocation could be done via the emacs VC tool which supports all open source VCs used by Review Board.

Design the functionality to switch between multiple files while viewing a diff revision.


May 23 - June 7
---------------

Implement review request posting.


June 7 - June 21
----------------

Implement review request list retrieval and display.  Implement review request details view.

June 21 - July 15 (mid-term evaluation)

Implement side-by-side diff revision view with Ediff.  Implement patching of the local source tree with a specified diff.


July 15 - August 1
------------------

Implement switching between multiple files while viewing diff revisions.  Complete the local source tree patching.  Define key-bindings for all commands.  Write user documentation.


Continuing development or maintenance
=====================================

After GSoC I will maintain the plugin focusing on its stability. I will fix bugs and keep in touch with interested people.


References
==========

[1] A guided tour of Emacs http://www.gnu.org/software/emacs/tour/
[2] Review Board REST API http://www.reviewboard.org/docs/manual/dev/webapi/
[3] Ediff introduction http://www.gnu.org/software/emacs/manual/html_node/ediff/Introduction.html

chingiz

unread,
Apr 8, 2011, 3:26:48 PM4/8/11
to Review Board Summer of Code
Hi,

I have included additional info requested in the application template
as a comment to my proposal. Please, don't miss it.

Regards,
Chingiz
> view<https://picasaweb.google.com/112650577380249942983/Reviewboard#559033...>
> (2) Review request details
> view<https://picasaweb.google.com/112650577380249942983/Reviewboard#559033...>
> (3) Diff revision view
> <https://picasaweb.google.com/112650577380249942983/Reviewboard#559033...>
> [1] A guided tour of Emacshttp://www.gnu.org/software/emacs/tour/
> [2] Review Board REST APIhttp://www.reviewboard.org/docs/manual/dev/webapi/
> [3] Ediff introductionhttp://www.gnu.org/software/emacs/manual/html_node/ediff/Introduction...
Reply all
Reply to author
Forward
0 new messages