Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Code of Conduct. #11

Closed
wants to merge 6 commits into from
Closed

Code of Conduct. #11

wants to merge 6 commits into from

Conversation

mikeal
Copy link
Contributor

@mikeal mikeal commented Nov 14, 2014

Governance and contribution policy are now in #13

Code of Conduct is now in #14

I was about to comment on the new threads about core governance when I realized that all of them presume some knowledge of the structure we've adopted and have been using for some time in Node Forward.

Without discussing and being able to link to some kind of ongoing documentation I don't think the conversation threads will be very fruitful so I've gone ahead and written them up in this pull request.

They are adapted from Node Forward's fork where they are sections in the CONTRIBUTING file. Here I've put them in to their own files for clearer separation. All direct references to Node Forward have been removed so that this can be adopted by any project without confusion.

The premise is simple: the project employs a simple governance structure that can be the "final word" on contentious issues and, most importantly, owns the contribution policy. The contribution policy is intended to be somewhat fluid and adapt over time to the needs of the project. The current one is geared heavily towards growing the contributor base of the project because that's the biggest problem. You can imagine that after the project grows a large cohort of contributors this policy would change to adapt the challenges of distributing work among a larger contributor base.

This separation between contributor and TC member is a necessary one. Liberalizing the contribution policy has been an effective tool at growing new contributors in Node Forward and in other projects that have been employing similar policies for some time. Of course, contributors who spend a fair amount of time in the project and want to take on additional responsibilities will find themselves on the TC but the direct correlation of commit rights to being part of a sometimes boring and bureaucratic process of managing the project at a higher level is an unnecessary barrier to growing contributors.

@othiym23
Copy link

The Code of Conduct is good, although I would like to see more specific language about enforcement, scope that is governed by the CoC, and who to contact with concerns or questions. I understand the need for wiggle room, but if you look at npm's CoC you'll see that it leaves room for interpretation while making pretty clear the who, what, and how of using it day to day.

For significant changes wait a full 48 hours (72 hours if it spans a weekend) before merging so that active contributors who are distributed throughout the world have a chance to weigh in.

If the TC themselves came up with this idea of time limits, then I'm fine with it, but that's a pretty short timeframe given how busy everyone is and how widely distributed the TC is. Having a consistent release cadence or a regularly scheduled, standing triage meeting are other ways to help people feel like their issues aren't being dropped on the floor.

TC members nominate contributors to be added to the TC which the TC will vote on. They can nominate any individual during any meeting.

I thought @Danese's discussion of how Apache SF voting works with regard to personnel changes to be compelling, and would like to see others discuss whether they think that's applicable to Node. Having a transparent path to and process for gaining membership of the TC is critical to renewing the project.

The TC can change its governance model if they deem it necessary. The current governance rules are:

  • Consensus Seeking
  • Motions with voting when consensus cannot be reached.
  • Quorum of 2/3 (66%), simple definite majority wins.
  • No more than 1/3 (34%) of the TC membership can be affiliated with the same employer.

I think this is a fantastic process.

I also think the current TC membership is a good start, although I am surprised to not see @chrisdickinson or @misterdjules on that list, as both have been very active contributors to Node recently.

@max-mapper
Copy link

While we're at it can we add a rule about making it okay to ban anonymous trolls from GitHub issues?

@othiym23
Copy link

@gramergrater I disagree; if Node had had a Code of Conduct in place from the beginning, it would have eliminated a lot of melodrama, and would have attracted a broader base of contributors. Creating a cordial, harrassment-free collaborative environment is crucial to maintaining a healthy OSS project.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

@gramergrater the CoC is long overdue and is part of the CONTRIBUTING documentation in Node Forward. Accepting the CoC is part of contributing, if you don't accept the CoC then you actually can't be an active contributor :)

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

although I would like to see more specific language about enforcement

Agreed. There isn't a huge amount of prior art for project based CoC's so we're sort of on our own to come up with this language. Would you mind drafting it @othiym23?

pretty short timeframe given how busy everyone is and how widely distributed the TC is

most patches do not require the full TC to approve. it's expected that contributors are watching for PR's in areas they tend to understand and manage and this time frame (which originally was shorter and was actually extended at the request of the TC) is there to ensure they have a chance to chime in one the ones they care about.

I am surprised to not see @chrisdickinson or @misterdjules on that list

