Welcome to LWN.netThe following subscription-only content has been made available to you by an LWN subscriber. Thousands of subscribers depend on LWN for the best news from the Linux and free software communities. If you enjoy this article, please consider accepting the trial offer on the right. Thank you for visiting LWN.net! |
|
A couple of surprising things happened in the kernel community on September 16: Linus Torvalds announced that he was taking a break from kernel development to focus on improving his own behavior, and the longstanding "code of conflict" was replaced with a code of conduct based on the Contributor Covenant. Those two things did not quite come packaged as a set, but they are clearly not unrelated. It is a time of change for the kernel project; there will be challenges to overcome but, in the end, less may change than many expect or fear.
Torvalds has always been known as a harsh critic; what perhaps fewer people have seen is that he has always been willing to be just as harsh toward himself when (in his opinion) the situation warranted it. He has seemingly come to the conclusion that some self-criticism is indeed called for now:
Torvalds went on to say that he will be taking a break from kernel work at least through the end of the 4.19 development cycle — which should come in around four weeks. Greg Kroah-Hartman will be handling pull requests during this time; he has already done a number of pulls as of this writing. Torvalds, meanwhile, will "get some assistance on how to understand people’s emotions and respond appropriately". He expressed a strong wish to continue leading the kernel project once things settle, and said that he was "looking forward" to meeting with the maintainer community at the Maintainers Summit at the end of October.
As for what brought this moment about, we may never know for sure. He talks about being confronted by members of the community, but people have been telling him for years that some things should change. If somebody did get through to him this time, they did it privately. In any case, we seem to have arrived at, as Torvalds put it, one of "the inflection points where development flow and behavior [change]". Sometimes, perhaps, it really is just a matter of waiting for the right moment when change becomes possible.
The response to this announcement on the net as a whole has, as one might imagine, covered a wide spectrum. Some people like Torvalds just as he is and do not welcome any change, while others are quick to say that he is beyond redemption and probably cannot change. Most people, though, seem to recognize an individual confronting some internal pain and are waiting hopefully to see what comes next. We wish him the best and look forward to his return.
Critics of the kernel community have spent years calling for the establishment of a proper code of conduct. The adoption of a "code of conflict" in 2015 did little to mollify those critics, many of whom saw it as, at best, an empty gesture that would change little. Judging three years later whether they were right is harder than one might think. There is little in the way of hard evidence that the code of conflict brought about any changes in behavior. On the other hand, the kernel community continues to grow, and most of the approximately 4,000 people who contribute each year have a fine experience. The web sites that specialize in publicizing inflammatory messages found in the mailing lists have had to dig harder than in the past. Perhaps the code of conflict helped to moderate behavior a bit, or perhaps we are just seeing the slow, long-term trend toward professionalism that has been evident in the community for at least two decades.
Attentive readers will note that my name appears as one of the signoffs on the patch adding the new code of conduct; they might wonder why I chose to do so despite my beliefs that (1) the situation is not as bad as many like to portray it, and (2) things are getting better anyway. Over the last weekend, I was informed that there was a window of opportunity to change the code and given the chance to comment on the new one. How or why this window came to be is still not entirely clear; I did not know about Torvalds's plans until I read the announcement along with everybody else. I saw the new code as a way of encouraging the community's slow drift toward greater civility. It was not the code I would have written, but I agree with the principles expressed there and believe that it can be adopted and used in the pragmatic manner in which the community approaches most problems.
One of the strongest criticisms against the old code of conflict is that it did not enumerate the types of behavior that are unwelcome. The new one cannot be criticized on that account. Such laundry lists of misbehavior can leave a bad taste in the mouth; that can be especially true if, like me, you are an older, run-of-the-mill white male; it is easy to look at a list like that and say "everybody is protected except me". It can look, rightly or wrongly, like a threatening change pushed by people with a hostile agenda.
But the purpose of such a code is not to threaten anybody; indeed, it is the opposite. It is a statement that we all have the right to be who we are and participate in the community as equals without having to contend with bullying, abuse, and worse. Posting a patch should not be a frightening experience. The code of conduct is a way of saying that, if we drive away contributors with a hostile environment, we don't just impose a personal cost on those contributors; we also make ourselves weaker as a community. Not even the kernel community, which still attracts at least 200 first-time contributors in each development cycle, is so rich that it can afford to lose talent in that way.
I can also understand a hostility to rules. I grew up in a small Wyoming town that had a sign reading — literally — "Population: 35". There is little need for formal rules in such a place; there are no strangers and everybody knows that they have to get along for many years into the future. Every such town has some eccentric and difficult personalities; people learn how to cope with them.
Cities do not run the same way, though; cities need rules. There are too many people coming from too many different backgrounds to just get along without some sort of framework. The kernel community is the free-software equivalent of a city at this point. It has grown hugely, and is divided into a number of neighborhoods, some of which are rather friendlier than others. Many bad experiences reported by developers are associated with crossing into a new neighborhood and unwittingly violating one of the norms in place there. There is a place for some city-wide rules on how we deal with each other so that such bad experiences become much rarer.
The early O'Reilly books about Linux, including mine, used a wild-west cover theme for a reason. But the kernel community is not the wild frontier that it was back then; it has become a far more disciplined, professional, and even welcoming place. In the end, my hope in signing off on the new code of conduct was that it would drive home the point that we are no longer the wild west, that it would encourage further progress toward civility and professionalism, and that it would help the kernel community continue to scale into the future. Those of us who work on the kernel tend to be in it for the long term; we want the community ten years from now to be better than what we have now, because we expect to still be a part of it.
One need not look far to find predictions of doom in many flavors. Some, seemingly including the author of the Community Covenant, think that the kernel community may be a lost cause. There is, among some people, a sort of hostility toward the kernel community that brings a special toxicity of its own; there is little to be done about that. On the other hand, plenty of people — generally not those with a lot of contributions to their credit — claim that the adoption of a code of conduct will force developers out and be the beginning of the end of the kernel project. Now that the "social justice warriors" have taken over, the real developers will flee and it will all collapse into a heap.
That outcome seems unlikely, but there will indeed be challenges in adopting this code in such a large community. The nature of kernel development requires relatively high levels of pushback on code submissions, many of which will not be merged in anything resembling their current form. It attracts passionate developers with strong opinions who do not always understand the need to create a kernel that works for a huge and diverse set of users. It attracts developers who are trying to solve problems above their technical ability — perhaps at the direction of their employers. Kernel developers care deeply about the kernel itself and are unwilling to stand by idly if they see changes that threaten to make the kernel worse. And the kernel, perhaps more than any other project, is surrounded by a vocal community of onlookers with opinions on every move the community makes. These are all the makings of a relatively high level of conflict.
The community as a whole will have to find a way to implement the code that handles the community's inherent conflicts without collateral damage. It is thus unhelpful that it was adopted so abruptly, without a community-wide discussion; that will not sit well with some developers. It would have almost certainly been better to go more slowly, and involve at least the invitees to the Maintainers Summit; on the other hand, any public discussion would have had a high probability of being an unpleasant experience for everybody involved.
It seems almost certain that some people will try to test the boundaries of this code and its enforcement mechanisms in an attempt to show which effects it will (or will not) have. Neither the boundaries nor the consequences for crossing them are particularly well specified at this point. Some parts of the code do not entirely seem to fit; it's not clear that the kernel project can even have an "official social media account" or an "appointed representative", for example. Those who end up enforcing this code will have to handle complaints with great care, protecting members of the community while fending off those who might, as some seem to fear, attempt to use the code to further an unrelated agenda.
The written code was changed with a single patch; implementing that code may be a rather longer and harder process. Like the kernel's out-of-memory killer, the code of conduct might be seen as a collection of heuristics that never quite converge on what is really wanted.
That said, the chances are that what will emerge from the dust will be something that looks like the same kernel community that has achieved so much in the last 27 years. Only hopefully it will be a bit friendlier, a bit more diverse, and much stronger. This could indeed be one of those inflection points mentioned by Torvalds in his announcement; the kernel has always emerged from those episodes stronger than ever. It is hard to see any reasons why this time should be different.
Did you like this article? Please accept our trial subscription offer to be able to see more content like it and to participate in the discussion.
Code, conflict, and conduct
Posted Sep 18, 2018 21:31 UTC (Tue) by Tara_Li (subscriber, #26706) [Link]
Code, conflict, and conduct
Posted Sep 18, 2018 22:07 UTC (Tue) by tbird20d (subscriber, #1901) [Link]
This CoC has been adopted by numerous other projects, so examples of departures and reduction in code quality should be easy to come by, if that occurs. The Django project is only one I know of that publishes stats, and there does not appear to be a mass departure due to bans from the CoC.
Code, conflict, and conduct
Posted Sep 18, 2018 22:21 UTC (Tue) by Tara_Li (subscriber, #26706) [Link]
Sometimes, it looks like we're replacing in-your-face incivility with knife-in-the-back incivility.
Code, conflict, and conduct
Posted Sep 19, 2018 0:52 UTC (Wed) by jerojasro (subscriber, #98169) [Link]
Indeed, what about code quality? I'm a longtime user of Django, and in my opinion its quality has not decreased; it has not affected me as a user.
I don't follow the Django development discussions. Maybe you do, and have noticed such decline/evidences for it? A link would be welcome, I'm most curious.
The only complaint about Django is about it being bloated, and/or slow. That might be true, but as far as I know, that's not a consequence of adopting a CoC; it has always been Django's philosophy to offer a fully integrated environment. The Django community has banned 3 people, total, in 3 years. I really doubt that has an impact on the project at any level. But I would welcome any evidence to the contrary.
...
All in all, the whole "now that there is CoC in place the project will lose in technical quality, top contributors who are brash/abrasive/etc. will leave" gives these "people who might leave because of the CoC" too much (technical) credit, too little (emotional) credit in their capabilities to learn and understand and empathize with their peers, and also fails to consider the (lost) contributions of people who have been driven away by the unwelcoming environment in the kernel community.
Code, conflict, and conduct
Posted Sep 19, 2018 7:22 UTC (Wed) by k8to (subscriber, #15413) [Link]
However I don't think this document as written attempts to suppress that at all, it merely says that you really shouldn't troll and swear and ad-hominem while doing that.
You could try to suggest that such documents correlate with an attempt to suppress public discussion of greivances, but I would challenge that you really need evidence to make such claims.
Code, conflict, and conduct
Posted Sep 19, 2018 13:44 UTC (Wed) by Tara_Li (subscriber, #26706) [Link]
Oh, yeah - one other case comes to mind - the recent Lerna license flap, where the CoC was actually used to kick the guy out who changed the licensing.
I'm not sure how the minor flap in the Python community over the push to eliminate the terms "master" and "slave" is going - I found it interesting to see this arise once more after the first time it came around in reference to PATA IDE drives. Still, someone was apparently pushing against it on "diversity" grounds - they have something against the BDSM community? That seems a remarkably undiverse definition of diversity.
I'm just really not sure of the utility of these things. They just seem like one more set of rules to be used to play "gotcha" with.
Code, conflict, and conduct
Posted Sep 19, 2018 15:29 UTC (Wed) by JoeBuck (subscriber, #2330) [Link]
Read the recent article Trying to get STACKLEAK into the kernel for an example of Linus' behavior causing problems. People who are trying to solve tough problems in contentious areas shouldn't have deal with torrents of personal abuse, and rigorous code review does not require it.
Code, conflict, and conduct
Posted Sep 19, 2018 16:01 UTC (Wed) by Tara_Li (subscriber, #26706) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 7:22 UTC (Wed) by alan (subscriber, #4018) [Link]
Code, conflict, and conduct
Posted Sep 18, 2018 22:35 UTC (Tue) by roc (subscriber, #30627) [Link]
Code, conflict, and conduct
Posted Sep 18, 2018 22:40 UTC (Tue) by roc (subscriber, #30627) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 12:12 UTC (Wed) by sml (subscriber, #75391) [Link]
> the code falls apart because many of the key developers found themselves on the wrong side of the code
When this happens, lets debate it. Until then, stop spreading FUD.
Code, conflict, and conduct
Posted Sep 19, 2018 13:46 UTC (Wed) by Tara_Li (subscriber, #26706) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 14:28 UTC (Wed) by jubal (subscriber, #67202) [Link]
I posit that you engage in bad faith. (And may I recommend looking up “whataboutism”?)
Code, conflict, and conduct
Posted Sep 19, 2018 14:36 UTC (Wed) by Tara_Li (subscriber, #26706) [Link]
Code, conflict, and conduct
Posted Sep 18, 2018 22:04 UTC (Tue) by aaro (subscriber, #81996) [Link]
Where (mailing list?) this happened and who were given a chance to comment it?
Code, conflict, and conduct
Posted Sep 18, 2018 22:19 UTC (Tue) by Tara_Li (subscriber, #26706) [Link]
We'll see...
Code, conflict, and conduct
Posted Sep 18, 2018 22:28 UTC (Tue) by corbet (editor, #1) [Link]
Um...if you look at the patch adding the code, you will see that it carries Linus's signoff. Did you really think people would try to sneak in something like that behind his back?I did not know it at the time, but what made the period "special", as far as I can tell, is that Linus wanted to have a new CoC in place when he made his announcement.
Code, conflict, and conduct
Posted Sep 18, 2018 22:31 UTC (Tue) by lkundrak (subscriber, #43452) [Link]
commit 8a104f8b5867c682d994ffa7a74093c54469c11f Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> AuthorDate: Sat Sep 15 20:26:44 2018 +0200 Commit: Linus Torvalds <torvalds@linux-foundation.org> CommitDate: Sun Sep 16 11:42:28 2018 -0700 Code of Conduct: Let's revamp it.
Code, conflict, and conduct
Posted Sep 19, 2018 0:51 UTC (Wed) by klbrun (subscriber, #45083) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 7:26 UTC (Wed) by k8to (subscriber, #15413) [Link]
Follow through will be key
Posted Sep 18, 2018 22:38 UTC (Tue) by rgmoore (✭ supporter ✭, #75) [Link]
I think that Linus's personal behavior will be far more important than a written code of conduct in determining how the community works in practice. No matter what it says, the code of conduct is meaningless without enforcement. If Linus comes back from his time away with a real commitment to making the kernel community a more welcoming place, things will change. Even if he back slides, if people can successfully call him out for it, things will change. If he comes back and maintains the same old behavior, the code of conduct will turn out to be just another failed experiment that resulted in some dead code.
Follow through will be key
Posted Sep 19, 2018 1:54 UTC (Wed) by daniel (subscriber, #3181) [Link]
Follow through will be key
Posted Sep 19, 2018 8:07 UTC (Wed) by bnastic (subscriber, #86682) [Link]
I do not expect him to return a “new man”. I do not expect a 49 year old to simply acquire new personality over night. I also don’t expect him to stay with the Linux Foundation, but I’d love to be proven wrong on this.
Follow through will be key
Posted Sep 19, 2018 13:08 UTC (Wed) by rweikusat2 (subscriber, #117920) [Link]
Conflict is necessary
Posted Sep 19, 2018 3:41 UTC (Wed) by Frogging101 (subscriber, #113180) [Link]
(ah well.)
Posted Sep 19, 2018 11:14 UTC (Wed) by jubal (subscriber, #67202) [Link]
says who, exactly?
On code reviews...
Posted Sep 19, 2018 4:45 UTC (Wed) by bentley (subscriber, #93468) [Link]
It seems that people often use code reviews and technical disagreement as an example of what might stress a CoC, or cause conflict that violates it. IMO, if a person can't review code or have technical disagreements without harassing somebody or creating an exclusionary environment, they shouldn't be reviewing code or having technical discussions.
There's a big difference between "This code isn't up to our standards, here's what you can do to fix it" or "I don't have time to help you fix this code, please look here<link> for guidance" and "this code is bad (and you should feel bad)".
On code reviews...
Posted Sep 19, 2018 7:30 UTC (Wed) by k8to (subscriber, #15413) [Link]
I raise this because I think this is an area that needs improvement, industry-wide. The Linux kernel discussion isn't mostly full of the kind of condescension and de-valuation that is more common.
On code reviews...
Posted Sep 19, 2018 12:44 UTC (Wed) by pj (subscriber, #4506) [Link]
Everyone is fighting a secret battle you know nothing about.
On code reviews...
Posted Sep 19, 2018 16:06 UTC (Wed) by daniel (subscriber, #3181) [Link]
On code reviews...
Posted Sep 19, 2018 16:30 UTC (Wed) by bentley (subscriber, #93468) [Link]
OTOH I'm often hesitant to contribute to open source projects since I've seen enough examples of maintainers saying "this is stupid". I'm sure most big projects won't respond that way to a new contributor, but seen small, one-person projects reject pull requests in a needlessly curt manner.
Code, conflict, and conduct
Posted Sep 19, 2018 6:23 UTC (Wed) by madhatter (subscriber, #4665) [Link]
I take your point about the "laundry lists of misbehavior", but the list in this CoC is pretty short. More to the point, as a fellow white bloke of a certain age, I can't find anything in this list of example unacceptable behaviours that I would be happy to be subjected to. If taking more care that I don't subject anyone else to such things is the price for not being subjected to them myself, I'm happy to pay it.
Code, conflict, and conduct
Posted Sep 19, 2018 9:18 UTC (Wed) by k3ninho (subscriber, #50375) [Link]
K3n.
Code, conflict, and conduct
Posted Sep 19, 2018 16:38 UTC (Wed) by jkingweb (subscriber, #113039) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 6:34 UTC (Wed) by sspans (subscriber, #43276) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 7:13 UTC (Wed) by blackwood (subscriber, #44174) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 9:10 UTC (Wed) by jjstwerff (subscriber, #4082) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 13:14 UTC (Wed) by knan (subscriber, #3940) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 9:01 UTC (Wed) by jpfrancois (subscriber, #65948) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 11:06 UTC (Wed) by kay (subscriber, #1362) [Link]
Its simply more explicit on unwanted behavoir and more "modern".
Compared to other COC, e.g. , https://lwn.net/Articles/765332/, its simple and straightforward.
Ym2C
Code, conflict, and conduct
Posted Sep 19, 2018 13:09 UTC (Wed) by karim (subscriber, #114) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 13:24 UTC (Wed) by ejr (subscriber, #51652) [Link]
Code, conflict, and conduct
Posted Sep 19, 2018 17:25 UTC (Wed) by mtaht (✭ supporter ✭, #11087) [Link]
https://www.amazon.com/Dealers-Lightning-Xerox-PARC-Compu...
For another:
https://www.amazon.com/Dream-Machine-Licklider-Revolution...
Code, conflict, and conduct
Posted Sep 19, 2018 17:25 UTC (Wed) by clemensg (subscriber, #94377) [Link]
Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds