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

Manik Surtani manik at jboss.org
Fri May 25 08:16:37 EDT 2012


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.

> 
> 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.

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.  :)

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






More information about the infinispan-dev mailing list