The current list is adapted from the historic committer list. Note that under the new contribution policy many people will full commit access are not on the TC. It is my understanding that @chrisdickinson and @misterdjules fall under some sort of "apprentice" designation which may or may not have write access to the repository (I'm not sure and the documentation around this designation is unclear). Regardless, under the new contribution policy they would certainly have commit access, and there are a few other people in Node Forward who have also gained commit access but are not on the TC.

I thought @Danese's discussion of how Apache SF voting works with regard to personnel changes to be compelling

I actually disagree but I've address that at length here #6 (comment)

Would love to get more of your input on that particular point in that thread.

@othiym23
Copy link

a CoC itself doesn't make a "harrassment-free collaborative environment"

I agree. This is why I'm asking for additional clarity around the Node CoC – it should never be surprising when decisions are made about project governance due to the CoC, and there should be a low-intensity / low-heat way to resolve conflicts related to the CoC before they turn into actual problems.

I'm concerned both about growing the Node community and keeping the community we already have as enjoyable and healthy as possible, and in my experience (and in my discussions with other members of the community), codes of conduct (and their absence) have played an important role.

@othiym23
Copy link

Would you mind drafting it @othiym23?

I can take a swing at adapting what we've got for npm for Node, and maybe if we have some time and money before the end of the year we can have @ashedryden take a look over it.

most patches do not require the full TC to approve. it's expected that contributors are watching for PR's in areas they tend to understand and manage and this time frame (which originally was shorter and was actually extended at the request of the TC) is there to ensure they have a chance to chime in one the ones they care about.

I am probably defensive about this because I am so far behind on my work for npm, but I do think the idea of having explicit time windows around this seems a little arbitrary and potentially limiting. Most of the time, if it's something that @indutny or @trevnorris know about, they'll get to it almost immediately, and it's very rare that things get neglected unless they're genuinely weird or complicated. This isn't a huge sticking point to me, but it did stick out as possibly unnecessary.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

@gramergrater if you disagree with the language or enforcement procedures (or lack there of) in the CoC then please spell them out in a constructive way we can use to improve the document. While you may feel that simply having it is improper that point is moot since it was already adopted by the Node Forward TC who did find it relevant and is a part of the overall governance and contribution strategy which is being presented here. I also think you miss-understood my statement, the CoC covers the kind of conduct that is not allowed, and that is relevant to contributing. For instance, pull requests that contain sexist statements in comments or commit logs would not be accepted. That is what I mean by "if you can't accept the CoC you can't contribute." If your behavior falls outside of the realm of acceptable conduct you won't be allowed to contribute, plain and simple, and this is what lays that out. You may have internalized these principals and would never even consider engaging in this kind of conduct, but people from underrepresented groups have an aversion to participating in projects that don't have clear conduct guidelines.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

@othiym23 I'm confused. Is the issue that you think the window is not long enough or that it is too long and will make people feel like they are being ignored? Perhaps we should pull in @rvagg as levelup has had a 24 hour policy for some time (and in reality it's more like 72 hours at least).

@othiym23
Copy link

Is the issue that you think the window is not long enough or that it is too long and will make people feel like they are being ignored?

I'm sorry, I think my response was conflating my understanding of what problem the window is intended to solve with my feelings about it. I think putting a limit on turnaround time either way is a little weird, but mostly I'm saying the window probably isn't long enough for the kind of exceptional patches that would justify it being there in the first place.

Maybe it's useful to say, "don't complain until x days have elapsed", but I doubt it. On the other hand, sometimes a patch will look like an easy merge to the submitter and won't be (maybe it explodes on Linux or Windows, maybe it causes non-deterministic test failures), and to avoid having it turn into a time suck for a team member, it'll be necessary to shelve working on it for a while. I see examples of this in Node all the time.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

@othiym23 I think I get what you're saying now. The window isn't intended to be a ticking clock on how long the review process is likely to take. Big changes could be talked about for weeks. It's more like "If nobody says they have an issue with this patch in X amount of time I can merge it." You have to keep in mind that this is a much more liberal contribution policy and it is expected that far more people will have write access so this rule is there as a guideline for how long you need to wait for input. If you get negative input you'll need to resolve that before landing, regardless of any initial window for input.

This is all to say "we should make the language in the contribution policy much clearer." :)

@gramergrater
Copy link

@mikeal alright, that makes sense except for the part about "underrepresented groups". That's a weasel-worded phrase and from a pragmatic standpoint, I wonder if the Venn diagram of those groups and contributors shows overlap. This might seem self-defeating as you stated they have an aversion to projects without a CoC, but it helps to put into perspective why the CoC was written the way it is.

