My favorites | Sign in
Logo
          
Search
for
Updated Mar 22, 2010 by chipx86
Labels: Featured, Phase-Design
  Summer_of_Code_Ideas  
Ideas for Google Summer of Code students

Introduction

This page lists some of the ideas we've come up with that students could tackle for a Google Summer of Code project. Proposals can be made based on items in this list, or you can propose something entirely new.

You can also look at our bugs marked ExtensionIdea for more ideas.

IDE Integration

Add support to Visual Studio or another popular IDE to work with Review Board. Note that Eclipse support is already being worked on separately.

At a minimum this should support:

  • Posting/updating review requests
  • Viewing the user's existing review requests and changing their statuses
  • Applying a change from a review request to the active codebase.

This could be extended for more advanced functionality, including:

  • Inline commenting on diffs within the IDE (possibly through a browser plugin, or through the IDE's code editors themselves).
  • Looking at pending changes to an active file.

Most of this functionality will be in the IDE plugin itself, but some will be to Review Board (such as adding new API for accessing this information).

Better Distributed Versioning Control System Support

Make Review Board work better for various DVCS scenarios. There should be research into existing solutions, discussion with current users, and much thought into how to make this work well with Review Board.

Some ideas include:

  • Maintaining several sets of revisioned diffs for a review request, each with a name, so that an entire tree of patches can be reviewed on a single review request.
  • Allow review requests to be "chained" together, so that one review request can be marked to precede or follow another, in order to show the order of changes.
  • Expanding RBTools to better handle DVCS scenarios with whatever changes are made in Review Board.

These are preliminary ideas. The end result may be very different, and will be based on various users' needs.

Diff Analysis and Filtering

Add the ability to analyze an upload diff in the background. This should do the following:

  • Record the number of adds/deletes/replaces, for use in the diff viewer's changed files list.
  • Find common changes (such as a variable rename) and mark them. We could then use this information to filter out such changes, turning large reviews into smaller ones.

Tighter Project Tools Support

In order to better integrate Review Board with other tools, we should add tighter repository integration. It should be trivial to get to the listing for a file in a repository browser (say, on Trac) through the diff viewer, or post review requests based on committed code in a repository.

We should also improve the admin UI to make it easier to associate a repository URL or a bug tracker URL without the user having to type the full path. For example, they could type the path to the trac repository and select "Trac," and the admin UI should do the rest.

Theme Support

Giving users the ability to customize the look and feel of Review Board means that companies can better integrate the tool into their existing infrastructure, and open source projects can provide one navigation bar across their site, Trac (or whatever), and Review Board.

Part of this is to clean up the templates such that they can be extended by theme templates without breaking existing functionality. The actual theme support itself must also be developed and put into our Djblets library.

Improved Admin UI

The administration UI should be rethought and should offer more hand-holding to get started with Review Board. It should easily walk new administrators through setting up repositories, linking them to bug trackers, customizing the settings, etc.

Something like a task-based UI might work for this by offering a side panel of things the administrator might want to do. Another thing to look at would be WordPress's new administration UI.

It should also be easy to see an overview of what's happening on the system, such as the number of logged in users, load on the server, memory usage, etc.

Windows Installer

Add a new, all-encompassing Windows Installer. The installer would install Review Board and its dependencies, optionally installing Python, Django, Apache, MySQL, or whatever based on the user's preference and existing installed services.

In most cases, installing dependencies will simply require automating the download of an existing MSI file on the web. Some dependencies, however, may need to be packaged by us.

The installer must be an MSI installer, based on NSIS. There's some base work done on this to get you started.

Linux/Cross-Platform Installer Framework

Provide an extensible Linux installer that can handle getting Review Board up and running on most popular distros (Red Hat Enterprise Linux, Fedora, Debian, SuSE, Ubuntu). This should be able to determine what packages are installed, install new packages (perhaps from third party package feeds where appropriate).

The goal is to be able to run one script and get Review Board installed. However, this should go beyond just getting Review Board up and running. It should also handle the following:

  • Provide a cross-platform UI library for interactions (GTK+, terminal, possibly Windows)
  • Provide a Python module for querying what's installed, performing installs and upgrades, etc. This should interface with easy_install and the system's package manager where possible.
  • Support managing third party packages for Review Board. This will be important for extensions when we land that in SVN.

Comment by omar.verduga, Mar 19, 2009

Hi, I´m Omar Verduga, I´m interested in make a Netbeans Plugin for reviewboard with the functionality described above and the modifications to the API.

Comment by chipx86, Mar 21, 2009

Hi Omar, would you mind e-mailing me (chipx86@gmail.com) about your proposal and your experience?

Comment by shifaatkhan, Mar 23, 2009

I can read the tasks easily. but i am confused about the skills need for this project. my email is shifaatkhan@gmail.com. Please help me out here, because I have no clue about how to proceed.

Comment by chipx86, Mar 23, 2009

Generally, it helps to be familiar with Python and, to a lesser extent, Django.

Comment by vicky24186, Apr 03, 2009

Hi Omar, I'm interested in the first project IDE integration. I already have an hands on experience in working with IDE.

Comment by seagle0128, Jan 20, 2010

Visual Studio plugin? Great! I need it.

Comment by cmniyas, Feb 14, 2010

It would be great If someone can do the plugin for redmine.

Comment by ideamonk, Mar 12, 2010

Awesome to find one org whose codebase is on github :D

Comment by navin.agarwal11, Mar 13, 2010

Hello I am Navin Agarwal, I´m working in Netbeans IDE, I am very interested in make a Netbeans Plugin for reviewboard with the functionality described above and the modifications to the API. It will be really great to work for NetBeans?.

Comment by chipx86, Mar 13, 2010

Hi everyone,

Students who want to apply for a project should e-mail reviewboard-gsoc@googlegroups.com with their initial ideas and prepare a proposal for the student submission period.

Comment by r.ankurgupta, Mar 20, 2010

Hii, I am Ankur Gupta. I want to work on developing Linux/Cross-Platform Installer. Please tell me that what skills are required for it.

Comment by hittudiv, Apr 02, 2010

Hi, I am hitesh from Bits-goa India. I am intrested in making a Windows Installer . I have already made A custom WAMP installer for some of my web applications. please look at http://oem.hittudiv.in for my application.

Comment by ollir.h, Apr 06, 2010

Hi, I'm ollir zhang from China, I would like to develop the following enhancements:

1. Add report feature to trace someone's/team's activities.

2. Create Linux Installer Framework to make RB installation much easier (RB installation on our debian linux almost cost me one working day, I hate dependencies).

3. Add doc/pdf attachments submit and review support.

4. (Candidate) I would like to do some improvements on Diff Analysis and Filtering listed in Ideas page, after more discussion of requirements.

I have been coding on RB enhancements for several weeks.

Comment by evgeny.zislis, Apr 27, 2010

Some more ideas: - A feature for "merging" two review requests into one, good for post-commit reviews especially. - IM notifications, in addition/parallel to e-mail - A more fine grained system of notifications, where each user can select which notifications he can receive.

Comment by leitianbao, Jun 26, 2010

I want that files of Board?-Diff? are not sorted. If so,the order of files(are showed at Board?-Diff?) is the same with the order of file list(new/modify file list of Design?).

Comment by brijendra.s.singh, Jul 27 (2 days ago)

It helps me to familiar with Python and, to a some extent, Django.

Not sure how long this will go because of too many dependencies, if one of them is broken..not sure how this tool will survive

good luck


Sign in to add a comment
Powered by Google Project Hosting