Draft: Community Manifesto

How do we communicate?

We are a community of volunteers. We collaborate in our mutual interests, respecting each other despite occasional difference in values, and default to assuming good faith in our interactions.

We handle each other’s attentive resources with care: Speakers are brief, listeners are patient, and both are considerate.

Everyone is invited to lead by action. We ask informed questions, document our findings, gather consensus, and make pull requests to facilitate change.

And we try to make this a growing experience for everyone.

We strive to establish an environment of psychological safety. Where personal conflicts arise, we resolve them in private, and seek help from moderators if required.

How do we contribute?

We usually propose small changes and see if anyone objects. Everyone is encouraged to review contributions - to correct oversights, ensure consistency and backwards compatibility, and preclude malice. We value sound reasoning that stands on its own merit, no matter who puts it forth.

Reviewers appreciate the effort that goes into pull requests by providing constructive feedback. Contributors appreciate the effort that goes into reviews by keeping in mind our contribution guidelines.

We try to merge obvious improvements quickly, while keeping the code operational.

We make decisions on larger matters by the RFC process.

4 Likes

This thread is an attempt to kickstart the process of writing community guidelines. @blaggacao we talked about this recently and you said “community manifesto”. While my gut reaction was that the term is too bigheaded, it actually describes what we want to have here.

Here is what inspired me, because I could not have put it better:

I would like to try to find succinct, clear, precise and constructive wording for what we roughly agree on. The top post should illustrate this if you compare it with the original quotations. It is a wiki, and you should be able to directly suggest changes by clicking the top right icon.

Please add what you think you perceive as this community’s established values or what they could be if we wanted.

Edit: Discussion so far points at that we may be duplicating much of the generic Discourse community guidelines (which are unfortunately disguised as FAQ). I still see value in deliberately deciding on high-level value statements specific to this community, rather than implicitly accepting those (impeccable) defaults as a baseline for civilized behavior on the Internet.

Edit 2: There is another, more clear cut option to take a stance: Adopt an established code of conduct, such as www.contributor-covenant.org. There you will also find recommendation for procedure (one also needs to orderly enforce rules of civility), and links to relevant discussions and other projects adopting that or similar codes. Currently I’m inclined to write our own distinctive introduction and refer to the Covenant for details.

I have noticed, the first lema (communication decency) puts a pretty constructive constraint on what we can come up for the second (acceptance policy). :wink:

At least if we can make that second answer short brief, we might have landed a double point.

Speakers are short ,

There seems to be a translation issue here, where German kurz is being assumed to mean brief in English, which is not the case. So the above ends up reading as “of short height”.

5 Likes

We are a trigger-happy bunch of irresponsible people. If a PR hurts, you have to poof so in order to prevent it from being auto-merge after a 6 hour grace period.

(slightly humorist suggestion – at one extreme end of the policy that would definitely increase our merge turnover)

A lot of what positively impresses me in Nix* community boils down to «we know we have very different values but we still manage to collaborate when it is in mutual interest». So if we are trying to write down the implicit communication norms of the community, I guess some form of «do not expect people in a conversation to share similar values (or state this would be better)» should be there.

(As an aside, I think persistently violating this is a large part of «how to get banned by in a Nix*-related space»)

From mutual-respect point of view, I guess «be much more careful with statements about people than with statements about code» is a part of the implicit expectations (which I also find positive).

7 Likes
  • The proposal does not address the situation it’s created in response to: both speakers were similarly brief, and then a third-party jumped in.
  • Since there’s typically a one-to-many relationship between speakers and listeners, it seems odd to optimise for the convenience of the former, rather than the safety needs of the later.
  • Rules in general are a bad way to create social norms, as they are by nature game-able.
3 Likes

That may be a misunderstanding, I personally did not create this in response to anything - it was in the air for a while, before and independent of yesterday’s discussion. It was just a prompt to start working.

Being brief and still get your message across is anything but convenient - I can relate to that famous Blaise Pascal quote on writing short letters.

The idea was exactly to optimize for that one-to-many relationship: it’s easy to produce noise everyone has to filter through, and it would be great if everyone tried their best to be respectful with their audience’s capacity to do that. Do you have a suggestion how to put it more clearly?

True, actually I’ve known this article for a while, it’s a classic. Also in response to the other thread:

Agreed. The goal cannot be to prevent anything like that - I don’t think it’s possible or meaningful - but to make explicit the common values we can all refer to, even at the risk of being generic.

These not are supposed to be rules. Rules are, as that post nicely puts it, reactive and game-able. I would rather not include clauses for every single thing we don’t want to go through again. For that reason I adapted the term manifesto, because it should instead communicate what we want to stand for. That’s also why I tried first person plural present tense; imperative would be more terse, and sound a lot like rules.