Thanks for sharing your thoughts, it is good to have this debate and get input from the community imho.

Next day edit: My apologies to those who feel this post is unsettling or even offensive. Your comments on Twitter have not gone unnoticed. However, I can't respond on other social networks so I'm afraid that this humble apology will have to do.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

@gramergrater if it helps at all I know of one woman who would already be an active contributor but has held off because of prior conduct issues and the fact that, even after those issues happened, the project didn't adopt a CoC. So yes, there are contributors who would be contributing and aren't because we don't have this.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 14, 2014

@gramergrater we can speculate all day about how typical her experience is but at the end of the day I don't get to decide what makes women feel safe in the project and her experience is far more relevant than mine or other men's experiences and their opinions or speculations about women's experiences.

I don't find your Westboro strawman compelling at all. The Code of Conduct governs conduct not beliefs. It sets the foundation for a safe space where people who may have dramatically opposing personal beliefs and backgrounds to contribute without fear that they will be discriminated against or made to feel uncomfortable or unwelcome within the context of the project and conduct within that project.

@gramergrater
Copy link

@mikeal of course those experience aren't relevant, they are outside of the scope of the group (that is, female contributors). What is relevant, however, is whether there's one person crying foul or if the present community is actively engaging in gender discrimination (or other kinds thereof). That falls under conduct, right? To me, it doesn't matter what the discrimination is based upon. That's why I mentioned westboro. Sorry if I worded this too confusingly, I think we're mostly on the same page here.


* We are committed to providing a friendly, safe and welcoming environment for
all, regardless of gender, sexual orientation, disability, ethnicity, religion,
or similar personal characteristic.

Choose a reason for hiding this comment

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

suggestion: s/similar personal characteristic/any other trait/

Copy link
Contributor Author

Choose a reason for hiding this comment

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

"any other" is a bit open ended and actually leans more towards the kinds of personal belief issues you previously were concerned with.

Choose a reason for hiding this comment

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

Well that's an interesting viewpoint, this is about extending inclusiveness to everyone. Is it not the goal to reach out as far as possible? I chose the most generic wording I could come up with because of that.

@andrewlow
Copy link

+1

Making the code (and community) inclusive and diverse should be part of the DNA of this project. This should cover individuals and corporations alike.

@Fishrock123
Copy link

+1 for CoCs and openly defined governance models.

why we need a CoC: https://medium.com/node-js-javascript/codes-of-conduct-82ab2d88112d

@Albert-IV
Copy link

+1 for CoC and +1 for @maxogden's suggestion.

@k1tm
Copy link

k1tm commented Nov 14, 2014

+1 for CoC - let's also add consideration for geological diversity. The code needs to be set in context of a project with world wide scope and not all participants will be as skilled in a common language. Patience is required. We want a community that fosters inclusion and out reach, and a membership that can make that happen globally.

@isaacs
Copy link

isaacs commented Nov 14, 2014

@k1tm I think you mean "geographic" rather than "geological" diversity?

@othiym23 Part of the issue with the "who what and how" here is that we don't have an organizational structure ready and willing to take this on. In npm's case, it was easy: as npm, Inc., we could just say "Yeah, we're doing that." I doubt Joyent is willing to take this on (@shammond2000 might be able to effect change there, but at least as of 2013, that was a non-starter for Joyent legal), and there isn't any foundation or other legal entity that would do this.

Lacking that, we could say that the TC is responsible for enforcing the policy (including appointing representatives to do so), and leave it at that. This would work if the scope of the CoC is limited to the project and various project-related channels (IRC, github, etc.) then it would probably be fine. NodeConf has its own CoC, after all. npm's CoC governs an entire social network, so it had to be a bit more robust.

@isaacs
Copy link

isaacs commented Nov 14, 2014

@othiym23 Yeah, the 48/72 hours turnaround time was chosen by the TC ourselves. We want to be biased towards action, and git makes it easy to revert later anyway if something turns out to be controversial. Once npm has a dozen people wanting to help land patches, it'll probably be less of a scary proposition :)

@CodeFoodPixels
Copy link

@malandrew I am overweight and have never felt marginalised by the open source community. Stop trying to make an issue out of something that isn't an issue. There are many cases of people being marginalised based on gender, race and sexuality.

@ghost
Copy link

ghost commented Nov 15, 2014

@malandrew @grumble

