← all talks

← → move · D light/dark · . blank

Something new on your pull requests

Every Time It Was Wrong

What the reviewer does to your PR, and how we know whether it is any good.


Tjakoen Stolk

When your PR is sitting waiting for review

it leaves up to six comments on the lines they are about it can hold the merge when something really is broken it cannot approve ever. That is still a person.

First, the boring question

98% of its comments were right. 816 of them, graded one at a time against what actually happened to the code. Which is the least interesting thing about it.

Because we have all been sent the accurate one

a tool that comments on everything you scroll past all of it this one you read all of it

So most of the work is throwing things away

six reviewers reading at the same time checks that throw things out the next slide it argues back against its own findings six comments everything it could have said what it actually says

Three ways a comment dies before you ever see it

what the reviewers found what is left the ticket askedfor exactly this someone alreadysaid it it cannot say whatwould break that is the point of the PR a reviewer, or you, in a reply "this looks wrong" is not enough On a close call it stays quiet. A wrong comment costs more than a missed one.

Then whatever survived gets attacked on purpose

a surviving finding a second reader whose only job is to kill it, and which cannot see the case for it it survives it is deleted you see it nobody ever does If the second reader cannot decide, the answer is no.

It is not fire and forget

you it ask it a question push a fix close the thread, say nothing it answers you it reads the code as it is now, then closes it it still reads the code before believing you

The one limit that is not going to move

hold the merge it can, and it does let it through never. Not once, not on a clean run. Merging here needs human approvals. An approval from the account doing the reviewing would count as one of them, which is exactly the gate that exists to require a person. So the last call is always ours.

And when something goes wrong on its side

the six reviewers on your change donedonedone donedone did not finish Then it cannot tell you the PR passed. Passing is a claim about coverage and it just lost some. The summary names the missing check and what it leaves uncovered, in your terms rather than its own.

Now the part we did not expect

was it right? on a line 98% in the summary 99% did anyone do anything about it? on a line 95% in the summary 24 to 43% Same run, same quality. The only difference is where it was printed.

We only know that because of this loop

it leaves a comment every one is written down graded later: did you fix it, or was it wrong? scored per topic, so a bad one cannot hide in an average fix one reviewer re-run it on old pull requests it cannot get past this on its own It can tell me it was wrong. It does not get to decide what to do about that.

Everything you have just seen, joined up

the review, on a clock your PR ispicked up what was asked,what was said read aroundthe change six reviewers,at the same time sort, thenargue back five rules, thencheck itself after it posts it posts it answers whatyou ask it checks your fixagainst the code every commentwritten down it watches foryour reply later, and separately each one isgraded the score,per topic re-run it onold pull requests fix onereviewer filled: the one a person decides

Nobody starts any of this by hand

what happens how it is noticed what runs a ticket moves to code review you reply to a comment you push a fix you close a thread, saying nothing the PR merges a check, every 30 min straight away straight away nothing fires. 30 min. overnight it is queued, someone clicks it answers you it reviews just the new code it reads the code anyway your comments get graded

And none of it was designed up front

the first version what it is now going to look every half hour one number for right and acted on writing down only the line comments no limit on how long a run could take it tells us the moment it happens two numbers, kept apart writing down all of them a clock, and it gives up out loud Each one needed shipping the wrong version first, then measuring it.

That is the whole thing

It will be wrong sometimes. Tell it, and the next one gets better.

Reply the way you would to a person. That reply is what gets graded, and it is the only thing that says which reviewer to fix.


The judgment is human. The typing, by design, is not.

1 / 16 00:00

    Next

    Arrows here drive the main window · T resets the clock · the clock turns accent past 20 minutes