Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC 0098] Community Team #98

Closed
wants to merge 13 commits into from
Closed

Conversation

IreneKnapp
Copy link

@IreneKnapp IreneKnapp commented Aug 3, 2021

This is a proposal for the direction of the NixOS community, by myself and ashkitten. We've been working on this for a while and are very pleased to be publicly presenting it. We welcome public discussion of the proposal's merits and will try our best to respond to comments - have at it!

Edit to add: If you want to jump straight to the RFC text, I believe the best link for that is https://github.com/IreneKnapp/rfcs/blob/community/rfcs/0098-community-team.md (edit again: better link)

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/announcement-community-team-rfc/14388/1

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/announcement-community-team-rfc/14388/2


Our values are as follows.

**Collaboration** — We all want to make the best technologies we can. We work together on our common goals, with open discussion, and without petty infighting or focusing on blame. We are all, always, teaching each other to be better.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't it be better to acknowledge that first we work on figuring out which of our goals are actually common, so that we can work on them together?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The goal isn't to tell people to collaborate if they don't, in fact, have common goals. It's just to talk about what happens when people discover that they do share those goals. This being a technical community, I imagine the vast majority of goals will be technical in nature, so of course it will depend on what everyone is working on.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of work done in the community is about distilling which parts of the goals are common (and how to make non-common goal at least non-conflicting — at least if feasible). As written, the sentence is too easy to misread as trivialising this work, or as claiming that we mostly already do have common goals w.r.t. to Nix*

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, yeah. I need to chew on that, it's quite fair.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps:

**Collaboration** — As we discover common goals with open discussion we work together to make the best technologies we can.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @blaggacao! Glad to see you weighing in here.

The thing is that if you don't have something concrete to anchor it, the idea gets whittled down over time.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remember, part of the function of these values is to help new members of the community team to understand what their job is. There's no better way to do that than to make it part of the job (to "uphold the community values").

New members should be expected to behave in a way respectful of community values. Putting such an expectation of upholding whatever does definitely imply that people like me are not welcome. I definitely value collaboration that goes well despite acknowledging being somewhat alien to the community, not fully sharing the values just respecting the communucation norms, etc. I think the approach you claim here destroys a valuable trait of Nix* community.

Copy link
Contributor

@blaggacao blaggacao Aug 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The thing is that if you don't have something concrete to anchor it, the idea gets whittled down over time.

Well, this majorily assumes a dull enactment body. But with a dull enactment body, the whole RFC is rendered pointless.

If there is dynamic, it can also get "whittled up". It's the dynamic and fair process boundaries that we should most care about.

Not specific outcome boundaries.

Process justice vs outcome justice.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both of you have good thoughts here and I want to acknowledge the feedback.

I do think that "uphold" doesn't mean the same as "go around promoting", at least for ordinary members of the community, and I hope that that helps a bit, @7c6f434c. It is ultimately asking for behavior, not for belief.

I'm sure you've already seen given how much back and forth we've had, but there are several places in the RFC where we did talk about accepting people's differences.

The Nix community recognizes that its members come from many walks of life, and that it is natural for us to disagree on some things. Nonetheless, we are all committed to certain values, to allow us to work together and build awesome technologies.

We strive to be fair and equitable, and to respect the ways people are different.

Both these lines from the statement of values, in my view, absolutely include you in the people who benefit from them. If there's something we could do to make it more explicit for your benefit, please let us know.

@blaggacao Yeah. I'm still thinking about this, and about the private discussion we had on positive vs. negative ideals. I think you make good points and I don't yet know where I stand on them. We'll continue to chew on it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do think that "uphold" doesn't mean the same as "go around promoting", at least for ordinary members of the community, and I hope that that helps a bit, @7c6f434c. It is ultimately asking for behavior, not for belief.

I think «uphold» is noticeably stronger than «act in conformance with», and yes I do think that «minimality» is an actual good value of this project that your document risks damaging.

Basically, in a behaviour-first way, I find it suspicious when you request me to be committed to any values at all. Because this sounds non-localised.


**Communication** — When we encounter problems, we focus on solving them, not on fighting each other. When we disagree on technical subjects we follow appropriate processes to escalate them to technical leadership. We try to avoid and de-escalate personal conflicts, but when they are unavoidable we seek mediation.

**Empathy** — We try to see perspectives other than our own, to treat everyone with kindness and empathy, to move past mistakes. When we criticise each other we try to do so graciously. We respect each other's different backgrounds and viewpoints, and we respect the effort everyone puts into the community.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I find good in Nix* community is exaclty that somehow collaboration somewhat works even when the perception difference is beyond any realistic ability to empathise. If there are still things that are useful to everyone if done together, they cam happen. I think stressing kindness and empathy over respect and keeping in mind sets an expectation of too much common values.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we're saying very similar things, but in different ways. That word "empathy" can mean different things to different people. With that said, I do think that making an attempt to understand should be part of this. It won't always succeed, but it's important to make the effort.

I think it's also important, when reading all these values but this one especially, to remember that this is both something we as community members are both expected to pay attention to and can expect other people to pay attention to when interacting with us. It's an obligation that goes in both directions. To anyone who feels that the empathy aspect of this is burdensome, remember that you will also benefit from it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know I will not benefit from empathy because people are too bad at empathy to perceptions (and while I am normal on major-demographic measurements, I do have relatively weird perceptions w.r.t. interaction with tools, which are of course much more relevant in the context of technical collaboration devoted to tool development).

Understanding and respecting each other's preferences is way more coarse, more intellectual, and so can actually happen (and does happen, and should continue to).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hear that. I'm honestly a very strange person by any objective metric, so I feel like I know where you're coming from, although I don't mean to suggest that that's the same as your experience.

We do talk about respect in here, as you noted, so it seems like what you're asking for is already part of the proposal?

Copy link
Member

@7c6f434c 7c6f434c Aug 3, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My experiences are made much more pleasant by built-in tendency to internally perceive some things with condescension (I am not saying it is a good trait, it is just a comfortable one — I am grateful if people call me out if it leaks into communication, it shouldn't unless things are so broken I don't care anymore — and, I honestly can say this condescension doesn't apply even internally to what specifically you say, here or elsewhere).

I think even the mention of respect here is applied to the wrong thing. I neither respect nor disrespect other people's feelings — these are not a thing that can be respected, internal perceptions are outside moral. I try to understand and respect their resulting preferences, and look for a solution that is an improvement to the status quo under the (represented) sets of preferences, or failing that search for a reasonable trade.

Backgrounds, feelings, viewpoints — these are not really reliably interpersonally communicable. I call the operationally expressible part «preferences» (I can say I prefer solution A to solution B, sometimes I can explain «why» well enough that other people guess correctly which of C and D I prefer), maybe another word should be used. I think this is the part where calling for understanding is not pushing towards monoculture along some axis. Understanding feelings benefits too much from having similar feelings even initially.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, globally, although I don't recall talking to you before (please refresh my memory if I've failed to recognize you from elsewhere).

