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