Nursing a thriving community

I am relative new to Nix, NixOS, and Nixpkgs. I am amazed by the thrive and the rapid advances and achievement by the community. I started to contribute a little bit to Nixpkgs and after some comments and a commit I have to say that the act of contributing feels a little bit like handling a two-edged sword. How will the community react to my opinion or my statement (or my code)?

I created this post because:

  1. I want to report a discussion about a random pull request that I chose to run nixpkgs-review on, and then also to comment on, and which turned out to explode in my face :). In my opinion I didn’t do anything wrong (Maybe I did? Please let me know.).

  2. I wanted to ask if the way of how so many contributors interact could be improved. For example (?), I could imaging adding some guidelines about respecting the work and opinion of others. Do such guidelines or a formal declaration exist?

Thanks!

EDIT: The links to the pull request have been removed.

6 Likes

Welcome!

Thanks!

There are some words around this in Nixpkgs 23.11 manual | Nix & NixOS . While I’m generally in favor of writing some of those things down, at the same time I don’t think we can expect that to prevent experiences like the one you had there.

2 Likes

Hi @dschrempf, welcome!

I think you didn’t do anything terribly wrong, apart from maybe giving unsolicited advice:

In my opinion a friendlier reply and a reason for your refusal would have been more appropriate

The accusation “harassment” is a very harsh one, though, you may want to think it over.

That said, I feel the other parties in the thread didn’t act very kindly/patiently. There seems to be some stress around @SuperSandro2000’s contributions, and some emotional “you don’t know what you’re talking about so don’t be part of this thread” responses from deviant/V.

All in all, a pretty unpleasant interaction, I hope you won’t take it as an example of how the community usually deals with one another, and that you’ll still feel welcome.

9 Likes

@dschrempf welcome to the nix!

I mean that in the way how it is reflected in everything you say.

And then, there is the title:

Nursing a thriving community

Rather than comforting your feelings, I think all you are actually asking for is in that title.

I have had the same question for a while already, and the answer I come up with circles back like a boomerang to me every time: a lack of organization and leadership.

So, how can we nurse (sic!) a thriving (sic!) community?

Leadership comes from action and to avoid “who are you to decide” you need structure.
The only structure we have currently are RFCs.

The debate linked above is a good example of unclear guidelines as different reviewers are trying to ask for different kind of standards in our community.

There’s a lack of “what is the minimal decency we expect from communication” and a lack of “what is the minimal accepted set of rules to get your contribution merged”.

How do we solve that? Someone has to do the hard work.

11 Likes

Nice resume!

For clarity, as I can’t see it: which hard work do you refer to?

Writing the two missing guidelines I mentioned.

It’s most likely to be the subject of a lot of criticism, but if we eventually commit to them, all future work will have less friction.

1 Like

random formula / unsolicited opinion: :wink:

Speakers being short and listeners being kind.

1 Like

Thank you for your replies. I didn’t expect such feedback, and I am very greatful for it. A draft community manifesto is more than I/we could have hoped for. I will definitely add my thoughts to the neighbor thread. (And be prepared for the response from The Nix :slight_smile:).

5 Likes

It’s unfortunately a common sentiment; I can expand on the why (at least why I feel that way too) in private if you wish. Suffice to say, in this particular case there was already a conflict in the community, that so far hasn’t/couldn’t be resolved, and you inadvertently injected yourself in it.

Obviously, running nixpkgs-review was not the problem; quoting the start of the thread:

SS2k: Can you please use deviant? (in meta.maintainers)
V: No.
dschrempf: In my opinion a friendlier reply and a reason for your refusal would have been more appropriate. @SuperSandro2000 does an incredible job as a reviewer and I agree with him, a maintainer with a one letter nick name is harder to find and to track down than maintainers with longer names.

There are two things going on in there, that IMO caused the thread to devolve:

  1. Dictating to V what’s appropriate communication, rather than addressing the question at hand: this is what’s called tone-policing, and it is a common harassment tactic.
    You presumably didn’t intend harm, but people who get routinely harassed in such a way will find it very difficult to assume good-faith from your part.

  2. There’s a double standard going on: SS2k never provided a reason for their “order,” yet V is the only one being targeted. (One could argue about intent all day, but a message in imperative form, with no justification given, is going to feel like an order for the recipient.)

In terms of immediately-actionable feedback, since you are asking for that and I believe it would be generally helpful to write it down, here’s what I think could have been done better:

  • Practice empathy and communicate in a way that’s mindful of others; the same point could be made like so:

    Why not? A maintainer with a one letter nick name is harder to find and to track down than maintainers with longer names.

    Starting with a question is important, as it acknowledges V has their reasons not to want to change names.

  • Be also mindful of one’s own feelings: what I removed above was expression of outrage on behalf of SS2k, who could have complained himself if he felt slighted.
    Noticing that one is communicating such feelings, and that they aren’t pertinent to the conversation at hand, is necessary to avoid projecting them at others.

  • Furthermore, realising there’s missing context and that one doesn’t need to be involved in the conversation, one could simply not inject themselves in there.

14 Likes

@nicoo has already expanded well on what you could have done better in this situation, but I’d like to add one more thing that I think they missed.

By posting a link to the thread you were concerned with on GitHub, you brought a lot of eyes to it, and that has led to the situation continuing to escalate. If you see an interaction that concerns you, it’s far better to try to bring it discreetly to the attention of a moderator, who can then try to defuse the situation. Linking to it in a discourse thread is like pouring oil on the fire.

Your post didn’t need to link to the specific interaction. A summary of how it made you feel would have accomplished the same things this post has accomplished, but without escalating the personal conflict on display in that thread.

12 Likes

@qyliss You are right. I felt attacked and misunderstood, and I still feel that I have a fair point. However, before a public report, a private one would have been more appropriate.

3 Likes

Does the community have moderators?
If yes, I was completely unaware of that fact… How do we learn about them (where are they mentionned)?

2 Likes

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.

2 Likes

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.

11 Likes

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?

2 Likes

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.

6 Likes

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 https://discourse.nixos.org/t/draft-community-manifesto .

2 Likes

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.

5 Likes