The basic principle that I think Linus is trying to follow is, "criticize the <subject matter>, not the person" (whether you're criticizing someone's ideas, someone's work, or someone's behavior). Linus isn't saying that Eric is complete garbage, he's saying that a specifically quoted statement is complete garbage for reasons that he expands on later.
I have seen things like this interpreted as personal attacks before, even though they don't actually parse out that way logically, but for someone (like me) who has to learn these rules instead of instinctively knowing them by feel, this is an easy mistake to make.
He indicates that trust has been breached, temporarily, withdraws his willingness to accept patches due to the breach of trust, and specifies precisely how Eric can rebuild trust:
> until you have made it clear that you comprehend this very fundamental issue
So fundamentally we have the same practical problem as with personal attacks: that it's bypassing what should be a discussion on technical merit. Maybe Eric's feelings aren't hurt, but it's still not clear we're building the best kernel we could.
> () Yes, there are exceptions. We have had situations where some interface was simply just a huge security issue or had some other fundamental issue. And we've had cases where the breakage was just so old that it was no longer fixable. So even rule #1 can sometimes have things that hold it back. But it is very* rare. Certainly nothing like this.
Still too aggressive, still too personal. The reprimand part of this email really shouldn’t have been made public. The tone used was not necessary to convey the ideas he was trying to communicate.
Don’t get me wrong, the lack of direct insults/namecalling is definitely an improvement, but I’d personally still hate to work with someone who chooses to communicate to their subordinates this way.
If Linus doesn't put his trusted submaintainers into line, they'll think they can violate core rules of kernel maintenance ~ something as bad breaking userspace.
Linus was right to reply exactly the way he did for such breakage.
There's nothing terrible about reprimanding someone you trusted, especially in front of everyone else.
Helps to tell people to not repeat this level of mistake.
Strong words are best way to convey the issue in a way that leaves no room for inaccuracies.
Sugarcoating it helps no-one as some people might inaccurately think it was not a big fuckup. If you use words from the very end of the expressivenes range there is no room left to doubt
Personally, I think this level of disappointment/anger/trust issue would be best dealt with face-to-face or via a phone or Skype call, or at least an off-list email. However, given the unique situation of the Linux kernel, I think it was appropriate to send to the public list.
The only line I'd remove or finesse is "Yeah, this is complete garbage." Otherwise, I think this is a great example of how to convey anger without personally attacking anyone. Linus doesn't swear, he doesn't call Eric stupid or curse him out, but he still says what he means: The behavior was out of line, it has to stop, and, most importantly, it represents a breach of trust.
He's not saying Eric is a bad, stupid or worthless person - he is saying that in this instance, Eric's behavior is bad. That's the key difference.