[openstack-dev] Hyper-V meeting Minutes
Ben Nemec
openstack at nemebean.com
Tue Oct 15 22:57:41 UTC 2013
On 2013-10-15 17:02, Robert Collins wrote:
> On 16 October 2013 09:54, Vishvananda Ishaya <vishvananda at gmail.com>
> wrote:
>> Hi Everyone,
>>
>> I've been following this conversation and weighing the different
>> sides. This is a tricky issue but I think it is important to decouple
>> further and extend our circle of trust.
>>
>> When nova started it was very easy to do feature development. As it
>> has matured the pace has slowed. This is expected and necessary, but
>> we periodically must make decoupling decisions or we will become mired
>> in overhead. We did this already with cinder and neutron, and we have
>> discussed doing this with virt drivers in the past.
>>
>> We have a large number of people attempting to contribute to small
>> sections of nova and getting frustrated with the process. The
>> perception of developers is much more important than the actual
>> numbers here. If people are frustrated they are disincentivized to
>> help and it hurts everyone. Suggesting that these contributors need to
>> learn all of nova and help with the review queue is silly and makes us
>> seem elitist. We should make it as easy as possible for new
>> contributors to help.
>
>
> So I agree that perception is a big and significant thing here, but...
>
> I think the fundamental issue is review latency:
> http://russellbryant.net/openstack-stats/nova-openreviews.html
>
> Stats since the last revision without -1 or -2 (ignoring jenkins):
>
> Average wait time: 6 days, 17 hours, 24 minutes
> 1rd quartile wait time: 0 days, 19 hours, 25 minutes
> Median wait time: 3 days, 20 hours, 3 minutes
> 3rd quartile wait time: 7 days, 7 hours, 16 minutes
>
> At the moment 25% of the time Nova reviews sit for over a week [btw we
> probably want to not ignore Jenkins in that statistic, as I suspect
> reviewers tend to ignore patches that Jenkins hated on].
>
> Now, you may say 'hey, 7 days isn't terrible', but actually it is: if
> a developer is producing (say) 2 patches a day, then after 7 calendar
> days they may have as many as 10 patches in a vertical queue awaiting
> review. Until the patch is reviewed for design-and-architectural
> issues (ignoring style stuff which isn't disruptive), all the work
> they are doing may need significant rework. Having to redo a week of
> work is disruptive to the contributor.
>
> The median wait time of 3 days would nearly halve the amount of rework
> that can occur, which would be a significant benefit.
>
> Nova has (over the last 30 days) -
> http://russellbryant.net/openstack-stats/nova-reviewers-30.txt:
> Total reviews: 3386
> Total reviewers: 173
>
> By my count 138 of the reviewers have done less than 20 reviews in
> that 30 day period - thats less than one review a day. -
> https://docs.google.com/spreadsheet/ccc?key=0AlLkXwa7a4bpdDNjd2gtTE1odjJRYjRVWjhhR2VKQVE&usp=sharing
>
> So, 520 reviews from that 138 folk, but if they did 1 per weekday,
> that would be 2760 reviews, bringing the total to 3386+2760-520=5626
> reviews - or nearly *double* the review bandwidth.
>
> Now, that won't get you more cores overnight, but that sustained
> effort learning about the codebase will bring significant knowledge to
> a wide set of folk - and thats what's needed to become core, and
> increase the approval bandwidth in the team. I don't know exactly what
> russell looks for in managing the set of -core, but surely having
> enough knowledge is part of it.
>
> Now, I've nothing against having reviewers specialise in a part of the
> code base, and making that official - but I think it must be paired
> with still requiring substantial knowledge of the projects code and
> architecture: just because something is changing in e.g.
> nova/virt/disk/api.py doesn't make it irrelevant to specific virt
> drivers, and the right way to use something in the rest of the code
> base is also relevant to virt drivers, and knowing *whats there to
> reuse* is also important.
>
> So, I guess my proposal is, make a restricted +2 category of reviewer:
> - social agreement to +2 only in enumerated areas
> - still need widespread knowledge of nova's code
> - best demonstrated by sustained regular reviews of other changes
> - but granted after a shorter incubation period
> - migrates to full in time
> - privilege and responsibility lost by the same criteria as all other
> reviewers
>
> Of course, if this has been tried, fine - but AFAICT 'contribute
> equally' hasn't been tried yet.
FWIW, this is similar to how things work in Oslo, except that the
restricted +2 is done through the MAINTAINERS file rather than actual
granting of +2 authority. So Oslo still requires a regular core
reviewer to approve, but it only requires one because a +1 from a
maintainer qualifies as a +2 (e.g. maintainer +1 and core +2 ->
approved). For Nova that might not be quite as simple as just giving +2
to driver maintainers, but it has the advantage of keeping the people
with an overall view of the project in the loop.
Details on the Oslo system can be found here:
https://github.com/openstack/oslo-incubator/blob/master/MAINTAINERS#L17
-Ben
More information about the OpenStack-dev
mailing list