I agree that it's not possible to define with mathematical precision, but I think the community team's process as we've described it in the "rules vs. principles" section will be able to operationalize it.

I do want to exchange preferences and arguments as well, to the extent that that helps me understand your perspective, include you, accommodate your needs, etc. Actually, writing this I think that "accommodation" is the value that captures what you're asking for. I'd be supportive of adding wording to it that makes that more explicit, if you feel that what's already there isn't enough.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure we had long direct exchanges, we were just participating in the same long threads from time to time. Of course in such setting actually getting a detailed impression of perspectives is not reasonable to expect by some of the more optimistic standards than mine.

But in general what stands behind my argumens is not fully recoverable from the arguments themselves (obviously), and I expect from experience that trying to transfer pieces of perspectives is waste of eveyone involved's time in my case.

I think that negotiating actions in the context of irreconcilable value difference is the closest to empathy that still makes sense. Accomodation currently seems to be about taking into account some needs specific to minorities; acknowledgement of value difference is a more global situation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

… and by now I am pretty convinced that my priors about empathy not working about somewhat dissimilar things has been confirmed in this discussion, too.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's all quite fair. I hear you saying that you've seen nothing to convince you that I'm able to empathize with you, and I accept that criticism. I won't say "I'm sorry", because I think you're just stating something that you think it's better if we both acknowledge, rather than asking for an apology. I think that's pretty reasonable of you and I'm glad we've been able to talk about it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, nobody should be sorry for being on one side of a gap too large to be able to empathise across.

My confirmation that empathy is impossible is basically how some of your replies to arguments are not to the point of the arguments the first time (and then sometimes the second time too), even though it is not any kind of very novel argument. I know you have to had seen similar ones, and your answers reveal you do not understand the viewpoint of the other side. Which is fine, it means we who make the argument word it sloppily and will try to do better — but also shows that one cannot run things on empathy without some kind of preexisting similarity of thinking.

That's why I think empathy as defined in the dictionary just doesn't work reliably enough, pretending that it does just leads to confusion, and so both a better headline word and a slightly different «expanded explanation» are necessary.


**Inclusion** — We work to include everybody, especially people from marginalized backgrounds. We strive to be fair and equitable, and to respect the ways people are different. We reject bigotry in all its forms.

**Accommodation** — When community members face barriers to participation, we accommodate their needs to the best of our ability. This includes, but is not limited to, needs related to disability either physical or mental, to medical issues, to religious observations, to parenting, and to sober lifestyles.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this point acknowledge that an important issue of accomodation is how much preexisting knowledge of «generic OS use» is expected or effectively expected, and how this expectation is communicated? Maybe with an immediate out-of-scoping as an issue that has too much technical weight.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be sure I understand: Are you saying that there should be something about not accommodating people who don't have a minimum level of background knowledge? Or are you saying the opposite, that we should be explicit about not requiring background knowledge?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the object level, I think we currently have need for some background knowledge, and some of the community members are working on removing accidental prerequisites, so to say.

On the value level, I think clearly admitting in advance that we will fail to accomodate people lacking too much compared to the current bar is a necessity if only out of honesty. I guess praising here the efforts of those trying to lower the bar would make it clear that explaining basics to someone clearly but not critically underskilled is not flooding the channel with noise but a valuable effort…

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's a balance here. To whatever extent we have people who are wandering in who are actual children, trying to take their first steps in software development, I absolutely think that any community member who wants to use their own time to help with that should be encouraged to. We have to put some effort into teaching people, or our community will be self-limiting and won't endure.

Of course, on the other end of the scale, if somebody's actual paid job is to develop software, and they're taking advantage of people's good will to do the work for them, I don't think that's a good use of community resources. Flooding the channel is misusing a shared resource, and at some point the community team needs to intervene and stop that.

I don't think we need to say anything concrete about exactly where we draw that line. Our values are things we aspire to, not a statement of things we will or won't do.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then again, I would expect children learning to program to have more background knowledge than someone with a non-STEM education and non-STEM job who distro-hopped as a hobby and took NixOS as a challenge. The balance of considerations in helping a Windows programmer move to Linux can also be complicated.

I think it is fine to say that the level of accomodation in the context of need of preexisting knowledge is out of scope. I think talking about all the reasons to need some accomodation but never acknowledging the existence of the one thing that comes up most is at least a bit strange.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, maybe you should look up the «RFC SC rotation» discussion in this repository, I think you might make some useful observations about the community dynamics in this project specifically.

Copy link
Contributor

@blaggacao blaggacao Aug 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can imagine an RFC that attempted to deal only with the narrower concept of moderation, but it is not this RFC.

I really appreciate you saying that, because I have a feeling that a narrower focus would benefit the cause.

I think it is a valid strategy to shoot a bit over the top to kickstart discussion, though. And hell, it did. 😉

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, maybe you should look up the «RFC SC rotation» discussion in this repository, I think you might make some useful observations about the community dynamics in this project specifically.

@7c6f434c do you mean #43 ? Most of what I get from that discussion is that it was very civil and uncontroversial, which is a good thing. Was that your point?

@blaggacao It's sure been an adventure.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#43

Well, first of all if you want to know how technical leadership works, that's there. Second, if you want to know how process RFCs normally get handled here (get pared down to the very bare bones, then it turns out there is still a lot to carefully polish), you might also be interested in the latest example.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, that may well be a useful example, yes. Thank you.


**Humility** — We acknowledge that everybody has something to learn, that nobody is infallible.

**Inclusion** — We work to include everybody, especially people from marginalized backgrounds. We strive to be fair and equitable, and to respect the ways people are different. We reject bigotry in all its forms.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we include that we value the right of people to choose what to reveal or to conceal about themselves, except possibly a limited amount of facts commonly recognised as highly relevant for governance? (I guess we cannot have a blanket ban on requests for extra information as we have employer-based conflict-of-interest policies)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a huge advocate for privacy in the abstract. I don't think anything in this document is in conflict with privacy concerns. That's generally implicit in online communities, since we could all live anywhere in the world. I could be a sentient AI and you wouldn't know. :)

I think having specific remarks about what will or won't be asked would be a concrete, legalistic rule of exactly the kind that the statement of values is trying to avoid.

The point here is to focus on abstract principles because when I say "rule", there are people who read that and think "game mechanic".

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, one could ask a lot, it's a question of taking «not saying» for an answer immediately…

But also there is a question that if you reveal something about a person who has not revealed it about themselves, there should be a lot of respect to their privacy, and a convincing reason to reveal that. Sure, if you know the real reason someone is not replying, confirming they have a reason not to reply now or «soon» is probably reasonable; revealing the details of their (say) illness is probably not; and there is a judgement call involved in «reasonable».

Still, I think «outing people is very often bad» could get some explicitness.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds quite reasonable. Yeah, we can probably figure out something along those lines.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simpler?

