Nursing a thriving community

On GitHub, any committer can moderate AIUI.
On Discourse, look at the About page.
On IRC, /msg ChanServ ACCESS #nixos LIST.

Edited; previously I thought only Owners on GitHub could moderate.


I also feel that giving maintainers some leeway should also be a core value. Standardization in nixpkgs is great. But I have, at times, lost the motivation to contribute, because sometimes PRs are greeted by a lot of nitpicking where the nitpicks really boil down to personal taste.


How can we give comfort to those people and thereby help them preserve the public good faith? (I tried)

I find it problematic if anyone reads an “order” into his review comment. On the basis of good faith (and without further context — which has not been sufficiently provided) there is absolutely no room at all for such interpretation.

In society, the assumption of good faith is essential.

Everything else is a presumption of mens rea and must be condemned.

Why are we throwing around the word harassment so flagrantly?


I would say that PRs are self-contained. Context from previous events are relevant to the individuals, but might not be relevant to the larger discussion in context of the PR; there’s no reason to continue animosity when a conversation could have occurred.

My main push in the matter is this growing divide has apparently been growing over the course of months; and the recent PR is just the most recent “release” of this tension. I just want to prevent a scenario where all involved parties just part ways with nixpkgs suddenly, and the community is smaller for it.

Nixpkgs also has a lack of previous inter-personal issues, and it’s something I don’t think the community is really prepared for. However, I think the discussion around such events is healthy; I will also recognize that it’s a terrible experience for all parties involved.

This seems similar to a workplace dispute. You don’t have to agree with your co-workers, you don’t need to even like your co-workers; but in context of work, you should still consider their opinion in good faith, unless proven otherwise. I see a lot of people perceiving offenses, but I don’t see a lot of deliberate malice by SS2K. However there was name-calling, public embarrassment, and use of “harassment” by others. Such language does escalate the situation from a misunderstanding to inflammatory.

We are all different, and should accept people for being different. SS2K uses a lot of terse language. This may be perceived as “giving an order” or dismissive, but I don’t think that was his intention. We all say things which may not reflect how we truly feel, and can be construed to mean something else (e.g. “I am lazy”). But that’s not really fair.

Most of his comments about “I don’t care” are usually in the context of code, and “I” will give them equal treatment to code. I don’t see him being intentionally exclusionary; but rather the opposite, just poorly worded.

Also, English is not the first language for many contributors, which further compounds poor delivery of communication.


Right, on GitHub and IRC, people with “administrative power” can moderate;
However, they are not explicitly identified as “moderators”, i.e. persons to reach out to for help when something feels wrong.

On the other hand, on Discourse (thanks for pointing it out), and Discord (I just checked), there are people with this dedicated role.

IMHO, this (who are moderating each platforms we interact through) could should be explicited somewhere.
I will mention this in .


I think it would be healthy for the future viability of nixpkgs to come to some consensus around this, and then ratify it through a formatter. And eventually a PR gate to quickly give feedback.

The JS community has largely adopted opinionated linting tools just to remove the tiring discussions around code style and formatting.


I understand that of course nobody is intending to hurt anybody else, but people are still ending up hurt, and the people who have been hurt the most (I do not consider myself to be one of them) seem to be the least likely to feel that things are getting better.

So regardless of intentions, there needs to be recognition that lots of people feel hurt, and a willingness to listen to those people and try to improve. That doesn’t seem to be happening right now. So what do we do about it?


“Military supervisor hat on”: Get all invested parties together and hash it out, moderated by an objective 3rd party (generally another NCO) that can be impartial in the matter. And try to make this a growing experience for everyone.

However, in the military, this would have happened when the issue was first affected the workplace (which would have been months ago), before everyone was more embittered.

But, this is nixpkgs, people live in different timezones and aren’t obligated to get along with anyone. In the military, you don’t choose your coworkers/soldiers/subordinates/supervisors, but you still have to work with them; so there’s a high premium in dealing with personal issues quickly. Also, you’re incentived to get along with people when there’s a possibility to be deployed with them and they are carrying firearms.

EDIT: wording


