It was always the case that -1 needs to be accompanied by justification [1]. I 
don’t recollect any PR where it was stopped by a veto due to missing code 
refactoring.

VETOS <https://www.apache.org/foundation/voting.html#Veto>
A code-modification proposal may be stopped dead in its tracks by a -1 vote by 
a qualified voter. This constitutes a veto, and it cannot be overruled nor 
overridden by anyone. Vetos stand until and unless withdrawn by their casters.

To prevent vetos from being used capriciously, they must be accompanied by a 
technical justification showing why the change is bad (opens a security 
exposure, negatively affects performance, etc. ). A veto without a 
justification is invalid and has no weight.


[1] https://www.apache.org/foundation/voting.html 
<https://www.apache.org/foundation/voting.html>




> On Jan 28, 2019, at 12:58, amol kekre <amolhke...@gmail.com> wrote:
> 
> Vlad,
> This thread is in regards to code review itself, and we are discussing what
> conditions can a reviewer do a -1. In case a reviewer is ignoring the new
> policies and continues to give -1 using previous thought process, we will
> need to have a mechanism where the -1 is overridden. -1 needs an
> explanation that fits with what we come up with on this thread.
> 
> Amol
> 
> 
> On Mon, Jan 28, 2019 at 12:45 PM Vlad Rozov <vro...@apache.org> wrote:
> 
>> IMO, the performance criteria is quite vague and it needs to be taken on a
>> case by case basis. Fixing not critical bug or adding minor functionality
>> is different from fixing security issue or data loss/corruption and while
>> the first one never justifies performance degradation, the second one may
>> justify a significant performance degradation.
>> 
>> My question is specific to refactoring and/or code quality. Whether this
>> policy is accepted or not, -1 in code review is still a veto.
>> 
>> Thank you,
>> 
>> Vlad
>> 
>> 
>>> On Jan 28, 2019, at 11:58, Pramod Immaneni <pramod.imman...@gmail.com>
>> wrote:
>>> 
>>> Amol regarding performance my thoughts were along similar lines but was
>>> concerned about performance degradation to the real-time path, that new
>>> changes can bring in. I would use stronger language than "do not degrade
>>> current performance significantly" at least for the real-time path, we
>>> could say something like "real-time path should have as minimum
>> performance
>>> degradation as possible". Regarding logic flaws, typically it is cut and
>>> dry and not very subjective. There are exceptions of course. Also, what I
>>> have seen with functionality testing, at least in this context where
>> there
>>> is no dedicated QA testing the code, is that not all code paths and
>>> combinations are exercised. Fixing, logic issues in the lower level
>>> functions etc, of the code, leads to overall better quality. We could
>> have
>>> the language in the guideline such that it defaults to resolving all
>>> logical flaws but also leaves the door open for exceptions. If there are
>>> any scenarios you have in mind, we can discuss those and call it out as
>>> part of those exceptions.
>>> 
>>> Regarding Vlad's question, I would encourage folks who brought up this
>>> point in the earlier discussion, point to examples where they personally
>>> faced this problem. In my case I have seen long delays in merging PRs,
>>> sometimes months, not because the reviewer(s) didn't have time but
>> because
>>> it was stuck in back and forth discussions and disagreement on one or
>>> two points between contributor and reviewer(s). In the bigger scheme of
>>> things, in my opinion, those points were trivial and caused more angst
>>> than what would have taken to correct them in the future, had we gone one
>>> way vs the other. I have seen this both as a contributor and as
>> co-reviewer
>>> from my peer reviewers in the PR. I can dig into the archives and find
>>> those if needed.
>>> 
>>> Thanks
>>> 
>>> On Mon, Jan 28, 2019 at 8:43 AM Vlad Rozov <vro...@apache.org> wrote:
>>> 
>>>> Is there an example from prior PRs where it was not accepted/merged due
>> to
>>>> a disagreement between a contributor and a committer on the amount of
>>>> refactoring or code quality?
>>>> 
>>>> Thank you,
>>>> 
>>>> Vlad
>>>> 
>>>>> On Jan 27, 2019, at 06:56, Chinmay Kolhatkar <
>>>> chinmaykolhatka...@gmail.com> wrote:
>>>>> 
>>>>> +1.
>>>>> 
>>>>> On Sat, 26 Jan 2019, 11:56 pm amol kekre <amolhke...@gmail.com wrote:
>>>>> 
>>>>>> +1 for this proposal. The only caveat I have is
>>>>>> -> "acceptable performance and resolving logical flaws identified
>> during
>>>>>> the review process"
>>>>>> 
>>>>>> is subjective. Functionally working should cover any logical issues.
>>>>>> Performance should be applicable only to bug fixes and small
>>>> enhancements
>>>>>> to current features. I will word is as "do not degrade current
>>>> performance
>>>>>> significantly".
>>>>>> 
>>>>>> Amol
>>>>>> 
>>>>>> 
>>>>>> On Fri, Jan 25, 2019 at 9:41 PM Sanjay Pujare <
>> sanjay.puj...@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> +1
>>>>>>> 
>>>>>>> 
>>>>>>> On Fri, Jan 25, 2019 at 5:20 PM Pramod Immaneni <
>>>>>> pramod.imman...@gmail.com
>>>>>>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Our contributor and committer guidelines haven't changed in a while.
>>>> In
>>>>>>>> light of the discussion that happened a few weeks ago, where
>>>>>>>> high commit threshold was cited as one of the factors discouraging
>>>>>>>> submissions, I suggest we discuss some ideas and see if the
>> guidelines
>>>>>>>> should be updated.
>>>>>>>> 
>>>>>>>> I have one. We pick some reasonable time period like a month after a
>>>> PR
>>>>>>> is
>>>>>>>> submitted. If the PR review process is still going on *and* there
>> is a
>>>>>>>> disagreement between the contributor and reviewer, we will look to
>> see
>>>>>> if
>>>>>>>> the submission satisfies some acceptable criteria and if it does we
>>>>>>> accept
>>>>>>>> it. We can discuss what those criteria should be in this thread.
>>>>>>>> 
>>>>>>>> The basics should be met, such as code format, license, copyright,
>>>> unit
>>>>>>>> tests passing, functionality working, acceptable performance and
>>>>>>> resolving
>>>>>>>> logical flaws identified during the review process. Beyond that, if
>>>>>> there
>>>>>>>> is a disagreement with code quality or refactor depth between
>>>> committer
>>>>>>> and
>>>>>>>> contributor or the contributor agrees but does not want to spend
>> more
>>>>>>> time
>>>>>>>> on it at that moment, we accept the submission and create a separate
>>>>>> JIRA
>>>>>>>> to track any future work. We can revisit the policy in future once
>>>> code
>>>>>>>> submissions have picked up and do what's appropriate at that time.
>>>>>>>> 
>>>>>>>> Thanks
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>> 
>>> --
>>> Thanks,
>>> Pramod
>>> http://ts.la/pramod3443
>> 
>> 

Reply via email to