Hello,
Good question!
I think there are many answers to this.
First of all, what is the goal? I see a few usages of Gerrit:
As a contributor willing to work on some topic
For me, the goal of Gerrit is to keep track of all proposed changes and things that need to get done.
For example, letâs say I (or some other person) wake up one saturday morning and decide âhey, letâs have a look at porting Haiku to PowerPC64!â. What I will do is:
In a few seconds, I get a good overview of what the status is, and several ways I can help progress in that area.
Now, what if inactive tickets and core review patches were closed? We can have a look at what it would look like with just some tweaks to the previous URLs. I get:
Now, for each abandoned change, I would have to do a mini-investigation: was this abandoned because there is nothing of value, or simply because the original author was busy elsewhere for a few years?
And it would be unusual to look at abandoned changes anyway (just like looking at closed tickets). We tend to assume that they were abandoned because they have no value anymore. These inactive changes are work in progress towards something, and as long as the end goal isnât reached, they do have some value, even if it requires some further work to extract that value. Maybe an iceberg was not the right image after all. It is more like a gold mine, where you have to keep track of which parts of the land you have already processed and extracted all the gold (these are the abandoned changes), the gold you already extracted (these are the already merged changes), and the parts of the mine still to explore (these are the work in progress changes).
As someone who sent in a patch
Imagine the scenario where you spent some time working on a patch, and submitted it to Gerrit. Then, for whatever reason, you couldnât get it in a mergeable state. Maybe it exposed a way larger rework to other subsystems is needed. Maybe what you thought would be a simple fix turned out to be a lot more tricky. Or maybe people reviewing your work are not yet ready for such a disruptive change yet. Or maybe you have changing interests and decided to work on something else for a while.
In any case, the change ends up sinking way down in the list and is inactive. After a few years, letâs imagine you get a notification mail saying âNo activity for a while, abandoningâ. How would you feel about that? When this happens to me in other projects than Haiku, I feel not very good about it. I put some work into that change, and then someone decided to just close the subject, because I was not fast enough to reply to questions, or even worse, because they didnât review my change quick enough.
As a measurement of progress
Just like the number of open tickets, the number of open changes is an interesting measure. It tells us how good we are at integrating external contributorâs and also our own changes. Surely, having a lot of open changes is not a good thing?
But here, I think you fell victin to Goodhearâs law Goodhart's law - Wikipedia
In other words, if your proposed fix is to just abandon inactive changes, sure, you will get the number of pending reviews down. But you will not actually improve the situation: there will not be any more code being reviewed and changes being completed. You just found a way to game the metric. Sure, technically, the goal âhaving less open reviewsâ is reached. But that goal wasnât the right one. What we want is to eventually get these changes in a state where we can merge them. After all, they all attempt to solve existing problems, even if the solution taken isnât always the right one.
In a similar spirit, we could suggest bulk moving tickets out of the R1 milestone to make the R1 release happen sooner. This makes sense on the surface: the metric for progress towards R1 is the numbr of tickets left to solve in the roadmap. But that is only a metric. The true meaning is that the system has most bugs resolved, and we are confident in shipping a version ready to take over the desktop computer market. In that view, bulk moving tickets out is just shifting the goalposts (well, in the reverse of how that expression is usually used, but you get the idea).
I donât think my quick summary of the discussion in these changes has so much value that it needs to be linked back. When I have some really useful insight on what needs to be done, I apply it myself (as happened for the change to BTab label, that I got finished and merged last week).
I also suspect that these articles will get more interesting as we get into upper, warmer layers where things are happening. Eventually, this may turn into a âwhatâs cookingâ newsletter of some sort, who knows?