[infinispan-dev] Let's stop with pull requests

Manik Surtani manik at jboss.org
Fri May 25 08:44:39 EDT 2012


On 25 May 2012, at 13:34, Sanne Grinovero wrote:

> On 25 May 2012 13:16, Manik Surtani <manik at jboss.org> wrote:
>> 
>> On 25 May 2012, at 12:47, Sanne Grinovero wrote:
>> 
>>> guys, please don't take me as the one who is again complaining about
>>> failing tests; I'm having doubts about the development process and the
>>> amount of time this is wasting on all of us.
>>> 
>>> We're all humans and do mistakes, still it happens so extremely often
>>> that this is getting systemic, and discipline could definitely be
>>> improved: people regularly send pull requests with failing tests or
>>> broken code, and very regularly this is just merged in master.
>> 
>> Yes, this must not happen.  I have been culprit of this a few times, but we really shouldn't do this.  Galder integrating BuildHive into the process should help to some degree.
>> 
>>> 
>>> I did it myself a couple of days ago: didn't notice a failure, all
>>> looked good, sent a pull, it was merged with no complaints. Three days
>>> later, I resume my work and am appalled to see that it was broken. Now
>>> fixing it, but I'll have to send another pull and wait for it - which
>>> feels very pointless, as I'm pretty sure nobody is checking anyway.
>>> 
>>> It looks like as the pull request procedure is having this effect:
>>> 
>>> # patch writer is not as carefull as he used to be: "someone else
>>> will check if it's fine or not. I have no time to run the tests
>>> again..".
>> 
>> Yes, the patch author should still be just as vigilant.  Having a review process is no excuse for not writing good code and testing it properly.
>> 
>>> 
>>> # reviewer has as quick look. "Looks good - in fact I don't care
>>> much, it's not my code and need to return to my own issues.. worst
>>> case someone else will fix it blaming the original author"
>>> 
>>> And then again some incomplete test makes it to master, or a patch
>>> which doesn't even compile is integrated.
>>> 
>>> This pull request process is being a big failure. Shall we stop
>>> wasting time on it and just push on master?
>> 
>> -1.  We should fix the process.
> 
> Ok we can work on that too of course. but I also think we should relax
> the pull request rule a bit. I pushed two obviously easy patches today
> directly as I was sure of them and they would fix broken tests.
> Of course, I take responsibility of that, but ultimately I feel doing
> it to not waste time of others on such a trivial and obvious patch.
> 
> Also, I still value pull requests in those areas in which discussion
> is needed, or complex things are changes; but in those cases the
> complexity (i.e. responsibility) should really not be pushed to the
> reviewer: it's the author who should labour his commits in a clear
> sequence with enough comments and tests to make everyone comfortable.
> 
> Another thing which occasionally happens is that a messy pull request
> is fine, but very complex to review. I'm pretty sure it happened to
> everybody at least once to have the feeling they are taking more time
> to review something than it took the original author to write it;
> that's also a smelly sign of quality and the process overall.
> People should make sure their pull requests are straight forward to
> understand, not only by the reviewer but by anyone looking at the
> history, including himself after a year.

Yes, and the reviewer should reject such pull requests.  It isn't just code quality that the reviewer is looking for, but style as well.

> 
> 
>>> Which doesn't mean I'm suggesting "let's make it worse" | "unleash
>>> hell": we should all take responsibility on any change very seriously.
>>> 
>>> Again, I'm not enjoying the role of "whom who complains on the
>>> testsuite again". Just stating a fact, and trying to propose something
>>> to make it work better. We have great individuals on this team, but we
>>> need to admit that team work isn't working and we should deal with it
>>> at it's best; denying it won't help.
>> 
>> I'll take over that role.  One thing I'd like to propose:
>> 
>> 1.  The reviewer is ultimately responsible for the patch.  If a broken patch makes it to upstream it is the reviewer's fault.
>> 2.  The patch author is responsible for wasting reviewer's time with bad patches.
> 
> The problem with such a game is that we lack reviewers, or are often
> slow at it. That's one of my reasons to avoid pull requests,
> especially when related to "fix the current build": it takes too long.

Sure, for such small, targeted patches as per your example, that makes sense.  But maybe a quick discussion with at least one other reviewer on IRC about what's going to happen makes sense.

> 
>> 
>> I think we should make a game of this: we have a "bad commits" jar.  Each time a reviewer pushes a bad patch up, he needs to put $1 into the jar.  The next time, $(1 << 2), the next $(1 << 3), etc.  :)
> 
> Such a game would discourage people from doing reviews, which is the
> opposite of what we need.

No, reviews are necessary.  The project doesn't progress without it, full stop.

> 
>> To prevent incomplete pull requests wasting reviewer's time, the reviewer is allowed to impose a similar penalty on the patch  author.  Naturally, this only covers blatantly bad patches - i.e., incomplete tests, broken builds - and not genuine feedback on the patch, etc.
>> 
>> And of course the "bad commits jar" is used to buy beer the next time we all meet.  Inspired by a tweet Sanne fwd'd a while back.  ;)
>> 
>> If we're happy with this, I'll maintain the accounting spreadsheet for this bad commits jar.
>> 
>> - M
>> --
>> Manik Surtani
>> manik at jboss.org
>> twitter.com/maniksurtani
>> 
>> Lead, Infinispan
>> http://www.infinispan.org
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani

Lead, Infinispan
http://www.infinispan.org






More information about the infinispan-dev mailing list