Dear flashrom community,
I regret to tell you that I won't do any further upstream flashrom work in the foreseeable future. Compared to the last few months that won't change much, as I didn't spend as much time on flashrom as I wanted to.
TL;DR Maintaining flashrom was always a bit of a drag, mostly reviewing, organizing tests and releases, didn't leave much time for personal deve- lopment. Still, it was mostly fun. Until I flew too close to the sun and burned all my fuel that I had left for the project, trying to help converging the Chromium fork with upstream flashrom. I really hoped it wouldn't become another episode of "Nice! somebody else does the work". Not - a - chance.
Upfront
I was once told not to blame a company for the actions of individuals. However, there is forming a pattern, of people complaining to me how hard their job is; after I just did part of their job in my spare time! I don't think they are to blame, but they happen to all have the same employer. If we are pushed hard enough that we don't see anymore what we ask from one another, it's time to quit. At least regarding flash- rom I won't do any more work for them just because somebody said to be done in no time.
What happened
About half a year ago people started to push patches from Chromium upstream. I tried to welcome them and, as usual, to encouraged them to announce their plans on the mailing list so we could all work better together. Pipe dreams.
Obviously they wanted a fast lane, so the fork wouldn't cause too much more friction (for them!). No time to wait for other patches (including conflicting ones) to be reviewed. No [...] to do it by themselves. There was a decision to be made, either they would have to wait and rebase or other contributors would have to wait even longer and rebase. I chose wrong, and feel sorry about it. I prioritized the upstreaming, did fewer reviews for other contributors, let my own patches rot, didn't invest in further flashrom releases.
Around the same time, somebody (who happens to have administration rights) gave submit rights to the flashrom repository to one of them. I tried to stay calm and to be nice. (Edward, nothing personal, I actually was glad that it was you. I was just annoyed because of the way it happened, I had to dig up what is going on instead of reading it in a nice email.)
Up to now, I guess roughly 40~50 patches landed upstream. Most of them in one of these categories: o New features o Flash chip support o Remaining diff between the branches
The former turned out to be ok'ish, even though it's tedious to repeat every time that patches should be organized to ease review, and should have known issues fixed already.
The flash chip additions started with a weird idea, sort the `flashchips.c` on both sides to make it easier comparable. I didn't want to squabble about other people's workflow and, in good faith, allowed it.
The last category produced some odd patches with creative commit messages. It seems the idea was to diff individual files between the branches and if it was small enough to turn it into a commit. Now I have no idea how many sides their dice had that they used to decide which branch would be patched. The result was that I had to either complain about the commit message and hope to get answers (unlikely) or to dig into it by myself, spending hours staring at the history of the two branches to make some sense of it. I had to do exactly what the uploaders avoided to do because of their time constraints. Sometimes to find out that a commit effectively rever- ted good upstream work! If that wasn't discovered during review, that's the community's fault of course, and theirs to fix. The uploaders have no time; remember, their job is hard, yours is not.
Regrets
When I started maintaining flashrom, I set myself a rule: At least have a look at every patch that lands on Gerrit. I broke that rule at least with the patch train for AMD graphics cards, sorry Luc.
Obviously I regret prioritizing Chromium patches, before they proved to be valuable community members. My biggest regret is the re-sorting of `flashchips.c`. Given the few patches in that area that landed, it didn't pan out. Also, it was a pure convenience stunt, one can as well re-sort on-the-fly for comparison. OTOH, it breaks the Git history, making it much harder to check for reasons, e.g. why is this feature set? which variants of this chip were really tested?
If anybody wants to roll back master to fix that, you'd have my full support to make it happen without losing anything that was added after.
Legacy
I've left at least two of my patch trains rotting: A set to overhaul internal layout handling and one for IFWI layouts. I've seen that they were commented on eventually. Thank you Angel and David, and sorry in advance if I wasted your time in case the patches won't make it. The IFWI patches were written first, but they made me realize that layout changes are necessary and should come first. If I had spent more time on it, I would have rebased them accordingly.
Future
I'll have to maintain a flashrom branch for my employer. It might take some time before I rebase anything, but if anyone wants me to keep things published somewhere, I can arrange that.
For upstream, future's all up to you!
Thank you all for the time we spent together on the project! Nico