**Inclusion** — We strive to be fair, equitable, and respectful.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think tomberek stated somewhere that those interpretations can live in the comments. I think the main point in "simplifying" (to use @tomberek's word) is to remove some anchors and let the enacting body sail.

This ties back into the discussion of positive vs. negative ideals and anchoring that we've had elsewhere. I'm just leaving this comment as a breadcrumb so people reading along know to go look for that. The current status on it is that you've made good points and we need to take time and think about it.

Copy link
Author

@IreneKnapp IreneKnapp Aug 6, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I'd drop the final sentence. The term "bigotry" should be avoided in the definition of core values as it is often loaded with arbitrary connotations. It is also vague enough that insistence on a matter of fact in a technical argument could potentially be called bigotry. Core values should be expressed in the simplest of terms.

No matter how we word things, it will always be possible for people to use those words to formulate objections that may seem arbitrary and capricious. That's why we have the community team to operationalize the values.

As I've said elsewhere in this thread, simplicity of the wording is nice, but is not a goal for its own sake. These values are important, and the more abstract they are, the harder it is to say what they mean. We're interested in ways to streamline the wording, but in any such suggestion it's important that the discussion be focused on what's taken out and the trade-offs of removing it.

I appreciate that "bigotry" can be a politically charged word, but it has become charged precisely because it accomplishes something important. Any word that has any practical implications could become similarly charged in future. The answer can't be to simply remove any word that's controversial, because then we'd inevitably be pushed into a statement that says nothing.

Edit: I inadvertently left out the end of the previous paragraph.

  • I'd distinguish between "respect[ing] the ways people are different" and "behaving respectfully towards people regardless of the ways they are different". You don't have to respect the attribute "belief in flat earth theory" but you have to behave respectfully towards people even if they are flat earthers. This critique is applicable to several places in this RFC.

I have no objection to respecting that flat earth proponents are sincere in their beliefs. I would be upset to see the Nix community becoming a place for mocking said beliefs. They are not my beliefs; I regard them as unscientific, and I believe the communities focused on them are exploitative, to the detriment of the believers. When it becomes relevant I am willing to say so, and otherwise I refrain from talking about it. In particular, I am uncomfortable using flat earth believers simply to make a rhetorical point (yes, I see the irony in saying this), because I have seen how conspiracy-theory communities often victimize mentally ill people. I think many of these believers are being treated very badly by their movement, and the constant use of them for rhetorical fodder from across the political spectrum compounds that harm.

I believe everything I've just said is consistent both with respecting how people with that belief are different, and with behaving respectfully towards those people. I don't think that asking for respect is asking too much.

I hesitate to change the requirement from "respect" to "respectful behavior" because I don't think it actually narrows anything, and it does seem a bit easier to weaponize for tone-policing. Nothing in this RFC states that people must always remain calm and collected, and that is by design. A requirement to always be calm and collected would be biased towards the status quo, since people who are treated badly by the status quo are always going to have more intense emotions than people who are happier with it. We want to allow the community room to change and grow.

  • "especially people from marginalized backgrounds." I understand and appreciate the intent behind this but I also find it funny that the elaboration of inclusion is led off by a noninclusive sentence which discriminates on the basis of background. I don't think removal of this phrase would decrease the clarity of this value.

To make sure everyone is on the same page, I understand you to be saying that "We work to include everybody, especially people from marginalized backgrounds" is non-inclusive, and that it discriminates on the basis of background.

I am not a legal expert but I think I agree that it discriminates, per the plain meaning of the word. Specifically, it prescribes a higher level of effort on inclusion for people from marginalized backgrounds. That is: the "especially" is not in reference to the degree of inclusion, it's in reference to the amount of work. It does take more work to be inclusive of people from marginalized backgrounds. I consider saying so to be entirely appropriate and morally justified.

I do not, however, agree that the sentence is "non-inclusive". It's simply stating our expectations for how much work it will be to uphold the value of inclusion, and where that work will primarily fall.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No matter how we word things, it will always be possible for people to use those words to formulate objections that may seem arbitrary and capricious. That's why we have the community team to operationalize the values.

I'm struggling to understand your point here. It seems like you're suggesting either that any misunderstanding of the values must be in bad faith (thus we can count on the community team to act in good faith) or that the community team will have an extraordinary ability to interpret the description of the values correctly.

We're interested in ways to streamline the wording, but in any such suggestion it's important that the discussion be focused on what's taken out and the trade-offs of removing it.

Can you elaborate on what meaning is lost by removing the word "bigotry"?

I am uncomfortable using flat earth believers simply to make a rhetorical point

Apologies for bringing in this example. I was unaware of the background.

I believe everything I've just said is consistent both with respecting how people with that belief are different, and with behaving respectfully towards those people.

Seems like you're just adding more weasel words to avoid saying that you "respect the way they are different". The belief is the way they are different. My interpretation of this value is that you have to respect the belief itself.

I hesitate to change the requirement from "respect" to "respectful behavior" because I don't think it actually narrows anything, and it does seem a bit easier to weaponize for tone-policing.

While I share your concerns about tone-policing, the demand for "respect" is easier to weaponize for thought-policing which I find more concerning because it is even more detached from concrete observable behavior.

I am not a legal expert but I think I agree that it discriminates, per the plain meaning of the word. Specifically, it prescribes a higher level of effort on inclusion for people from marginalized backgrounds. That is: the "especially" is not in reference to the degree of inclusion, it's in reference to the amount of work. It does take more work to be inclusive of people from marginalized backgrounds. I consider saying so to be entirely appropriate and morally justified.

Yes, you do understand me and have responded to my objection. (I didn't intend discrimination as a derogatory charge -- it's yet another loaded term.) However the amount of work put into helping different people is at the discretion of those donating their time. Perhaps it has a place in this RFC as a guideline for community team members but I don't think it should be part of the statement of values for the broader community.

What would be the consequences for community members who fail to put more work into including people from marginalized backgrounds?

I could ask the same for many of the other values. I find them far too narrow for such a diverse community. Perhaps they could be split up into a smaller more abstract set of enforceable "community values" and a separate set of "community team values"?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No matter how we word things, it will always be possible for people to use those words to formulate objections that may seem arbitrary and capricious. That's why we have the community team to operationalize the values.

I'm struggling to understand your point here. It seems like you're suggesting either that any misunderstanding of the values must be in bad faith (thus we can count on the community team to act in good faith) or that the community team will have an extraordinary ability to interpret the description of the values correctly.

I was trying to say that there's never going to be perfect wording which expresses what should happen with mechanical precision. You were arguing that the word "bigotry" is "often loaded with arbitrary connotations", but if we tried to deal with ambiguity like that, we'd have rules, not principles. The point of principles is that they provide directional guidance, not that they describe exactly what's going to happen in any specific situation.

We're interested in ways to streamline the wording, but in any such suggestion it's important that the discussion be focused on what's taken out and the trade-offs of removing it.

Can you elaborate on what meaning is lost by removing the word "bigotry"?

It's our intent to condemn conduct which seems to have no motivation other than hatred. For example, any sort of personal attack framed in terms of a community member's race or gender would be covered under "bigotry". This is important because people whose primary goal is to spread hatred are quite good at doing it in ways that don't run afoul of whatever other principles we might formulate.

I believe everything I've just said is consistent both with respecting how people with that belief are different, and with behaving respectfully towards those people.

Seems like you're just adding more weasel words to avoid saying that you "respect the way they are different". The belief is the way they are different. My interpretation of this value is that you have to respect the belief itself.

I respect the way they are different. I respect the belief. However, I disagree with the belief and am aware that it can be dangerous. I'm not sure what else you want me to say.

I hesitate to change the requirement from "respect" to "respectful behavior" because I don't think it actually narrows anything, and it does seem a bit easier to weaponize for tone-policing.

While I share your concerns about tone-policing, the demand for "respect" is easier to weaponize for thought-policing which I find more concerning because it is even more detached from concrete observable behavior.

Once again: These are principles, not rules. If we wanted to frame everything in terms of concrete, observable behavior, it would have looked very different. The "rules vs. principles' section goes into detail on why we did it that way.

What would be the consequences for community members who fail to put more work into including people from marginalized backgrounds?

That depends on the specifics. We anticipate that in the vast majority of cases, all that's needed would be a gentle nudge to do something that they might not have thought of. The "authority" section talks at length about mediating disputes as one of the main activities of the community team. Of course, if somebody is vocally insistent that they do not want to, say, refrain from using racial slurs, banning them is in-scope as a possible recourse that the community team has available.

I could ask the same for many of the other values. I find them far too narrow for such a diverse community. Perhaps they could be split up into a smaller more abstract set of enforceable "community values" and a separate set of "community team values"?

"There will not be a focus on trying to specify exact rules with legalistic precision", per the "rules vs. principles" section. The values are an attempt to describe what it means for the community team to succeed, what kind of culture we want to build. It's stuff for the community team to keep in mind as it does its work, but it's also for the whole community to keep in mind. It's not about punishing people for not working extra to include others, it's a reminder of what we want. If someone does want to put in extra work, having the value to refer to makes it clear that that work is in-scope and appreciated.

To try to reframe the values, or a subset of them, as exact enforcement guidelines would be going down a specific path that we've already opted against. We don't believe that exact enforcement guidelines are what the Nix community needs.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[The "rules vs. principles" discussion has moved to the main thread.]

It's our intent to condemn conduct which seems to have no motivation other than hatred.

Can we use this sentence instead of "bigotry"?

I respect the way they are different. I respect the belief. However, I disagree with the belief and am aware that it can be dangerous. I'm not sure what else you want me to say.

I do not respect the belief. I find many beliefs (which some members of this diverse community must hold) ludicrous. There's no excuse for me to harass community members about their beliefs, but by my reading of the values and what they represent I'm not welcome in the community because I do not "respect the ways people are different".

What would be the consequences for community members who fail to put more work into including people from marginalized backgrounds?

That depends on the specifics. We anticipate that in the vast majority of cases, all that's needed would be a gentle nudge to do something that they might not have thought of. The "authority" section talks at length about mediating disputes as one of the main activities of the community team. Of course, if somebody is vocally insistent that they do not want to, say, refrain from using racial slurs, banning them is in-scope as a possible recourse that the community team has available.

It seems like you're suggesting that "refrain[ing] from using racial slurs" is "put[ting] more work into including people from marginalized backgrounds". I think that could be more appropriately covered by the first phrase "work[ing] to include everybody".

If someone does want to put in extra work, having the value to refer to makes it clear that that work is in-scope and appreciated.

You seem to be acknowledging that this not a value "we are all committed to".


Community social spaces include Disourse, GitHub, and Matrix, as well as any analogous spaces which may exist in the future. It is expected that team members will not act alone when implementing bans, except in situations which are both urgent and exceptional. Like all moderation actions, bans will be publicly disclosed to the community, and explained. Banning somebody from participation on GitHub does prevent them from submitting pull requests; it is thus equivalent to full expulsion from the technical effort which the community is dedicated to.

It is necessary for the team to have the authority to ban, as it is the basis of all the soft power the team wields. However, the team should prefer to use bans only as a last resort. When somebody is excluded from a community, the community has no further power to change their heart, help them grow, or otherwise influence them. Bans should not be performed vindictively or as punishments, but only as necessary actions for the well being of the remaining community members. A ban is a sad occasion, no matter how necessary it may be.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't likely loss of ability to collaborate also be considered a drawback of a ban?

Some communities have policies like starting with temporary bans, and sometimes banning a human for more than a chosen single-digit number of years requires truly exceptional justification and confidence, even by the standards of banning. Should there be any recommendations along these lines?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The goal here is not to make specific rules or recommendations, because anything like that which is specified in a founding document will be taken, by some people, as permission to violate the social norms as long as they're willing to accept the penalty. The proposal is that the community team will make those practical decisions based on context, as needed.

I do agree with you that not being able to collaborate with somebody is also a drawback of a ban. This wording is mostly meant to appeal to anyone who might otherwise make a philosophical defense of the importance of bans, so it's couched in terms that I hope will address those arguments.

The RFC's goal in referencing bans is to bring them on the table as a possible means of resolving conflict, not to specify exactly how to use them.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say that the defence of caution with bans convinces me the other way round by being too weak — really, in this picture the community loses nothing. I do not want the community to try to spread values over the entire world, after all. I don't even want the community to have values, just respectful communication norms, in a sense.

I think if you want to just stress bans are on the table, this could be condensed a lot and would feel better. And no, the authority to ban is not the basis of all soft power the team wields, if it is — we have a big problem. There is also actual respect to the effort invested into the project by the team members (including technical, be it code or documentation or testing).

«
While the team has to have the authority to ban permanently as the last resort, this should be applied only sparingly when less dractic measures are clearly inadequate for preserving well-being of the remaining community members.
»
seems to be enough to put permabans on the table, but also to remind to be careful with them (and to remind that permanence of a ban is not an absolute given).

(Vindictiveness… well, I have seen bans handed out for publically asking moderator A to ban moderator B because of a reasonable-in-context last warning being interpreted as a threat — in a sense you could say that the ensuing ban had a grain of vindictiveness, doesn't even matter if handed out by A or B).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't have social norms if people can violate them, and continue violating them, and face no consequence. In fact, in the absence of the ability to ban, any hypothetical person whose goal was to get everyone fighting each other would have the strategic advantage over the nominal authority. NixOS is a very friendly community due to the leadership of its founders, and I admire and appreciate that, but divisive behavior is widespread in the world at large and we shouldn't imagine we're immune.

That's the sense in which the soft power is based on the hard power. I think we need to be honest with ourselves about that, trying to sugar-coat it would be a mistake.

Separately: I agree with the kind of respect that you're talking about here, and I share that value and I hope that it's implicit in the values we've set forth here. I want to take it as a chance to explain why we didn't list respect as one of these values. "Respect" means a lot of things to a lot of people, and some of those things are good and others of them are oppressive. It's very difficult to draw a distinction with that terminology and have it stick. I do think we captured the various ideas around respect, we just didn't use the word itself, in most places. That was a deliberate choice.

I appreciate you taking the time to write your proposed draft which tightens up the wording and removes the philosophical parts. I promise that we will consider it seriously. In the spirit of acknowledging my own position, I will say that I lean against removing the philosophy on bans because I think it's needed as part of anchoring the discussion in its concrete, real-world meaning. I would love to hear other people's perspectives on that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the sense in which the soft power is based on the hard power. I think we need to be honest with ourselves about that, trying to sugar-coat it would be a mistake.

In reality, I think some people glide to ban without being noticeably affected by anything else, and others negotiate communication modes without anyone considering theoretical possibility of a ban as relevant, and the middle ground is quite rare. Sure, if 6-hour bans for cooling down heated topics come into fashion, it will be another story. Sure, there are exceptions. But I emphasized «all». There is a bit of soft power that comes together with hard power (but not that much). But you need actual soft power too, not just this forced fake, to ever be a mediator.

And the people who were banned were not paying enough attention to be divisive. The only division they sowed was the discussion if they were banned way too late (well, the discussion whether the ban was justified at all would definitely be more divisive…).

If you want philosophy to stay, then I think the justification why bans are needed should mention that some entities are not communicating, they are spamming; and some people insist on a communication style that a supermajority of people find undesirable to allow. Soft power is for those who communicate in good faith, hard power is for cleaning up — so I do not think soft power is relevant in the context of bans.

Then I would stress the community costs, not recognition of failure at preaching, as a reason why long-term bans are something to use as the last resort. Hopefully this menion of long-term shows that brief temporary bans are a different can of worms.

Then, after all that, indeed say that we expect that the efforts of the members of the team (including the efforts before joining the team) have earned them enough soft power to be able to resolve the tensions among real community members in a constructive way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly favor keeping these sorts of things as simple as possible. We can retain the rationale in "comments" or in some other form.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be clear, our goal with the community team is to develop the types of leadership skills that you are referencing. They are important skills, and thus we want to teach them to everyone. As far as I can tell, I don't disagree with anything you're saying, and perhaps the "all" is a bit strong but I think I've clarified why it's there now?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the text is not aiming to be long enough to be an explanation how to do things, I think the current version of the philosophical part is either wrong or uses weird choice of arguments in multiple places. So probably cheaper to drop than to rewrite, but if not drop, I have written above what I think should be recentered.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I do want to come back to these. I think it's closely connected to the points I've been going back and forth with @blaggacao over, elsewhere in this thread, about positive and negative ideals and trusting the community team to do its job. As I've said in several other comments, @ashkitten and I have not yet decided on where we stand on that, but it's got our attention.

* Moderate all places where community members interact, including Discourse, Matrix, and GitHub
* Ensure that collaboration on shared technical goals is possible
* Ensure that the Nix community is a welcoming space for people from marginalized backgrounds
* Do not allow the Nix community to be a place for spreading ideas rooted in fascism or bigotry
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a feeling that fascism is a weirdly narrow specification here…

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How would you broaden it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exactly are you trying to outline here (which you don't also put under bigotry/discrimination)?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By fascism I mean: advocating against democracy and representative government (in society at large, not in NixOS specifically); advocating for an increase in state violence; advocating for the extermination of marginalized groups; things like that.

This is not intended to exclude political ideas in general, whether or not I personally agree with them. It is setting a very narrow goal which I would hope that everyone can agree on, not even the goal to fight facism but simply to not allow the Nix community to be used to promote it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @7c6f434c There are too many things to “not allow” to effectively enumerate. I’m not sure what this adds. Simpler to remove this bullet point.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a personal ethical belief that prohibits me from taking a strong stance on any book I haven't read.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please ban @aaronchall from this RFC? They have repeatedly shown that they are not interested in a constructive discussion, but in escalating things and pushing their own thematic agenda. They have been called out multiple times on this and keep doing it again and again. This is derailing the discussion, and it has to stop.

Actually, I'd be open to locking this RFC again until the feedback has been incorporated. Alternatively, maybe simply close it and re-open a new one so that the discussion may start fresh in the future.

Copy link

@MagicRB MagicRB Feb 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

He may be very vocal about hating communist, but I see no reason to exclude him from the discussion. He does have a point that specifically naming fascism but not any of the other harmful ideologies is not excellent. But my vote isn't worth much in the eyes of those that don't frequent the discord server ig

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pushing their own thematic agenda

I fail to see how this is contrary to the purpose of the RFC process.

Actually, I'd be open to locking this RFC again until the feedback has been incorporated.

I tend to be disappointed by RFC-discussion-locking, but here it would indeed make sense. Locked to be unlocked once new version appears; makes sense when the new version will appear only after some time and is expected to be quite different.

Alternatively, maybe simply close it and re-open a new one so that the discussion may start fresh in the future.

Unsure if it will mean even more repetition of the same things in the parts that will stay similar to the current version. Maybe there is the benefit of getting one more week of discussion until we completely break GitHub UI again; not sure if it is worth ambiguity about what things are parts or not parts of the discussion.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want to remind people that we have a Discourse - https://discourse.nixos.org/ - which is a much better venue than GitHub for just about any sort of long-form discussion. It's not a chat room, it's more like a mailing list. Unlike GitHub, it's possible to actually keep track of what's being said there, even for people who don't want to spend every spare minute at the keyboard.

@IreneKnapp

This comment has been minimized.

@grahamc
Copy link
Member

grahamc commented Aug 3, 2021

Thank you for drafting this RFC, I think this is a very good idea and step to take. 👍

@IreneKnapp

This comment has been minimized.

@MatthewCroughan
Copy link

I disagree with this RFC on the basis that regulating a decentralized community would likely cause more infighting and drama when rules are attempted to be enforced. This is my only commentary, I do not wish to go deeper. I will not comment further even if tagged, this is merely my opinion that I wish to share.

@IreneKnapp
Copy link
Author

Thank you, @MatthewCroughan, for sharing your position. Disagreement is an important form of feedback and we welcome it.

@Kranzes
Copy link
Member

Kranzes commented Aug 3, 2021

I agree with @MatthewCroughan, I think that regulating the Nix community is beyond useless and will cause more issues than it will fix (if there are even any to fix).
The community is already extremely friendly without enforced regulations.
So adding a bunch of policies, moderation, regulations etc will most likely ruin the natural peaceful harmony that is inside the Nix community.

@grahamc
Copy link
Member

grahamc commented Aug 3, 2021

Note the community is already moderated according to a set of values. The change this RFC makes is it writes the values down, adds transparency, and expands/formalizes the team of people who can do the job.

@7c6f434c
Copy link
Member

7c6f434c commented Aug 3, 2021

and expands/formalizes the team of people who can do the job.

I would say «significantly changes the structure of the team …» even.

@grahamc
Copy link
Member

grahamc commented Aug 3, 2021

I would say «significantly changes the structure of the team …» even.

Sure, though I think any change in the direction of formalizing and sharing the work is going to be a significant change of structure.


Team members will manage their own access control lists, adding and removing each other on Discourse, GitHub, Mjolnir (the Matrix bot), and anywhere else that's necessary.

Community social spaces include Disourse, GitHub, and Matrix, as well as any analogous spaces which may exist in the future. It is expected that team members will not act alone when implementing bans, except in situations which are both urgent and exceptional. Like all moderation actions, bans will be publicly disclosed to the community, and explained. Banning somebody from participation on GitHub does prevent them from submitting pull requests; it is thus equivalent to full expulsion from the technical effort which the community is dedicated to.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although the Discord is not "official", it is still a place where hundreds of members of the community are gathered.
It feels strange to leave it aside when trying to increase the safety and well-being of the community.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to add that there is also the Telegram group, which if i remember correctly is unofficial, it is smaller than the Discord, though i still believe that it is significant.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since the discord is not an official nixos social space, we don't feel entitled to try and take control in an official capacity. if the discord wants to become official under the jurisdiction of the community team, that's a separate issue entirely.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What i mean is that the actual Nix/NixOS community is too spread out or decentralized for this change to be worth the effort or make a significant change. It will be too hard to have control over everything.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO, this RFC is less about getting complete control over everything that putting mechanisms in place to guarantee safe spaces.

Copy link
Member

@grahamc grahamc Aug 3, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There isn't a need to be in control of everything. There are certain places where it is meaningful to have values and moderation, both of which we already have today.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The RFC could add wording suggesting that unofficial communities are invited to officially endorse the statement of values. Endorsement of these values I guess could go without getting the formal community team involved in their community.

These communities can further talk with members of the more formal community team if they feel the need. That is, without requiring them to become official.


The Nix community recognizes that its members come from many walks of life, and that it is natural for us to disagree on some things. Nonetheless, we are all committed to certain values, to allow us to work together and build awesome technologies.

Community members are expected to follow these values in their interactions in all official Nix social spaces, including websites, chat rooms, bug threads, and conferences. We have a community team who will set and enforce social norms, to make that easier for everyone. faCommunity members are expected to follow the community team's requests.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like there is a typo in the last sentence: "faCommunity".

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging that. No idea how it slipped through.


**Transparency** — We recognize that the whole community has a stake in decisions. We strive not to be arbitrary, to disclose when important decisions are made, and to make sure there is clear justification.

**Advocacy** — We don't just recite our values, we live by them. We don't simply ignore attacks on our values, we speak up and take action to defend them.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels out of place. I agree with the sentiment, but it seems like a ".... and we mean it!" at the end.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the contrary - I've already cited "Advocacy" elsewhere in this discussion as a justification for why I made another statement. It's the "we speak up" part that's so powerful. If it weren't listed, it would be difficult to make arguments that the values should actually be used.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

advocacy means more than just "... and we mean it!" as you say. without advocacy, we leave room for people to say "well, i take these values to heart" while being a bystander to others going against said values.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

advocacy means more than just "... and we mean it!" as you say. without advocacy, we leave room for people to say "well, i take these values to heart" while being a bystander to others going against said values.

@IreneKnapp is indicating that these values are for everyone. I think we should allow people to be bystanders if they wish. There may be many reasons someone is unable or unwilling to take action and I tdon't hink they should be faulted for it by default. I would not want someone's general interest in Nix to obligate them to action. The community team, though, has additional obligations to take actions and make decisions at certain times, but we should not fault people in the general community who want to be bystanders.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I mean, these are things we strive for. I wouldn't go around telling people "do something!", but having the value listed means that if somebody were objecting to an action that somebody is taking, they would have a way to push back. Without it there's a bias towards inaction. I've seen this happen in practice in corporate settings.

Copy link
Contributor

@blaggacao blaggacao Aug 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Advocacy is also nice for propagation and ultimately cohesion in combination with Communication.

Maybe the twist of the paragraph could better capture the entire spectrum of advocacy that seems to be important here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@blaggacao Would you like to take a shot at writing wording like that? I can't promise to adopt it until I see it, but I would love to see what you're thinking of.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we have to split this RFC into more digestible pieces.

One direction to take is to propose a "Community Moderation Team", very uncontroversially so that the @grahamc & @ryantm model starts to scale better, initially without any value bounds, except "common sense" and "best judgment".

We can, in addition flysheet a value statement, which I predict is taking more than a year to form and mature (we shouldn't be tied to wait that long to scale up moderation -- a more pressing need).

We can furthermore defer some of the expanded goals into a "Community X Team" proposal.

For example, Community Marketing Team already exists and necesarily has a power relationship with the Community Moderation Team to be defined / discovered.

But those won't be the last teams that form.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have to admit that I'm not enthusiastic about splitting things into pieces, and I question whether a longer process would actually lead to better results. I'm happy to participate in that process to the extent that you want to drive it, in parallel, but at least right now I am still hopeful that we can move this RFC forward in something approximating its current scope.

I do think that it's a good idea to define how the team this RFC creates relates to the marketing team, even if it's only a brief statement that the marketing team will handle external-facing things and the two teams will coordinate when possible. Thanks for bringing that up.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a longer process would actually lead to better results

A longer process that actually reaches the point where initially opposed sides agree the text is not perfect but the best trade-off that seems to be achievable definitely leads to better results in terms of avoiding damage to the project, and people agreeing to conform to it as a negotiated bargain with alternatives clearly not better.


**Collaboration** — We all want to make the best technologies we can. We work together on our common goals, with open discussion, and without petty infighting or focusing on blame. We are all, always, teaching each other to be better.

**Communication** — When we encounter problems, we focus on solving them, not on fighting each other. When we disagree on technical subjects we follow appropriate processes to escalate them to technical leadership. We try to avoid and de-escalate personal conflicts, but when they are unavoidable we seek mediation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simpler?

**Communication** — Problems are solved by collaboration and escalated appropriately.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're not trying to be simple for the sake of simplicity. The statement of values is the most important normative part of the document, referenced frequently from elsewhere. I'm aware that the wording of that section is a bit long, but there's a reason for every single word and we're not accepting changes that merely remove substance without capturing the concern somehow.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's exactly because the statement of values is so important that I've been focusing on it. My intention is to capture the concern as simply as possible in order to be clear and make them applicable as guidelines for decision making.

For this, I guess it is a bit strange to elaborate on communication by focusing on problems. Or at least that may not be the ideal word here. How about?

**Communication** — We build technology through discussion, focusing on solving problems, and appropriate escalation of disagreements.

errr... i'm not super pleased with this one, but I'm thinking it's in the right direction, thoughts?

random sidebar: I've found too much agreement to be sometimes as stagnant as too much disagreement is stifling. There's a healthy middle ground somewhere in between.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I do welcome your efforts, I am glad we're on the same page that it matters. I also know that my wording is inelegant. I just wanted to nudge you in the direction of not taking things out just for the sake of shortening it.

Heh, you're right that the current wording may be overly negative. The reality is that conflict happens so we do need to have ways to resolve it; I wouldn't want the statement of values to be written as if for a world where conflict never comes up in the first place.

The biggest thing that your "appropriate escalation of disagreements" fails to capture is that it doesn't describe what escalation is appropriate. The current wording gives specific advice on what channels to go through, breaking it into two cases: With technical issues, escalate to technical leadership. With personal issues, de-escalate (the opposite course of action to technical issues!) when it's possible, and get mediation when it isn't.

Copy link
Contributor

@blaggacao blaggacao Aug 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I second: value statements are to capture values.

Neither rules, nor anything else. Acknowleding disagreememt is fine, because, obviously those values are rooted in a specific context.

In general, the wording is too negative to be really engaging in a broad range of situations, on the other hand it lends very specific meaning to very specific situations.

That level of interpretation and specificity, though, should be handed over entirely to the team and not be part of this document.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The thought process is that, since it's a rotating team without permanent members, the values statement does have to be concrete enough to guide future team members to understand what their job is. I don't want it to be too concrete, and I know the wording in this section is awkward, but I do think that both positive ideals and negative examples need to be part of it.

Copy link
Contributor

@blaggacao blaggacao Aug 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about constituting the team, send it on a mission, but fully entrust it with the task of best judgment?

I'm more and more convinced that this is the right approach.

The current RFC can be read as an attempt to codify a specific set of values over another and I believe future team members are both capable and entrustable to evolve a body of 'case law' out of witch a value statement can emerge at a much later point in time.

@IreneKnapp your statement could almost be read as: "I don't fully trust the enacting body". That's a more fundamental dilema of trust and endowment of trust, which this very document explains and elaborates in quite a positive sense. So it's a bit self-contradictory.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Just so other readers know: This thread of discussion is continuing via chat, any conclusions will be summarized here. I acknowledge the point about my argument exemplifying distrust of the community team, which does sound like a good reason to reconsider.)

@7c6f434c
Copy link
Member

7c6f434c commented Aug 4, 2021

After comparing with the old discourse thread on community manifesto, I wonder if trying to follow good faith interpretation of each other's words if there is one should be mentioned.

@IreneKnapp
Copy link
Author

@7c6f434c Can you point me to that thread so I can be sure we're looking at the same one?

@7c6f434c
Copy link
Member

7c6f434c commented Aug 4, 2021

Hm, it was unlisted for unclear reasons. But it's locked so I guess no harm in linking https://discourse.nixos.org/t/draft-community-manifesto/12748

@IreneKnapp
Copy link
Author

Hm, it was unlisted for unclear reasons. But it's locked so I guess no harm in linking https://discourse.nixos.org/t/draft-community-manifesto/12748

Thanks for that. My first thought is that there are several elements of this which pull against the resolution process we're proposing. It looks like it's broadly a rule about treating people civilly and not disagreeing in public. I've seen very similar wording used in a corporate setting, and in that context it tends to shut down any form of criticism of anything, including obvious bad behavior that would otherwise be against the values it purports to uphold. We don't actually want to tell people they aren't allowed to disagree with each other. Disagreement can be important.


**Accommodation** — When community members face barriers to participation, we accommodate their needs to the best of our ability. This includes, but is not limited to, needs related to disability either physical or mental, to medical issues, to religious observations, to parenting, and to sober lifestyles.

**Transparency** — We recognize that the whole community has a stake in decisions. We strive not to be arbitrary, to disclose when important decisions are made, and to make sure there is clear justification.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

**Transparency** — The whole community has a stake in decisions. We strive to disclose important decisions and their rationale.

I'm not clear on the "whole community has a stake in decisions" part. The point of this RFC is to define a rotating subset of the community to make particular kinds of decisions. Does stake mean "interest in"? or "is affected by"? If the intention is to make it clear that the entire community needs to be informed:

**Transparency** — We strive to disclose important decisions and their rationale to the whole community.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both "interest in" and "is affected by" are intended. This is, once again, a statement of abstract principles, of what the ideal behavior should look like. It is not an attempt to define specific rules about who does what. It's a rubric for evaluating actions after the fact.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I think I left something out: This isn't just for the behavior of the community team, it's for everyone. There are lots of decisions people might make as community members that affect people. The value is just saying that they should talk about it rather than deciding it without consulting or notifying anyone.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are lots of decisions people might make as community members that affect people. The value is just saying that they should talk about it rather than deciding it without consulting or notifying anyone.

Do you mean some reasonably large impact? (because discussing everything that somewhat affects people sounds like too much friction for survival of the project)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean some reasonably large impact? (because discussing everything that somewhat affects people sounds like too much friction for survival of the project)

Yes, exactly. It's up to every community member's judgement to figure out the right balance for the particular situation, and the community team will set social norms around it if it's not working. Things with more impact need to reach a higher bar, but we can't anticipate every possible situation, so we're not trying to. Doing this as a values statement lets us specify what concerns community members should be weighing, without trying to prescribe their conclusions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And I actually object to the notion that in case of Nix* entire community has stake in large-ish decisions. I have zero stake in a large restructuring of Haskell infrastructure, even though it is a large change and impacts a lot of community members.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The goal is to give people visibility into the things they care about, and an opportunity to be involved. Of course we don't want to force anyone to get involved with Haskell infrastructure or any other specific area, we only want to make sure that if they want to, they can.

Copy link
Member

@7c6f434c 7c6f434c Aug 6, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me try…

Transparency — We recognize that people from different parts of the community have a stake in each decision. We recognise that we cannot always know in advance who is impacted. We strive not to be arbitrary, to disclose when important decisions are made, to provide opportunities for feedback, and to make sure there is clear justification in the end.

* Ensure that the Nix community is a welcoming space for people from marginalized backgrounds
* Do not allow the Nix community to be a place for spreading ideas rooted in fascism or bigotry
* Ensure that people in positions of authority within the community, whether technical or otherwise, promote community participation in all things and use their authority in ways that are consistent with the community's values
* Don't be overly driven by the personalities of a small set of people
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this thing you are trying to avoid is exactly the real source of the perception of moderation as done reasonably (because it is done by people already trusted for reasonas unrelated to moderation), so maybe there needs to be some mention of an alternative source of legitimacy among goals?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this thing you are trying to avoid is exactly the real source of the perception of moderation as done reasonably (because it is done by people already trusted for reasonas unrelated to moderation), so maybe there needs to be some mention of an alternative source of legitimacy among goals?

To be clear: You're saying that you believe being driven by the personalities of a small set of people is the source of trust?

I don't agree with that.

I think people's personalities are relevant to trust, and I guess we agree on that part. I think that each member of the community team needs to put in the work to build trust with the community. I think that some of that work should happen before they become part of the team, and how successful they've been should be evaluated as part of adding them to the team. I think that some of that work should happen while they're on the team, and team members should help each other to do it. I also think that building trust is something everyone, in all aspects of their life, should always be trying to do - but I didn't say that part in the document because it's out of scope.

I don't think that trust has to be about it always being the same people. I think we can teach these skills, and we should. If it were always driven by the same people (for example, me and ashkitten), there would always be questions about how well we're balancing the values as set forth in this document against our personal beliefs and flaws. We can't eliminate that concern but I hope that we can at least describe a process which minimizes the opportunity for it, and which shows good faith from how it's structured. The goal is to create something that's bigger than any one person.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that each member of the community team needs to put in the work to build trust with the community

I know a lower bound on the amount of committed effort of Graham or Ryan. And almost everyone knows. And this surely creates trust — and does not really scale to a rotating team.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. The rotating team scales in an entirely different way. It's still based on trust, but the trust isn't coming from quite the same place, although there's overlap. That's by design. What Graham can't do is be everywhere, all the time. The team can't be everywhere, but it can be in more places, and there are other reasons why we think it's both more scalable and more sustainable. Let me try to explain. :)

Because we encourage everyone in the community to think of themselves as potential leaders, and set up community team membership as something to aspire to by making it clear that the community team members are supposed to set the best example they can, we'll always have a talent pool available - we're creating the talent pool as we go.

Because former community team members will still be part of the overall community, we're ensuring that the skills to defuse tense situations will be spread throughout the community. Thus we hope that over time, there will be fewer escalations, and less need for the type of leadership that only long-tenured charismatic figureheads can provide.

(I hope Graham and Ryan don't mind me calling them "long-tenured charismatic figureheads". I've been a bit of one myself, in other places, and I don't mean to say that it's a bad thing. It's only that it's not sustainable. Nobody can keep going forever, we have to always be training our replacements.)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we encourage everyone in the community to think of themselves as potential leaders,

This statement in its own — as it is made — is already repulsive to me. I am here to solve technical issues and help people avoid predictable coordination problems, not to be a leader of whatever.

The team can't be everywhere, but it can be in more places

There are of course more widely respected members with a long track record of effort into developing who do moderation and community positioning work.

It's still based on trust, but the trust isn't coming from quite the same place, although there's overlap.

Trust in long term commitment cannot be established quickly. Wide trust cannot be established quickly.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we encourage everyone in the community to think of themselves as potential leaders,

This statement in its own — as it is made — is already repulsive to me. I am here to solve technical issues and help people avoid predictable coordination problems, not to be a leader of whatever.

I'm happy that we've identified something concrete that we disagree on. It's of course totally fine to disagree. I think it will be helpful for anyone who's reading along trying to form an opinion to know that, yes, the authors of the RFC specifically do want to encourage newcomers and treat everyone as potential leaders, and that that is something that not everyone is on the same page about. I think everyone who's gotten this far in the thread should take a moment to decide for themselves how they feel about whether the Nix community should be explicitly trying to do leadership development.

Please know that of course neither you, nor anyone else, would be forced into a leadership role you didn't want. It is my belief that any software project is also a community. That's unavoidable, whether it's intended or not. I think it makes sense for people who care about community building and to explicitly think about software as a community undertaking, not just as bits and bytes.

Trust in long term commitment cannot be established quickly. Wide trust cannot be established quickly.

Yep! Very much agreed. The first paragraph under "how new members join and leave" speaks to this, in that it implies that people joining the community team should already have some measure of trust, although it's attended to be an attainable bar for people who don't already have some sort of seniority.

New members may apply to join the community team, and existing team members will decide on these applications. The team will evaluate applicants by the length of time they've been part of the Nix community, by their good character, by their demonstrated ability to exercise good judgement, and by their commitment to public service and a willingness to be self-critical. To form the initial team, the founding members will be appointed by Graham at his sole discretion.

https://github.com/IreneKnapp/rfcs/blob/community/rfcs/0098-community-team.md#how-new-members-join-and-leave-the-community-team

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please know that of course neither you, nor anyone else, would be forced into a leadership role you didn't want.

There is a spectrum. Maybe something along the lines: might be invited, always welcome, always invited, expected, forced. I am not sure it is a good idea for a team tasked with moderation to be always-invited; but I also feel this proposal as written tries to push from there to «expected». I confidently do not find this good.

It is my belief that any software project is also a community.

Your proposal is pushing the community ti be a tighter-knit one. I believe this project benefits from as loose a community as feasible while enforcing some set of basic norms of respect.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a spectrum. Maybe something along the lines: might be invited, always welcome, always invited, expected, forced. I am not sure it is a good idea for a team tasked with moderation to be always-invited; but I also feel this proposal as written tries to push from there to «expected». I confidently do not find this good.

The intent is that, as a community, we will try to see the potential in everybody, and the community team will have the responsibility of encouraging that potential. Nobody will be pushed towards leadership that they aren't ready for or have expressed that they don't want; that would be at odds with the value of inclusion.

I think your concern is a pretty fair one but I don't think that our actual goal is anywhere on that linear spectrum you're offering, so I don't know quite how to talk about it in reference to that spectrum.

Your proposal is pushing the community ti be a tighter-knit one. I believe this project benefits from as loose a community as feasible while enforcing some set of basic norms of respect.

Yes, it is pushing the community to be somewhat more tightly-knit than it is presently. I do see that as desirable. At the same time, of course, it will remain a globally distributed loose affiliation of anyone who wants to spend time on it, and all the Nix source repositories will continue to be fully open to the general public. what counts as tight-knit for an open source project is still quite loose in the big picture.

I'm sure you do realize that, and I'm not trying to trivialize your concern, only to explain why we think the trade-off is worth it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think your concern is a pretty fair one but I don't think that our actual goal is anywhere on that linear spectrum you're offering, so I don't know quite how to talk about it in reference to that spectrum.

I think it is «encouraged to» (done reasonably) on the spectrum I described, and I think it is going slightly too far although it has a chance of avoiding doing damage.

I'm sure you do realize that, and I'm not trying to trivialize your concern, only to explain why we think the trade-off is worth it.

I do not see an explanation why somewhat tighter-knit is an improvement specifically for maintaining Nixpkgs in your message.

@IreneKnapp
Copy link
Author

after discussion, we're closing this because it's been idle and the situation on the ground has changed. if it gets revisited at any point that will be done as a new RFC. please feel free to get in touch if you're starting an effort like this and would like to talk about lessons learned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet