Auto-tools/Projects/BugzillaReviewImprovement

From MozillaWiki
Jump to: navigation, search

Goal

Quickly integrate an existing technology into bugzilla to improve and experiment with improving the code-review process in bugzilla.mozilla.org.

Non-Goal

  • Change bugzilla itself - We're looking to do something on top of our installed bugzilla instance, rather than changing bugzilla. The main issue here is that we want to do something that we can turn around quickly. However, that said, we are happy to upstream any useful code to the Bugzilla project to help them with their own integration efforts here.

The Options

There are two good options here: Splinter or Review Board. Bugzilla itself is moving toward Review Board integration (bug 515210).

Additionally, Johnath, Ehsan, and Asuth have done a good bit of work to create a system where we can use a jetpack to add this functionality to mozilla.bugzilla.org today.

Joel (jmaher) has taken the above system and extended it to also work with Splinter so that the two can be compared side by side. What we see is that there are definite advantages and disadvantages to each tool.

Splinter

  • Pros
    • Better integration with our Bugzilla process "out of the box"
    • Simpler UI
    • Better comment publishing (3 lines of context per comment vs. only 1)
  • Cons
    • Does not have as nice of a UI during review as Review Board
    • Has issues with lines scrolling off the screen during a review
    • Cannot handle inter-patch diffs (diffs between versions of patches on bugzilla)

Review Board

  • Pros
    • Very nice UI for doing reviews
    • Much more polished interface
    • This is what Bugzilla seems to move toward, so there will be less UI shock when we move from our jetpack system to the real bugzilla in the future.
  • Cons
    • Bugzilla comment export only contains one line of context per comment on the patch (but we can control that)
    • Publishing the comment to bugzilla is unintuitive
    • Most of review board's power would come from being THE go-to place for reviews, which could impact our normal bugzilla review workflow.

How it works

  1. You install a jetpack (only works with the old jetpack extension atm, so Firefox 3.6.4) that will modify the "review" links in bugzilla to add a "splinter" and a "review-board" link.
  2. We install two daemons on a server (currently local to the Mountain view office network), which run splinter and review-board.
  3. When you click on one of the links, the jetpack communicates with the proper daemon and places you in that system to perform the review.
  4. When you are finished with the review, the daemon publishes it back to bugzilla.

Things we need to figure out (design lunch)

  1. How much are we willing to change our bugzilla review process
  2. Which UI do we want to go with?
  3. What sorts of workflows do we need to support
  4. What's the minimal required functionality to get this off the ground?