If what's required for you to feel safe is the placement of an unreasonably high burden of proof on
victims of assault and harassment (in other words making them feel un​safe), then you shouldn't be
surprised that you're meeting resistance.

Exactly.

@ashedryden
Copy link

This has quickly devolved into the kind of discussion a lot of marginalized people, myself included, are not going to want to be in.

I appreciate that the community wants to discuss these things out in the open and give everyone a chance to speak their mind on the issue, but I worry that there's a lot of rules lawyering and posturing happening that is not only not productive, but stressing out marginalized people who are watching this or are included on this issue.

Perhaps it's best to step back and figure out:

  • What the goals of this discussion are
  • What things are not up for debate

@othiym23
Copy link

See #14. It includes only the Code of Conduct, is substantially expanded in the interests of clarity and completeness, and incorporates feedback from this thread. If @mikeal wants to pull my changes into this thread (or replace this PR with mine), to keep this the focused discussion of the Code of Conduct, I am happy to close my PR in favor of this one.

@brianloveswords
Copy link

@othiym23 I'm more in favor of shutting down this thread and starting a new one over there (if a new thread is even necessary).

@brianloveswords
Copy link

(sorry for double reply)

I think restarting a focused discussion in #14 will help clear the slate and let us do what @ashedryden brought up, have clear goals about the discussion and outline what's not up for debate.

@othiym23
Copy link

While I'm here: I find the characterization of Adria Richards as a "bully" offensive. She has worked hard and long, in the face of considerable, sustained harassment, to confront and resolve issues important to women in OSS. I have never seen her act in bad faith, nor have I seen evidence that persuades me that she has acted in bad faith. If you are going to point to bullying against men in OSS communities, please at least link to specific claims.

@andrewdeandrade
Copy link

@othiym23
Copy link

@ashedryden I agree, and I also would love your feedback on the changes I have made in #14.

@ashedryden
Copy link

@malandrew please stop

@mikeal
Copy link
Contributor Author

mikeal commented Nov 15, 2014

@malandrew

I can identify two things are you asking for in order to feel safe:

  • A commitment or "promise" that there won't be public outrage and consequences for the accused perpetrators of harassment on social media without some form of "due process"
  • That the intent of actions found to be offensive be established in order for any "due process" to occur.

The problem with your first request is that it's simply impossible to commit to. No individual here possesses this kind of control. Conversely, you cannot promise that a 14-year on pick-your-number-chan won't find this thread and dox all the women who have participated.

The only thing we can do is create a process for reporting offenses that makes those most likely to experience harassment feel safe enough to report them and provide confidence that corrective action will be taken. That would have the effect of less people asking for corrective measures from the public. Creating a burdensome process or having no process at all will surely increase the number of people seeking justice elsewhere.

Your second request implicitly places a very high burden of proof on those effected by offensive actions. We already know that this would greatly decrease the number of reported offenses and decrease the participation of marginalized people in open source. The price of this is simply too high and it negatively impacts people who are already marginalized. If you have a constructive alternative that does not continue to marginalize these underrepresented groups then you should present it. If instead you continue to preach about the injustice imposed on the privileged then you're effectively supporting the continuation of an existing hegemony and imbalances of power and privilege.

@blakmatrix
Copy link

I find it very inspiring to see everyone's passionate responses to this
thread, as Daniel Shaw has pointed out It has been a rich discussion indeed.

Part of what makes the node community so great is that it embodies the
values and sentiments of many of those using and contributing to it.

We all share in the human experience, but we don't share every human
experience. The difficulty of endeavors such as these is that we want to
embody the core of the community we have and will want, as well as what we
individually want, however, logistically it's near impossible to mutually
inclusive of every community member to put into a consice document.

Civilizations and communities are rarely built overnight. No one knows
everything the other knows and has experienced, but we can strive to get
there through effective communication.

This is a very difficult task, not only are the leaders of our community
trying to adress issues that for a while have been pain points, but they
are also trying to create us a community we will be proud and passionate
about for years to come.

Communicating is good, speaking ones mind is great, but offering solutions
and working to progress is the best for building a community everyone will
want to be a part of--more than ever we need to be showing eachother our
best.

We need to work together, communicate effectively, and move forward
by offeing solutions if we are to manage and be proud of a community for
years to come.

Farrin A. Reid
http://www.linkedin.com/in/farrinreid

@mikeal
Copy link
Contributor Author

mikeal commented Nov 15, 2014

