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

Add a code of conduct doc. #2454

Merged
merged 1 commit into from
Mar 7, 2016
Merged

Add a code of conduct doc. #2454

merged 1 commit into from
Mar 7, 2016

Conversation

jdalton
Copy link
Contributor

@jdalton jdalton commented Feb 29, 2016

Adding a code of conduct to help avoid issues over moderation and behavior. This will spell out what is and what isn't acceptable to help foster a better environment and prevent infighting on how moderation should be handled.

@jdalton jdalton changed the title Add a code of conduct doc. [ci skip] Add a code of conduct doc. Feb 29, 2016
@annothernother
Copy link

Interesting approach. I am generally bewildered, as an interested onlooker.

So we should really only be interested in this Code of Conduct insomuch as how we might be able to use it to restrain your behavior. By your own indication. Yes? That's why you linked to the report of your misbehavior, correct?

I am concerned by the report of your editing the comments of other users (I didn't even know Github provided that tool). Play the game of saying what you mean and apologizing by editing afterwards if you like. Enforcing edits on others and hiding the evidence is a closed, hamfisted approach guaranteed to stir up trouble.

I will of course be keeping a copy of this comment for comparison.

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

So we should really only be interested in this Code of Conduct insomuch as how we might be able to use it to restrain your behavior. By your own indication. Yes

It's more to iron out what is acceptable and what is not. The link was to give context. Others may have a different bar/criteria for moderation. Having a code of conduct helps set that bar and outlines what is acceptable behavior.

I am concerned by the report of your editing the comments of other users (I didn't even know Github provided that tool). Play the game of saying what you mean and apologizing by editing afterwards if you like.

I tend to side more with stopping the derailing of threads and keeping nonconstructive bits out. Again though a CoC will set the expectations of behavior and conduct. The one I've provided is what I've used for other projects.

@craigmichaelmartin
Copy link
Contributor

It's a sad day that something like this may even be needed, IMHO.

I tend to side more with stopping the derailing of threads and keeping nonconstructive bits out.

My email begs to differ :P

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

It's a sad day that something like this may even be needed, IMHO.

Code of conducts are a good thing.

My email begs to differ :P

It's unfortunate that disagreements and spats happen but they are usually dealt with and corrected in back channel or cleaned up after cooler heads prevail. Public squabbling doesn't serve the good of the project. I think we all participate in these projects to make things better.

@craigmichaelmartin
Copy link
Contributor

Code of conducts are a good thing.

I'm not sure of any great open source project that originated from a code of conduct. Code of conducts always come after a sad day, whether experienced first-hand or not. They are good insofar as there are, sadly, folks who need them.

I think we all participate in these projects to make things better.

No doubt, thank you for your contributions!!

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

I'm not sure of any great open source project that originated from a code of conduct. Code of conducts always come after a sad day, whether experienced first-hand or not.

I guess I disagree. A code of conduct is a win for moderators and the community.
I think @thealphanerd can expand a bit more on that.

@samccone
Copy link

samccone commented Mar 1, 2016

A code of conduct is a win for moderators and the community.

👍

editing peoples comments because of bickering

👎

If a maintainer edited someones comment because it was noise / bickering I would say that would be in violation of the CoC (the one being proposed) and would be terms for removal from the project.

+1 to merge


edit

(just to be extra clear I appreciate everyones time and work that they put into this project, my above comment only aims to support a healthy community on both sides of the proverbial fence here)

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

(just to be extra clear I appreciate everyones time and work that they put into this project, my above comment only aims to support a healthy community on both sides of the proverbial fence here)

I'm cool with it. I think clarification and outlining things is a good thing.

@sebmck
Copy link

sebmck commented Mar 1, 2016

👍 to a code of conduct, discussion on specific scenarios that violate it are probably out of scope for this issue though. Although I do find it pretty ironic that the one pushing for a CoC is the one being accused of violating it.

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

Although I do find it pretty ironic that the one pushing for a CoC is the one being accused of violating it.

It's my hope that it clears things up and prevents issues in the future.

@@ -0,0 +1,41 @@
Contributor Covenant Code of Conduct
Copy link
Collaborator

Choose a reason for hiding this comment

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

what is the source of this code of conduct? Seems different from the one I'm familiar with

Copy link
Contributor Author

Choose a reason for hiding this comment

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

what is the source of this code of conduct?

The last line covers it.

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Ah whoops, missed that. Mind just fixing the formatting

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@MylesBorins
Copy link

It's a sad day that something like this may even be needed, IMHO.

It is really unfortunate you feel that way. I'm not 100% of the situation that has brought this up, but I can give some thoughts based on the experience with a CoC and moderation policy form the Node.js core team.

Having a CoC is a baseline, although it often gets brought up during a time of turmoil. A CoC is a signal, it is a way to let people know that your project cares about protecting individuals from harassment. There really is not a valid reason to not want to protect individuals from harassment.

That being said, a CoC is completely useless without

  • A clear moderation policy
  • Buy in from the collaborators

A clear moderation policy allows collaborators to moderate appropriately and not get stuck bike shedding about process. This has been experienced first hand in the node project when we had a CoC without clear moderation policies, and we spent days figuring out how to deal with a situation while members of our community were being actively harassed.

Our moderation policy can be found here

The code of covenant comes with a paragraph outlining that moderation may happen, but it is not clear about how to moderate, or how to document the process. The node project has a different process for moderating content from a collaborator vs. a non-collaborate, it sounds like being explicit about this might be important for this project.

It is sad that CoC's and moderation policies often come up after an unfortunate instance makes it seem necessary, but that does not mean that having a CoC itself is toxic. Having a clear CoC and moderation guideline will reduce the odds of these types of events happening in the first place.

We use linters to make sure our code fits within the agreed upon standards of a project. We use a CoC to make sure our behavior does as well.

It seems to me like @megawac @akre54 @michaelficarra are the ones mostly merging code ATM... if we do not have buy in from these individuals a CoC is worse than useless.

If anyone has questions about this type of stuff they are not comfortable asking in the open please feel free to DM me. Individuals with power in the world have a duty to empower and protect those who do not.

@annothernother
Copy link

First off, I'm in favor of CoCs generally for most if not all projects.

And to be further clear, I don't believe I have the "full story" (nor am I interested in knowing it) and certainly entertain the notion that multiple parties have taken damaging actions.

One can imagine your (@jdalton) using a code of conduct to excuse editing others' comments. It would be an act of deep political cynicism to use a conflict whose creation is at least partially your responsibility to pass a code of conduct that would allow you greater leeway in resolving conflict in your favor. It would be unfortunate if people got this impression.

Since that is not what's happening here, you're presenting the code of conduct as a means of considering action against yourself or one contributing to conflict in a similar manner as yourself in a future situation. I am reading this correctly, right?

In that case a good way to build the argument for a Code of Conduct would be for you to apply that code to the preceding situation or some abstract of it.

Some person with admin powers uses those powers in a way that makes another contributor feel unwelcome and generates more conflict (as witnessed by your link). The community recourse would be to contact jashkenas and jashkenas would then be enabled by the code of conduct to boot you that admin from further responsibility, or otherwise limit moderation privileges.

Ths is a slight improvement over the various privilege/permission wars I've heard of, in passing, between you and jashkenas, I agree!

It's my hope that it clears things up and prevents issues in the future.

I do not think you have done a very good job explaining why this is your hope with the specifics of this project.

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

First off, I'm in favor of CoCs generally for most if not all projects.

👏

Some person with admin powers uses those powers in a way that makes another contributor feel unwelcome and generates more conflict (as witnessed by your link).

This was a squabble between a couple core contributors and the tweet was one side of that squabble. I don't care to turn this into a TMZ event so rather start the process to help prevent things like this in the future.

A code of conduct and a moderation policy is a good start.

@annothernother
Copy link

You haven't even demonstrated the capacity to work on things like this in the present.

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

You haven't even demonstrated the capacity to work on things like this in the present.

Over the last four years I've contributed bug fixes, api design, triaged issues, started the merge discussions, and have worked with and incorporated several core into semi daily discussions on libs, utils, projects to make things better for developers. And now I'm working on this.

It's not easy for sure and sometimes there's bumps but over the years things trend in a positive direction.

@annothernother
Copy link

Starting a pull request for a CoC does not disavow you of responsibility for the circumstances that you directly linked to as justification for the CoC. If you did not wish to consider them you should not have brought them up.

Your overall actions as a contributor to open source is (was) not up for consideration.

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

Your overall actions as a contributor to open source is (was) not up for consideration.

Oh that was contributions to Underscore. But ok.

Starting a pull request for a CoC does not disavow you of responsibility for the circumstances that you directly linked to as justification for the CoC

I'm fine with folks having a different opinion on how to best moderate. I think we can both agree that outlining a CoC and moderation policy is a good thing.

@annothernother
Copy link

My mistake. I am more or less a bystander.

As a bystander, my impression of your involvement with the underscore project is overwhelmingly that you are someone that stirs up trouble. Certainly you and jashkenas have had your differences. Certainly you are not entirely to blame for dramatic happens.

It does not help your case, in my opinion, to confine your demonstration of authority, when it comes to handling conflict, to the Underscore repository. I preferred thinking of you as resting on your authority as the maintainer and core collaborator of Lo-dash. (Not that I think that helped, either, of course.)

As far I'm concerned, this very topic is an instance of your inability to de-escalate conflict. In fact I think you have no small ability to propagate it, which would be much better handled if you could acknowledge that, and act as a humble human being under the judgment of any code of conduct you might have proposed.

I began this conversation with bewilderment. I don't understand you. Or I understand you perfectly. There's not a lot of ambiguity in this conversation on my end.

You've settled on the CoC as a perfect middle ground that no one can contest, and having claimed it, you can't be attacked. You should perhaps consider that you do damage to the credibility of CoCs when you initiate them in such a strange way.

@jridgewell
Copy link
Collaborator

Guys, can we not start an argument in the PR for a CoC? That's ridiculous.

This a positive change, I'm in favor. @thealphanerd's comment seems particularly relevant:

The node project has a different process for moderating content from a collaborator vs. a non-collaborate, it sounds like being explicit about this might be important for this project.

That'd make this even better.

@annothernother
Copy link

Obviously it is not my place, as a non-contributor and only a long-time user of Underscore and Lodash, to stop a CoC from being instated. I would not want any of my comments to be read as such.

(Nor would my recommendation that Underscore adopt a CoC hold much weight; however, I do recommend that we do.)

@megawac
Copy link
Collaborator

megawac commented Mar 1, 2016

Anyway, I'm 👍 for the COC in general.

The code of covenant comes with a paragraph outlining that moderation may happen, but it is not clear about how to moderate, or how to document the process. The node project has a different process for moderating content from a collaborator vs. a non-collaborate, it sounds like being explicit about this might be important for this project.

I agree due to the circumstances prompting this

Any off topic banter from this point will be removed.


@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

@koglerjs

As a bystander, my impression of your involvement with the underscore project is overwhelmingly that you are someone that stirs up trouble. Certainly you and jashkenas have had your differences. Certainly you are not entirely to blame for dramatic happens.

The daily ins and outs are much more mundane.

It does not help your case, in my opinion, to confine your demonstration of authority to the Underscore repository. I preferred thinking of you as resting on your authority as the maintainer and core collaborator of Lo-dash. (Not that I think that helped, either, of course.)

It's certainly a tricky position to be in. Being 100% isolated is hard and doesn't help folks wanting to make plugins or projects that can leverage either project. It takes a lot of cross-lib collaboration on APIs, behaviors, compat paths. And sometimes lines get blurred, toes get stepped on, & feathers get ruffled, but as I've written earlier I think we all participate in these projects to make things better.

@jridgewell @megawac

This a positive change, I'm in favor. @thealphanerd's comment seems particularly relevant:

I'm 👍 on the moderator policy. Would that be more approp for a separate PR for core to hash out?

Edit
Btw this thread was snipped by moderators (not me, I lack core rights atm) which is ok.

@akre54
Copy link
Collaborator

akre54 commented Mar 1, 2016

@megawac I'm not sure the wisdom of employing the very comment moderation policy we're debating in this thread. None of the removed posts appear to be especially egregious.

Deleting or editing "off topic" or "unconstructive" comments is a really slippery slope. Not least because it's incredibly subjective.

@megawac
Copy link
Collaborator

megawac commented Mar 1, 2016

I suppose, however this thread was getting lengthy at 25 posts in one day and none of the 8 posts I deleted (after providing a warning that posts off topic from the COC topic would be deleted) discussed the topic of the thread. I wanted to avoid further derailment.

Anyway now -- yay or nay for a COC? Any changes to the proposed COC?

@akre54
Copy link
Collaborator

akre54 commented Mar 1, 2016

I think the points raised are important to discuss because they provide context. Particularly for something as nuanced as a Code of Conduct, it's important to get the details right.

A Code of Conduct isn't a magic bullet. We're talking about repeated and flagrant violations of respectful tone and unwillingness to handle disagreements over years.

@jdalton
Copy link
Contributor Author

jdalton commented Mar 1, 2016

A Code of Conduct isn't a magic bullet.

That plus a moderation policy seems like a start though.

We're talking about repeated and flagrant violations of respectful tone and unwillingness to handle disagreements

I think most core will agree you've done your part to stir up trouble. Having a code of conduct will help outline what's accepted and what's not and a moderation policy will help with the moderation of core and users.

@annothernother
Copy link

I suppose, however this thread was getting lengthy at 25 posts in one day and none of the 8 posts I deleted (after providing a warning that posts off topic from the COC topic would be deleted)

Uh, you edited your warning in and I didn't notice until after the comments were suddenly gone.

Github's tools for this are terrible.

I don't mind particularly that my comments were removed.

@MylesBorins
Copy link

but "general decency" is a really, really subjective thing

¯_(ツ)_/¯

Totally is. That being said we've found it is better to trust the judgement of those who we collaborate with. Things are documented, and if we believe someone was being hasty we definitely call them out on it. Then we improve moving forward.

It is also worth mentioning that we do not often opt to delete, especially when things have a troll like tone. We have had more than one instance in the past where we have take the time to talk the individual down, and eventually they self moderated (many hours later). This is to avoid feeding trolls, making people feel marginalized, or potentially increasing the potential for abuse.

edit: I have removed the portion of this comment that was directly engaging and critiquing another person from this thread as I believe it was derailing

@akre54
Copy link
Collaborator

akre54 commented Mar 1, 2016

You do not come across as someone acting in good faith. You are consistently derailing this thread, playing devil's advocate, and generally not offering constructive feedback.

I strongly disagree. With the exception of a few minor squabbles in the middle of the thread (since deleted), I think he's been totally fair given the circumstances. Again, subjective.

What in what he said do you see as derailing?

@MylesBorins
Copy link

@akre54 I'm going to avoid derailing this thread myself... I likely should not have even engaged the way I did. I apologize for not holding myself to a higher standard.

@akre54
Copy link
Collaborator

akre54 commented Mar 1, 2016

Thank you for self-moderating and setting a good example. I am curious to hear your opinion off-thread. Either in Gitter or via email.

@annothernother
Copy link

Edit: At akre54's request below, I have softened the tone in a few places while trying to keep the critical summary intact.

I likely should not have even engaged the way I did

Thank you, sincerely, for publicly indicating as such, it allows me to shorten this comment and keep its combativeness low. The following should be read dispassionately.

I will note that you do not address my criticism of your use of this thread's moderation as an example, and have instead chosen to make an assessment of me generally, which I will of course consider.

I promise this is on topic: the course of events is that JDD suggests bringing in a Code of Conduct, referencing incidences of his reported/alleged misbehavior. He summons @thealphanerd, who, acting initially as a reference for similar communal management, eventually puts on his moderator attitude rather strongly towards me. I don't take it personally, I assure you.

But how amusing is it that I end up on trial, at the close of this topic! I would say that I had played the politics poorly, except I am not really a community member (just an interested party) and cannot really fear my voice being 'marginalized.'

If this is meant to be a demonstration of how the community should function under a Code of Conduct with moderation rules, how successful has it been? You have conveniently ignored the actions of your friend jdalton, @thealphanerd, and the way you swiveled away from considering my argument to evaluating my toxicity as a person (Edit: he has retracted his assessment, which I appreciate, but even deletions, as we've seen, do not erase the course of events) makes me think that maybe every user starts looking like a troublemaker to a moderator, except of course for those that are politically aligned with the moderator.

You are even more of an outsider to this community than I am, so far as I can tell.

My toxicity is direct and impersonal. I know I was pushing @jdalton. I wanted to see what he had to say for himself. If he had been able to say something like "This CoC could have been used to limit some of my recent behavior"--anything approaching willingness to express some public awareness of his own responsibility--I would have been much less aggressive in my inquiry and appreciative that the proposal was in good faith. My line of reasoning had a purpose; for that reason I'm also not at all bothered by the deletion.

I'm still in favor of the CoC on principle and the moderation rules because they would have helped this topic. I think this has been a productive conversation overall. But I don't think they make moderation easy or successful.

This will be my last post; I'll read and consider responses but feel like I've said what I needed to say. Apologies for any remaining stepped-on toes I may have clomped on.

@akre54
Copy link
Collaborator

akre54 commented Mar 1, 2016

Alright @koglerjs that's far enough. He apologized. Please trim your comment down.

@Rayraz
Copy link

Rayraz commented Mar 1, 2016

First off, I'm writing this in an attempt to help move things forward. If this comment does not succeed at that, feel free to delete it.

It seems to me the main reason for Underscore's presence here on GitHub is to evolve and continuously improve the quality of the underscore project. While this thread does not deal with code, it does deal with the quality of this project. As such, it saddens me to see that - imho - most of the conversation has been people trying not to devolve into bickering, but failing.

When a pull request with some code changes is not quite ready to be merged, you don't point at the developer, you point at parts of the code that could use improvement and make your case. Improving community guidelines has equally much to do with evolving and improving the quality of the project as writing cleaner code or better tests.

Let's treat the task at hand the same way this community would treat a code commit and focus on converging towards something that makes underscore better.

I would like to suggest that one of the powers that be draft a few moderation rules and / or propose changes to the CoC if needed? I think a serious and constructive attempt to materialize some concrete rules may help regain some focus here.

@paulfalgout
Copy link
Contributor

I think CONTRIBUTING.md should link to the code of conduct.

@MylesBorins
Copy link

Building on that it might be a good idea to reference it is the Readme

@jdalton
Copy link
Contributor Author

jdalton commented Mar 6, 2016

@megawac @jridgewell
Is this PR good to merge with the idea of follow ups for moderation policy and any cross referencing?

@jridgewell
Copy link
Collaborator

Good with me, but I'll wait for another 👍.

@akre54
Copy link
Collaborator

akre54 commented Mar 7, 2016

So concretely, what are we agreeing to here by merging this?

@jdalton
Copy link
Contributor Author

jdalton commented Mar 7, 2016

So concretely, what are we agreeing to here by merging this?

For this PR that the code of conduct provided is acceptable.

At the time of creating the PR I wasn't aware that moderation policies were a thing so that's something for a follow up PR (but really should be hashed out by core contribs).

@akre54
Copy link
Collaborator

akre54 commented Mar 7, 2016

Right but concretely what does that mean. Most of the language in this change is about attempting to create a safe space and limiting harassment in the project. If we don't have clear definitions of trolling or harassment, what have we gained?

At the time of creating the PR I wasn't aware that moderation policies were a thing

No codified policy, but a generally accepted standard of behavior the core contributors have tried to moderate by. In the past bad behavior has been called out and dealt with on a case-by-case basis. (I believe comment editing / deletion was brought up in 2013). Is the idea to formalize these policies into a document, rather than just calling out bad faith and underhanded comments in the thread itself?

@jdalton
Copy link
Contributor Author

jdalton commented Mar 7, 2016

Right but concretely what does that mean.

I believe @thealphanerd covered that above.

Is the idea to formalize these policies into a document, rather than just calling out bad faith and underhanded comments in the thread itself?

Yes. When I opened the PR I thought the code of conduct could perform double duty. As the thread progressed a moderation policy was mentioned as something more appropriate for outlining core and contributor moderation (Node's was used as a reference). As Underscore core continues to grow (2 added in the last week) and with the lead away at the moment, formalizing these things can help prevent issues before they start.

That's not to say I don't think a code of conduct is needed (they go hand in hand).
I think the PR is merge ready.

@megawac
Copy link
Collaborator

megawac commented Mar 7, 2016

I'll leave it to Adam to handle this PR. He seems to be the one still with reservations. I think we should also include Michael's suggested changes in the COC. I'm indifferent if that is done now or in the future

@jdalton
Copy link
Contributor Author

jdalton commented Mar 7, 2016

I think we should also include Michael's suggested changes in the COC

I think a follow-up commit to tweak to core taste would be appropriate or else it would just be me guessing at the exact wording or phrasing you all would prefer.

@akre54
Copy link
Collaborator

akre54 commented Mar 7, 2016

The code of covenant comes with a paragraph outlining that moderation may happen, but it is not clear about how to moderate, or how to document the process.

Couldn't we just formalize the moderation policy here in this thread like @michaelficarra has done above? I think being explicit that substantively changing the content of your post or others is out of line? Especially when it reframes the debate to look like one that didn't actually take place.

I'm in weak support of this pull request, but I almost feel like this isn't much better than having nothing at all. I'd like to wait for one of the Underscore OGs to weigh in (@jashkenas, @tgriesser, @braddunbar) but I'm fine merging if everyone else is.

@michaelficarra
Copy link
Collaborator

I'm fine with merging this as long as we immediately follow it up with a PR that adds my suggested moderation policy (as a separate document I guess?).

@jdalton
Copy link
Contributor Author

jdalton commented Mar 7, 2016

I'm fine with merging this as long as we immediately follow it up with a PR that adds my suggested moderation policy (as a separate document I guess?).

👍

@braddunbar
Copy link
Collaborator

I'm a 👍 on the pull because I think outlining these things explicitly is a good idea. That said, I'm uncertain that it will be of assistance in the specific scenarios mentioned here. ¯_(ツ)_/¯

@MylesBorins
Copy link

I'm fine with merging this as long as we immediately follow it up with a PR that adds my suggested moderation policy (as a separate document I guess?).

Great idea. Having the moderation policy in a PR is something that can be referenced while it is being fleshed out. Better to not push things through that are not quite ready

@annothernother
Copy link

I was planning on drafting a PR with a moderation policy as a show of good faith and alignment with the CoC, even before this topic reopened. (Probable plan: copy-paste @michaelficarra's proposal and make some minor suggestions on some modifications.) I won't be able to get to it until late tonight and if anyone else wanted to take initiative that's fine by me.

michaelficarra added a commit that referenced this pull request Mar 7, 2016
Add a code of conduct doc.
@michaelficarra michaelficarra merged commit 0e5f994 into jashkenas:master Mar 7, 2016
@annothernother
Copy link

Apologies to those waiting on a moderation policy; I've begun the process but it is more than I can finish tonight.

@michaelficarra
Copy link
Collaborator

@koglerjs Don't worry about it. I've created #2463.

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

Successfully merging this pull request may close these issues.