You’ve mentioned a couple of strategies there, and then explained why they wouldn’t work for Nixpkgs. Does that mean you don’t have any suggestions for things that would get us out of the situation we find ourselves in now, or did I miss something / misread your comment? (I genuinely feel I might have — I hope this doesn’t come off as dismissive.)

1 Like

Seems like most individuals are in Europe. I liked your idea of a jitsi room to create a discussion. However, I’m supposed to be working right now, and not really able to dedicated my self completely to a constructive conversation.

I would like to see this issue resolved in the most diplomatic way possible, and move forward stronger.

1 Like

Thank you for engaging today to the extent that you are able. I think the discussion between the two of us in this thread has been a good example of how we can talk about this in a constructive way.

I’ve spent my whole day at this point trying to move forward with this in the way that feels best to me for the health of the community overall, and I appreciate you trying to do the same.

(I’ll probably take a break now, to try to salvage at least my evening.)


I don’t want to poke at the original discussion, just want to commend all the people in this thread for having a civilized discussion about this topic. Your ability to have opposing views and still respect one another really restores my faith in humanity.


I think «lack» is quite an overstatement. It’s another question that cases with clearly bad faith moves are easier to resolve by banning. There were other cases that were more slow-burn because the issue had a natural technically-defined scope and did not spill all over. We might have indeed avoided any situation where the main risk factor of some work and the reason the work is valueable coincide…


By the way, for a community of individuals, it’s extermely acceptable and utterly purgatory, to go out into a (nonviolent) fistfight once in a while. :innocent:

I’ve seen a few heated technical arguments. But this is the first in my ~30months of nixpkgs involvement seeing social behaviors be the topic of discussion across multiple threads, a prior but lesser incident involved the same parties in a similar fashion. And was the main cause of sandro’s nomination for release manager to be veto’ed.

Then again, my activity dropped off sharply after the 20.09 release; and not as “in-tune” with events as I used to be.

1 Like

I am not sure, maybe the things I am thinking of were slightly more than 30 months ago. They were discussed in a less visible way, though, because they were easier to contain. And here we also had a random event of a third person neither knowing even the easy part of context nor giving up, which exploded the visibility of the discussion, but again, scope made this event likely.

I’ve given this topic more thought and the core value of a diverse community should be replacing judgment with mentorship.

I realize that’s more of an what instead of how/why and it’s really hard to pull off.

There’s a powerful story how not to be a hypocrite, so in an attempt not to be one I contacted Sandro (he’s a really nice person!) and we discussed why explicit guidelines make such a big difference.

Since we are a diverse community (and there’s always room for improvement) it’s important to realize that we have different values, so establishing a human connection is the only way to resolve a conflict.

IOW, sometimes we get impatient because we’re thought that way on the internet, but when conflict arises it’s important to take a step back.

Marshall Rosenberg (workshop) is one of the few people I know that made a framework to help anyone learn it, without judgment. He was also one of the biggest peacemakers in the world.

EDIT: should used above means that I think it’s really important, not that I’m trying to enforce it in any way.


I’m so glad you brought up Marshall Rosenberg! His work on Nonviolent Communication is really fantastic: Nonviolent Communication - Wikipedia

Paraphrasing Wikipedia’s four components of nonviolent communication:

  • Observation : These are facts (what we are seeing, hearing, or touching) as distinct from our evaluation of meaning and significance. NVC discourages static generalizations. Instead, a focus on observations specific to time and context is recommended.

  • Feelings : These are emotions or sensations, free of thought and story. These are to be distinguished from thoughts (e.g., “I feel I didn’t get a fair deal”) and from words colloquially used as feelings but which convey what we think we are (e.g., “inadequate”), how we think others are evaluating us (e.g., “unimportant”), or what we think others are doing to us (e.g., “misunderstood”, “ignored”).

  • Needs : These are universal human needs, as distinct from particular strategies for meeting needs. It is posited that “Everything we do is in service of our needs.”

  • Requests : Requests are distinguished from demands in that one is open to hearing a response of “no” without this triggering an attempt to force the matter.

Each of these points has more content in the Wiki page, and I recommend reading them more carefully. I copied the pieces which communicated what I think is the thrust of it.


While we are pondering conceptual foundations, the (classic) four ears model should not be omitted.

If you are interested, for the sake of brevity, the linked wikipedia article, really best resumes it.