Calendar:Review Process: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (fixed wiki markup on link)
(Revise this page, to reflect our new one-review approach.)
 
Line 5: Line 5:
In order to try to avoid this bottle-neck, as well as to encourage interested contributors to rise within the Mozilla system, the review/ownership process is going to be changed, as follows:
In order to try to avoid this bottle-neck, as well as to encourage interested contributors to rise within the Mozilla system, the review/ownership process is going to be changed, as follows:
*The calendar/ code will be broken up into several smaller modules
*The calendar/ code will be broken up into several smaller modules
*Two reviews will be needed for every patch
*At least one review will be needed for every patch
**The first review may be done by anyone appropriate.  Ideally, it will be someone with with experience and ongoing interest in the relevant code.
**If a review comes from [[Calendar:Module_Ownership|the owner or a peer of the affected module(s)]] this review is sufficient.
**The second review must be done by [[Calendar:Module_Ownership|the owner or a peer of the affected module(s).]]
**If the first review comes from a person, who is not the owner or a peer of the affected module(s), an additional review by [[Calendar:Module_Ownership|the owner or a peer of the affected module(s)]] is needed.
=== The first review ===
=== The review ===
The first review is intended to be the chance for rising Mozilla developers to demonstrate skills necessary to become peers.
When the reviewer signs off on a patch, it should be because he/she believes that the patched code meets the Mozilla standards. At a minimum the review should ensure that the code:
 
When the first reviewer signs off on a patch, it should be because she believes that the patched code meets the Mozilla standards. This is very much a learn-by-doing process.  While no exhaustive list of what a first-reviewer should look for can be given, at a minimum the review should ensure that the code:


*fixes the identified problem
*fixes the identified problem
Line 18: Line 16:
*does not contain unjustified 'hacks' or 'work-arounds'
*does not contain unjustified 'hacks' or 'work-arounds'
*conforms to the style of the surrounding code
*conforms to the style of the surrounding code
For more information on what to look for in a first-review, see [http://www.mozilla.org/projects/seamonkey/rules/code_review.html these guidelines.]
*is consistent with the rest of the module's code
 
*is consistent with the direction/vision of the project
It is hoped that delegating these responsibilities will also allow contributors with limited time to develop small areas of expertise.
For more information on what to look for in a review, see [http://www.mozilla.org/projects/seamonkey/rules/code_review.html these guidelines.]
 
By delegating this responsibility to more members of the community, it is hoped that the review bottle-neck can be minimized.
=== The second review ===
The second review is intended to bring the expertise and knowledge of a module owner into code-analysis.
 
This review must be done by [[Calendar:Module_Ownership|the owner or a peer of the module(s) patched.]]  While the second-reviewer will also examine elements of the first-review, a strong first-review will ensure that this takes little time and few, if any, iterations.  Instead, he can focus on ensuring consistency within the module's code and intended vision/direction.  Note that a throrough job on [[Calendar:Development_Strategies|Step 2 of the Basic Bug/Feature Workflow]] will help ensure this part of the second review goes smoothly.
 
In addition, the second reviewer should provide feedback to the first-reviewer on ways he can improve future reviews.  Through this feedback process, it is hoped that new peers can be more quickly identified and brought more fully into the development process.
 


== Process feedback ==
== Process feedback ==
This process is not intended to be set-in-stone.  Should you notice problems or ways to improve this process, please bring them to the attention of the calendar developers.
This process is not intended to be set-in-stone.  Should you notice problems or ways to improve this process, please bring them to the attention of the calendar developers.

Latest revision as of 07:50, 6 May 2007

This document is intended to describe a refinement of the current code ownership and review process in calendar/. For a similar proposal for toolkit/, see this newsgroup thread.

Problem statement

Within Mozilla, code-ownership and the review process are closely tied. In order to maintain consistency, clarity, and quality in the code in CVS, the code owner and a small group of peers act as a filter for incoming code through the review process. The number of people involved in this filtering has, of necessity, remained small due to the need for each of them to be trusted by all to make similar/compatible decisions. This, however, has resulted in a rather long wait for reviews, which leads to frustration and slow patch development.

Review Process

In order to try to avoid this bottle-neck, as well as to encourage interested contributors to rise within the Mozilla system, the review/ownership process is going to be changed, as follows:

The review

When the reviewer signs off on a patch, it should be because he/she believes that the patched code meets the Mozilla standards. At a minimum the review should ensure that the code:

  • fixes the identified problem
  • gives no unintended errors or warnings
  • is properly documented/commented
  • does not contain unjustified 'hacks' or 'work-arounds'
  • conforms to the style of the surrounding code
  • is consistent with the rest of the module's code
  • is consistent with the direction/vision of the project

For more information on what to look for in a review, see these guidelines.

Process feedback

This process is not intended to be set-in-stone. Should you notice problems or ways to improve this process, please bring them to the attention of the calendar developers.