+1 on option 1.  This is standard operating practice (for all code changes, no 
exceptions) at Facebook, Google, and many other companies that care about code 
quality.  

(The latest HBase wiki makes an exception for patches that only involve one 
changed+unreviewed file, but I think that creates a bad incentive for people to 
squash stuff into one file, e.g. via inner class, instead of properly 
refactoring in cases where it is called for.)

To better facilitate this policy, we should make sure that the workflow is as 
smooth as possible.

(1) Make usage of postreview much more pominent in the HowToContribute docs, 
and do everything possible to raise awareness about its existence.  I think we 
should also configure our repositories and check in a wrapper script  in order 
to make post-review usage a no-brainer:  ideally, we would be able to just give 
it a HIVE-xyz JIRA number, and the script would wget the necessary information 
and include that in the postreview submission.  There should be very few cases 
where anyone needs to go through the Review Board UI.  See this section and 
following for more:  
http://www.reviewboard.org/docs/manual/dev/users/tools/post-review/#repository-configuration

(2) See if we can configure JIRA to require a review board link as part of 
submitting a patch.  This makes the system self-enforcing.  Ideally, JIRA would 
automatically pull the patch from review board so that the contributor does not 
have to do a separate patch-generation + upload.

(3) Eliminate all generated code from the codebase; this causes a lot of extra 
friction.  Now that we have moved to an official thrift release, this should be 
easier.

If we do all of these, I think the net result will actually be a better 
experience for contributors relative to what we have today.

JVS

On Jan 19, 2011, at 9:05 PM, Carl Steinbach wrote:

> The system that we have in place right now places all of the burden on the
> reviewer. If you want to look at a patch you have to download it, apply it
> to a clean workspace, view it using the diff viewer of your choice, and then
> copy your comments back to JIRA along with line numbers and code fragments
> in order to provide context for the author. If there's more than one
> reviewer, then everyone repeats these steps individually. From this
> perspective I think using ReviewBoard is a clear win. It eliminates the
> setup steps that are currently incumbent on the reviewer and consequently
> encourages more people to participate in the review process, which I think
> will result in higher quality code in the end.
> 
> I think that the additional burden that ReviewBoard places on the
> contributor is very small (especially when compared to the effort invested
> in producing the patch in the first place) and can be mitigated by using
> tools like post-review (
> http://www.reviewboard.org/docs/manual/dev/users/tools/post-review/).
> 
> I'm +1 for option (1), meaning that I think people should be required to
> post a review request (or update an existing request) for every patch that
> they submit for review on JIRA.  I also think excluding small patches from
> this requirement is a bad idea because rational people can disagree about
> what qualifies as a small patch and what does not, and I'd like people to
> make ReviewBoard a habit instead of something that they use occasionally. I
> think that Yongqiang's point about scaring away new contributors with lots
> of requirements is valid, and I'm more that willing to post a review request
> for a first (or second) time contributor, but in general it's important for
> the contributor to create the request since only the creator can update it.
> 
> Thanks.
> 
> Carl
> 
> 
> 
> 
> 
> On Wed, Jan 19, 2011 at 6:48 PM, yongqiang he <heyongqiang...@gmail.com>wrote:
> 
>> +1 for option 2.
>> 
>> In general, we as a community should be nice to all contributors, and
>> should avoid doing things that make contributors not comfortable, even
>> that requires some work from committers. Sometimes it is especially
>> true for new contributors, like we need to be more patience for new
>> people. It seems a free style and contribution focused environment
>> would be better to encourage people to do more contributions of
>> different kinds.
>> 
>> thanks
>> -yongqiang
>> On Wed, Jan 19, 2011 at 6:37 PM, Namit Jain <nj...@fb.com> wrote:
>>> 
>>> 
>>> 
>>> It would be good to have a policy for submitting a new patch for review.
>>> If the patch is small, usually it is pretty easy to review.But, if it
>> large,
>>> a GUI like reviewboard (https://reviews.apache.org) makes it easy.
>>> 
>>> So, going forward, I would like to propose either of the following.
>>> 
>>> 1. All patches must go through reviewboard
>>> 2. If a contributor/reviewer creates a reviewboard request,
>>>    all subsequent review requests should go through the reviewboard.
>>> 
>>> 
>>> I would personally vote for 2., since for small patches, we don’t really
>> need a
>>> reviewboard.
>>> 
>>> But, please vote, and based on that, we can come up with a policy.
>>> Let us know, if you think of some other option.
>>> 
>>> Thanks,
>>> -namit
>>> 
>>> 
>> 

Reply via email to