<div dir="ltr">Dmitry and I chatted some this morning and I'd at least like to address those issues so that we can resolve them and move on to the other discussions. I am not speaking for Emilien here, just jumping in as a core and trying to help resolve some of this.<div><br></div><div>As Emilien notes, many of us do not work full-time on puppet code, so sometimes reviews can slip. IRC messages can also be missed especially during summer months with many of us on vacations. For that reason, Dmitry and the Fuel team will be bringing reviews to the weekly meeting to call out ones that need or are overdue for attention. I believe that missed, overlooked, ignored, or forgotten reviews are not a new issue for an OpenStack project, but hopefully this solution will work to improve throughput. This solution applies to anyone who is possibly not getting enough attention on the review.</div><div><br></div><div>Our review dashboard is here: <a href="https://goo.gl/bSYJt8">https://goo.gl/bSYJt8</a></div><div><br></div><div>Our weekly meeting schedule link is posted by Monday morning and the meeting takes place Tuesday. Anyone can add to the schedule.</div><div><br></div><div>I also agree with both Emilien and Dmitry that I've seen Fuel contributions increase since the initial conversation here and I hope to see that trend continue. It will be better for everyone if we can collaborate well.</div>







<div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 18, 2015 at 4:32 PM, Dmitry Borodaenko <span dir="ltr"><<a href="mailto:dborodaenko@mirantis.com" target="_blank">dborodaenko@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It has been 5 weeks since Emilien has asked Fuel developers to contribute more<br>
actively to Puppet OpenStack project [0]. We had a lively discussion on<br>
openstack-dev, myself and other Fuel developers proposed some concrete steps<br>
that could be done to reconcile the two projects, the whole thread was reported<br>
and discussed on Linux Weekly News [1], and the things were looking up.<br>
<br>
[0] <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-June/066544.html" rel="noreferrer" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2015-June/066544.html</a><br>
[1] <a href="https://lwn.net/Articles/648331/" rel="noreferrer" target="_blank">https://lwn.net/Articles/648331/</a><br>
<br>
And now, 5 weeks later, Emilien has reported to the Technical Committee that<br>
there has been no progress on reconciliation between Fuel and Puppet OpenStack,<br>
and used his authority as a PTL to request that the Fuel's proposal to join<br>
OpenStack [2] is rejected.<br>
<br>
[2] <a href="https://review.openstack.org/199232" rel="noreferrer" target="_blank">https://review.openstack.org/199232</a><br>
<br>
In further comments on the same review, Emilien has claimed that there's<br>
"clearly less" contribution to Puppet OpenStack from Fuel developers than<br>
before, and even brought up an example of a review in puppet-horizon that was<br>
proposed and then abandoned by Fuel team [3]. Jay went as far as calling that<br>
example "an obvious failure of working with the upstream Puppet-OpenStack<br>
community".<br>
<br>
[3] <a href="https://review.openstack.org/198119" rel="noreferrer" target="_blank">https://review.openstack.org/198119</a><br>
<br>
Needless to say, I found all these claims deeply disturbing, and had to look<br>
closely into what's going on.<br>
<br>
The case of the puppet-horizon commit has turned out to be surprisingly<br>
obvious.<br>
<br>
Even before looking into the review comments, I could see a technical reason<br>
for abandoning the commit: if there is a bug in a component, fixing that bug in<br>
the package is preferrable to fixing it in puppet, because it allows anybody to<br>
benefit from the fix, not just the people deploying that package with puppet.<br>
<br>
And if you do look at the review in question, you'll find that immediately (14<br>
minutes, and that at 6pm on Friday night!) after Jay has asked in the comments<br>
to the review why it was abandoned, the commit author from the Fuel team has<br>
explained that this patch was a workaround for a packaging problem, and that<br>
this was pointed out in the review by a Horizon core reviewer more than a week<br>
ago, and later corroborated by a Puppet OpenStack core reviewer. Further<br>
confirming that fixing this in the package instead of in puppet-horizon was an<br>
example of Fuel developers agreeing with other Puppet OpenStack contributors<br>
and doing the right thing.<br>
<br>
Emilien has clearly found this case important enough to report to the TC, and<br>
yet didn't find it important enough to simply ask Fuel developers why they<br>
chose to abandon the commit. I guess you can call that an obvious failure to<br>
work together.<br>
<br>
Looking further into Fuel team's reviews for puppet-horizon, I found another<br>
equally disturbing example [4].<br>
<br>
[4] <a href="https://review.openstack.org/190548" rel="noreferrer" target="_blank">https://review.openstack.org/190548</a><br>
<br>
Here's what I see in this review:<br>
<br>
a) Fuel team has spent more than a month (since June 11) on trying to land this<br>
patch.<br>
<br>
b) 2 out of 5 negative reviews are from Fuel team, proving that Fuel developers<br>
are not "rubberstamping" each other's commits as was implied by Emilien's<br>
comments on the TC review above.<br>
<br>
c) There was one patch set that was pushed 3 business days after a negative<br>
review, all other patch sets (11 total) were pushed no later than next day<br>
after a negative review.<br>
<br>
All in all, I see great commitment and effort on behalf of Fuel team,<br>
eventually awarded by a +2 from Michael Chapman.<br>
<br>
On the same day (June 30), Emilien votes -2 for a correction in a comment, and<br>
walks away from the review for good. 18 days and 4 patch sets and 2 outstanding<br>
+1's later, the review remains blocked by that -2. Reaching out on<br>
#puppet-openstack [5] didn't help, either.<br>
<br>
[5] <a href="http://irclog.perlgeek.de/puppet-openstack/2015-07-08#i_10867124" rel="noreferrer" target="_blank">http://irclog.perlgeek.de/puppet-openstack/2015-07-08#i_10867124</a><br>
<br>
At the same time, Emilien has commented on the TC review that the only metric<br>
he considers reflective of Fuel's contribution to Puppet OpenStack is merged<br>
commits. Isn't that a Catch-22 situation, requesting more merged commits and<br>
refusing to merge them?<br>
<br>
When I compare the trends in the number of patch sets pushed by Fuel developers<br>
[6] against the number of merged commits [7], I see the same picture. It's<br>
really obvious when comparing both graphs side by side.<br>
<br>
[6] <a href="http://stackalytics.com/?module=puppetopenstack-group&metric=patches&company=mirantis" rel="noreferrer" target="_blank">http://stackalytics.com/?module=puppetopenstack-group&metric=patches&company=mirantis</a><br>
[7] <a href="http://stackalytics.com/?module=puppetopenstack-group&metric=commits&company=mirantis" rel="noreferrer" target="_blank">http://stackalytics.com/?module=puppetopenstack-group&metric=commits&company=mirantis</a><br>
<br>
Between May and July, the peak number of patchsets in Puppet OpenStack from all<br>
contributors increased by a factor of 1.78, while patchsets associated with<br>
Mirantis jumped up by a factor of 6.75. At the same time, merged commits from<br>
all contributors increased by 2.44 (meaning 30% less patch sets per commit than<br>
in May), for Mirantis the factor is only 2.0 (meaning 3 times as many patch<br>
sets per commit as in May).<br>
<br>
Just look at the attached picture to see how obviously massive is the increase<br>
in the effort that Fuel team contributes to Puppet OpenStack. One can argue for<br>
different ways to explain why this effort does not convert into merged commits,<br>
but based on two examples above I find it very hard to believe that it can be<br>
explained by a lack of trying.<br>
<br>
In fact, this is exactly the situation that I have predicted in the original<br>
thread when I said that commmitment to collaborate has to be mutual [8].<br>
<br>
[8] <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-June/066731.html" rel="noreferrer" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2015-June/066731.html</a><br>
<br>
Fuel team can commit to reporting bugs and posting patches, Fuel team can spend<br>
reasonable amount of time and effort to respond to review comments, but all<br>
that is worth nothing if there's no commitment from Puppet OpenStack team to<br>
review and merge these patches in a timely manner.<br>
<br>
Looking through the collaboration thread, the only commitment I see is<br>
Emilien's promise that "if you submit a good patch now, it will land in maximum<br>
one week or so", and his comment on the TC review: "The end of the thread was<br>
kind of consensus to me and I was pretty happy to see Dmitry was really open to<br>
the discussion".<br>
<br>
Clearly this kind of consensus is not working out, and I think at least one<br>
reason is that my proposal for Puppet OpenStack developers to take over stalled<br>
commits was rejected. One way or another, cases like "16 days since the first<br>
patch set that had no negative reviews" that obviously violate the "land within<br>
a week" commitment have to be identified and prioritized. Being on the hook to<br>
take them over if they don't land on time is one way to introduce a motivation<br>
to make that happen. There could be other ways to address it, for example<br>
having a review dashboard that highlights stuck reviews (as I proposed in the<br>
same email) would help add some visibility into the problem.<br>
<br>
Please don't get me wrong. In the same reviews I've highlighted above I see<br>
excellent example of collaboration from Puppet OpenStack team, insightful and<br>
timely comments, and I'm not denying the effort the team spends on onboarding<br>
new contributors flooding in from Fuel. But I don't see how this situation can<br>
be called "no progress" and "reduced contribution from Fuel" when making<br>
further progress is limited by Puppet OpenStack team's ability to review<br>
incoming patches much more than by Fuel team's commitment to proposing and<br>
updating them.<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Dmitry Borodaenko<br>
</font></span><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>