How can we address the psychological safety aspect? Because you’re right, the current form does not. Thanks for pointing it out.

While it is probably not strong enough, I like the gist of this, but did not manage to fit it in yet:

@7c6f434c I’m not sure what you mean by “or state this would be better”. Does this refer to giving unsolicited advice or the notion that sharing more values would be better?

The second sentence is too vague for me. There is this notion, I forgot who put it that way, of being “soft with people and hard with business”. Is that what you mean? Not sure how to proceed here.

3 Likes
  • The proposal does not address the situation it’s created in response to: both speakers were similarly brief, and then a third-party jumped in.

It actually does. The third party was claiming that someone was too brief, and we could put a high burden of proof on such claims.

  • Since there’s typically a one-to-many relationship between speakers and listeners, it seems odd to optimise for the convenience of the former, rather than the safety needs of the later.

Valuing speakers being brief is for convenience of listeners, and for safety of speakers against expectations to specify everything lest their words get horribly misinterpreted and used against them.

Attacks on safety of passive listeners can often get supermajority support for moderator reaction among committers even without any rules, I believe.

  • Rules in general are a bad way to create social norms, as they are by nature game-able.

I think the discussion is about writing something simple to help people find out faster which of the plausible sets of norms we have converged upon over the past couple of decades.

2 Likes

@7c6f434c I’m not sure what you mean by “or state this would be better”. Does this refer to giving unsolicited advice or the notion that sharing more values would be better?

Statements that it would be better if more values would be shared very often end up looking disrespectful to other people’s values.

The second sentence is too vague for me. There is this notion, I forgot who put it that way, of being “soft with people and hard with business”. Is that what you mean? Not sure how to proceed here.

Pretty similar. There are some contexts where public statements about another person in general feel fully appropriate without being something that person has said about themselves. (I can think of granting some kind of further access, and of recognition of the value of longer-term work of a person). But generally one should be careful with claims about people.

On the other hand, disagreements about code happen I think we in general acknowledge them, and some people will say they do not like some code and that’s OK.

(But we do not all share the same values, so «how such code could be useful to anyone» needs a good justification…)

In another discussion (Nursing a thriving community - #19 by Pamplemousse), was mentioned the fact that it is sometimes necessary to reach out for help to “a moderator”.

Sadly, it is not always obvious who can assume this role, depending on the platform where the “problematic” interaction arise (GitHub, Discourse, IRC, Discord).
IMHO, these individuals need to be clearly identified, and I feel like the manifesto might be a good place to do it.

4 Likes

We are a community of volunteers and stand on the foundations of good faith. We collaborate on mutual interests and may become friends.

(may intentionally emphazised)

I’m trying to convey the same message with a positive twist.

1 Like

Everyone is invited to lead by example. We ask informed questions, document our findings, gather consensus, and make pull requests to facilitate change.

As much as we encourage advancing our cause one Pull Request at a time, we owe each contributor a timely and considerate appreciation of their work.

However, our resources are limited. Therefore, everyone is eligible to claim a priority review for every two (2) reviews given in return on other PRs.

PRs shall be generally merged in a timely manner after two (2) approving reviews and without objections.

I have an impression that anything under such a heading would push the situation towards more uniformity in requirements instead of less uniformity and more impact-dependence. (Not sure how to put it instead)

I find this desirable, right now we have the PR template, which is good, but I think can be expanded. Then enforced through some PR gates. Ideally, the human review would just be, “does this make sense”.

Well, technically enforced rules need specifications, not manifestos.

(Hopefully we will not get anything as … interesting as Black-for-NixOS-tests story in the process)

The «making sense» part should be evaluated vastly differently in different cases, though.

I think you both have a point here, for the flight hight of a manifesto, we should rather empathically communicate certain general values: Like we respect contributions, we akcnowledge, that maintainers are putting their time on the table, but also contributors. We acknowledge that there might be a conflict in this reality. We aspire to resolve that conflict in the most considerate way possible.

This was a bit the spirit of my above suggestion:

1 Like

I added the above suggestion with the intent to inspire discussion around those two questions.

Erm, are we? (In the sense of are we heading in the same direction, and do we need to — or are we just doing our best to share the useful things we have to build for our quite disconnected journeys)

(I maintain my stance that the one thing holding the project together is corporate patronage of Hydra and binary cache — as a CoI declaration, I am not employed by any organisation having an official stance about Nix*, and I only came to know any people employed by such through Nix* community)

3 Likes