@othiym23 I'll close this thread and point at your new PR. There's actual documentation there to be considered which will hopefully have the effect of clearing out some of the less constructive threads here.

@mikeal mikeal closed this Nov 15, 2014
@aredridel
Copy link

👍

@jasonrhodes
Copy link

This seems like a natural place to close+lock this thread before anyone else can accidentally or otherwise light another match.

Also: as this discussion unfolds in other threads, I'm really interested in what @ashedryden mentioned about listing out the things that are non-negotiable here, which sounds incredibly helpful. I just don't know how that assertion works, not sure if people have suggestions there?

@brianloveswords
Copy link

@mikeal 👏 👏, might make sense to also lock it to contributors only so it doesn't keep spiraling out of control?

@andrewdeandrade
Copy link

https://twitter.com/_danilo/status/533744712533151744
https://twitter.com/ashedryden/status/533747995901460480
I'm not going to even bother linking to a single tweet on these:
https://twitter.com/izs
https://twitter.com/rockbot

Seriously @isaacs ? Like @bnoordhuis said of @mikeal's tweets:

Your Twitter comment is not becoming of someone who is involved with the TC.

We were having a discussion here on github in a pull request and people had to go lower the level of discourse by broadcasting all this stuff to the world on twitter. Now I'm officially an asshole everywhere on twitter right now because I had a contrarian view. Thanks for making me feel safe.

This is exactly what I am talking about. I have literally emailed not a soul nor tweeted about this since I joined this discussion to share my feelings. Yet many of you felt it necessary to include the entire twittersphere and collude on what to say here.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 15, 2014

@brianloveswords I'm not an admin :( but @isaacs can.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 15, 2014

I have literally emailed not a soul nor tweeted about this since I joined this discussion to share my feelings.

You've sent @isaacs and I 3 emails today.

@CodeFoodPixels
Copy link

@malandrew It's a public discussion, if people feel the want or need to include others then it's sort of the whole point. Whether it's by twitter, facebook, email or word of mouth doesn't matter.

@andrewdeandrade
Copy link

FWIW, I'd like to publicly apologize for my use of the word lynch. I'm used to using that word in Portuguese as well as English and that word does not have the same racial connotations that is does in English.

@andrewdeandrade
Copy link

You've sent @isaacs and I 3 emails today.

Yes, because I assumed both of you are community leaders here. I guess I emailed the wrong people. Who was I supposed to email when I feel the CoC has been breached? I'm trying to do the right thing and contact the appropriate people because something was said which I felt was totally offensive.

@mikeal
Copy link
Contributor Author

mikeal commented Nov 15, 2014

@malandrew I won't post the contents of your email publicly without your consent but I will say that the emails don't ask for any CoC enforcement and my assumption was that you were just messaging us privately in order to let us know your opinion without posting it publicly. If you want some kind of enforcement please reply again requesting it and include @othiym23 since he is the only one who knows the enforcement procedures as he is in the middle of drafting them.

@andrewdeandrade
Copy link

@mikeal Sorry if I was unclear. Yes, I'm asking for CoC enforcement. No, I don't want them to be public. I would like an apology. I'll reply back with Forrest on the email.

@marclove
Copy link

Sad to see once again the dominate and privileged voices get all the attention. This thread is a perfect example of what a healthy community should squash way before it gets to this point. An effort to communicate that the community is welcoming to a large variety of people, has devolved into delivering the message that it is not that at all.

@andrewdeandrade
Copy link

@joyent joyent locked and limited conversation to collaborators Nov 15, 2014
@isaacs
Copy link

isaacs commented Nov 16, 2014

@malandrew I see that the issue is locked now, and a lot has happened since I last got caught up. I just wanted to respond to this bit and ensure that I was commenting in good faith:

Using the word equivocating suggests that it is assumed that my comments are not coming from a good and compassionate place

I apologize for my choice of words there. I only meant to call out that the same word was being used to refer to very different things, and those different concepts were incorrectly being treated equally. I did not mean to imply that this mistake was anything more than a mistake, or that it was even apparent to you.

As evidenced by my use of the word "equivocate" in a technical philosophical sense of "improperly using a word to mean two different things and blurring their differences", when I ought to have expected that it would be interpreted in the more colloquial sense of "intentionally attempting to blur meaning or avoid commitment", I hope that it is clear that I understand that such mistakes can be made innocently.

There was no accusation intended, and I will endeavor to be more careful next time.

isaacs added a commit to isaacs/nodejs-advisory-board that referenced this pull request Nov 25, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.