Closed rachelnicole closed 7 years ago
To be clear, I want this to be a discussion that's not limited to just members of the CommComm. Since we are here to support the community, I want to hear from everyone.
Thanks Rachel for opening this issue. I’d add are also hear to represent the community, including the members who left Node core because of the actions for Rod and others in the past. We hear you.
Do Meeting Notes or a recording of the TSC vote exist? Is it known who voted what and who abstained?
Do Meeting Notes or a recording of the TSC vote exist? Is it known who voted what and who abstained?
The vote was a confidential vote. I don't know who voted for what, and I'm not sure anyone does given the tool we used.
@gr2m in the issue posted by James, it says
There are 13 members of the TSC. 10 members voted, two abstained, and Rod did not participate.
The vote came down 60% against removing Rod from the TSC and 60% against asking Rod to voluntarily resign.
Which basically just says to me, and the ENTIRE community, that the majority of the people making the technical decisions don't care about anyone involved in the project but themselves. This will 100% hurt the Node community.
It's very difficult to see this sort of stuff happen: there are those of us who have tried to do the work in the past to prevent this from happening, and people like Rod were directly responsible for preventing those efforts from taking root. There is a subset of the Node community, now growing in number as others leave, who believe "meritocracy" is the way to run things, and that harassment and CoC violations are justified as long as someone has enough technical contributions.
As far as concrete stuff goes: it's important for Node.js to have a public, fair, and well-defined enforcement process, and for any internal leadership organizations to follow that as closely as possible. It should be as mechanical as possible. Folks that openly advocate against CoC complain that they can be used to ban random people for slip-ups but what we're seeing is that when you lack an enforcement process, what actually happens is that the people you like get away with it, and the people you don't get banhammered at a moment's notice. For an example of my own attempts at building a CoC with an enforcement process focused around empathy and growth (even/especially for folks who everstep it bounds!), see the WeAllJS Code of Conduct.
This is pushing contributors away. I can say that as far as any communities I'm in, Node.js feels like an unsafe project to participate in for anyone in marginalized situations. I've had many conversations with very capable and talented developers who have outright told me they won't participate due to Node.js defending certain actors: Rod being one of them. Choosing to not remove or even make participation conditional on drastic changes in observed behavior is an active decision by Node to create a community that excludes others.
[edit by @zkat: fixed some grammerz, added links, and added reference to WeAllJS]
This will very negatively affect the community in the long term if we don’t correct it, if a committee like the TSC can simply vote to make exemptions from its own rules for one of its members. This is frankly corrupt.
Update: basically what @zkat says.
So this is going to be a little unorganized, but this is in regards to the TSC vote, and frankly I don't think they should have been the ones that made that decision.
We shouldn't have been the ones but by technicality that is the way the written rules work, as of the current time. 😞
This is incredibly corrupt and the mis-use of science to protect anyone from being accountable for the actions and behavior is ridiculous. I have bipolar disorder, but I understand rules and how my actions affect other people.
We need more diversity in open-source, and this is one of the reasons there's so little.
Edited to add in the photo of the information that was removed because it was "unfair to Rod" because frankly, Rod's behavior is unfair to countless numbers of individuals from preventing them from wanting to contribute to the project. And he should absolutely be held accountable for his actions.
We have a pull request out that I've requested we wrap up @rachelnicole that partially answers this in regards to CoC accountability. We've(TSC/moderation folks/CommComm) long recognized that the TSC being assigned escalation of Moderation isn't something they as a group alone would like to be responsible in dealing with. That pull request is here. This actually makes us, CommComm, also responsible and also means we have voice to help make it better. Prior, only collaborators had view of Moderation and that doesn't match up with how a Code of Conduct and reporting guidelines get worked out, especially in escalation.
In regards to a vote, this is one vote, from one committee. There are other groups, such as the CTC, the CommComm, and the Board of Directors who are capable and can also voice what they'd like to see happen for moderation and leadership guidelines. This communicates our values, as a community. The vote on the TSC voices the decision of the TSC alone.
To all CommComm members, lets review this Moderation issue asap. https://github.com/nodejs/TSC/pull/276/files
I'm really not sure why @jasnell removed the list of issues from the other post—if they weren't enough to remove him then why is anyone upset about describing them?
As for the community as a whole, to be honest reading through the CoC again I wonder if it's a bit vague and hard to enforce for anything outside of obvious harassment. The things originally described in the other post feel obviously out of line to me for a community leader like a "steering committee" member, but looking through the existing CoC I'm not sure if I can point to the relevant parts?
At any rate, I'd like to see Node do better.
Edit: Having looked at the screenshot again, it seems like there were a few pretty obvious violations. Not a great look for Node. :/
They were removed at the request of multiple collaborators who felt publishing the list unfairly targeted Rod for harassment.
@jasnell if they felt his actions would warrant harassment, I find it odd that they are okay enough with the actions to have voted the way they did. Especially since they weren't speculations on actions, it's the clear set examples of his behavior.
Stuff like this is why I've felt zero motivation to contribute lately. 😑
@jasnell if a Code of Conduct violation has no repercussions how does that protect anyone else from harassment? Can you elaborate on that?
So far I'm seeing only Rod being protected, members of underrepresented groups quitting the committee and frankly, disappointing actions reflecting poorly on the inclusion and diversity of the Node project. Decisions like this are a slap for women, people of color and other underrepresented groups, showing there's no real commitment to challenging the status quo within Node and the tech community in general. This doesn't make them feel like there's respect and consideration for their safety. There's no free pass out of Code of Conduct for anyone, nor there ever should be. Code of Conducts aren't PR stints, but carefully written and implemented precaution mechanisms that should be effectively enforced if need be.
Given the issues that were reported to the tsc for consideration, there was not consensus that those represented a code of conduct violation. There were clear moderation policy issues that had been dealt with in accordance to the moderation policy. Thus far, while there are quite a few people speaking in very general terms about Code of Conduct violations, there has been absolutely no clear identification to the tsc what the specific violations were.
Additionally, those who submitted the complaint did not frame it as a Code of Conduct issue. Rather, it was framed as a "Is This How A TSC Member Should Act" issue in general. The set of bullet points I posted originally constitute the extent of the context that was provided to the TSC for consideration beyond calls for specific mitigating actions and statements about what the result would be if those specific actions were not taken. Specifically, an ultimatum was given that if Rod was not forcibly removed from the TSC, certain members of the TSC would resign. No other option or course of action was acknowledged as being acceptable to the individuals making the complaint.
With regard to at least one of the specific issues raised, there is significant disagreement among TSC members that tweets that do not, on their face, have anything to do with Node.js, posted to a personal twitter account fall under the TSCs oversight in any way other than those already documented in our moderation guidelines. We just simply do not have a documented policy or precedent that we can fall back on. I can easily say that I don't like it so I think the poster should be banned, but I am not the Benevolent Dictator of Node.js, nor do I want to be, and I have no authority whatsoever to take unilateral action.
It was agreed by everyone directly involved in the discussion, including those that have resigned from the tsc, that our existing policies required a vote given that we lacked consensus, and the requirements for such a vote are spelled out clearly in the charter we are bound to. So after we gave tsc members time to review the complaint and provide their feedback, we called for a vote. While that may seem like I'm hiding behind policy, I am not. I'm saying that there's literally no other process we could have followed.
In short: the TSC DID execute on our established code of conduct enforcement guidelines. There are just many who disagree with the outcome and who feel that the current enforcement policies are inadequate.
We do have a process for changing those policies, and there are already efforts in the pipeline for changing those. Improved moderation guidelines, mediation, escalation and even complete restructuring of the tsc body have been on the table for discussion for quite some time and are efforts that I have strongly endorsed or initiated. I invite everyone to actively participate in those efforts.
@jakeNiemiec you know that Myles wasn't telling people to kill themselves, and in the comment to him he further clarified what his intentions were.
In the issues we're specifically addressing, IMO, there were violations. Though as @jasnell elaborates above, the people who were making the decisions worked in accordance with the way things were set up, which is what a lot of us don't agree with.
Which is what I'm hoping this thread will encourage people to talk about, and if you're involved in any of the relevant committees please work to help make changes to prevent this type of thing from happening this sort of way again.
Note: non-contributor but heavy Node user.
My team and I rely on Node every single hour of our workdays. It gives me great pause that we apparently rely on a software project that does not care to enforce its CoC.
Further, it's an embarrassment to see this behavior coming from an org with such a prominent place in the modern web dev toolchain. The whole situation makes me wonder if we should be using something different.
It'd be far better for the TSC to provide oversight and thereby grant a plurality of its current and prospective contributors the dignity of a safe, professional space.
@rachelnicole I know he was being hyperbolic, but saying "[insert any group here] people, step in front of a bus" is unacceptable, even as a joke.
Interactions like this just perpetuate the notion that CoCs are used to bully people who are not part of the 'in-group'. (which is unfortunate)
If you are serious about CoC enforcement, lead by example: acknowledge the clear violation of your CoC instead of brushing it off.
See https://github.com/nodejs/community-committee/issues/111#issuecomment-323923793, https://github.com/nodejs/community-committee/issues/111#issuecomment-323913679
@jakeNiemiec From what I can see, Myles deleted the original tweet, wrote a follow-up with much less problematic language, and tried to engage with you to better clarify intent, even going so far as to thank you for pointing out the problematic language.
If you genuinely feel like that action was a CoC violation that merits investigation, I would suggest that you look at the Enforcement guidelines and report the incident through normal channels.
Right now, it feels like a weird attempt at derailing conversation.
Written before @brianarn posted: thank you. I agree. Added this anyway, because I think it sheds some more light on the derail.
The internet is not the right venue for discussing miscommunications like this, because tone does not come across at all.
@jakeNiemiec I hear you. That was a very unfortunate phrase for you to hear. Please know that I do not think that @MylesBorins was joking - he was referencing the phrase throw under the bus, but from a perspective of altruism. He was not advocating suicide, from my perspective, but actively using your privilege to take a fall when others can't.
These sorts of difficulties do fall under the Code of Conduct, and would be a great examples for a proper moderation board to take a look at. While I understand your reading, I think that this was just a misunderstanding. For more context, please read Myles' blogpost about stepping down, where he gives a great example of someone who uses his privilege to make a statement, even if it hurts. I can't think of a better way to lead by example.
I think there's a good amount of missed connections going on in this conversation, besides the one I brought up above. I want to take a moment to thank @rachelnicole, @jasnell, @jakeNiemiec, @hackygolucky, @thefoxis, and the others here for jumping in as they are.
There two points I want to highlight in case they get lost:
From @jasnell:
In short: the TSC DID execute on our established code of conduct enforcement guidelines. There are just many who disagree with the outcome and who feel that the current enforcement policies are inadequate.
We do have a process for changing those policies, and there are already efforts in the pipeline for changing those. Improved moderation guidelines, mediation, escalation and even complete restructuring of the tsc body have been on the table for discussion for quite some time and are efforts that I have strongly endorsed or initiated. I invite everyone to actively participate in those efforts.
From @hackygolucky:
In regards to a vote, this is one vote, from one committee. There are other groups, such as the CTC, the CommComm, and the Board of Directors who are capable and can also voice what they'd like to see happen for moderation and leadership guidelines. This communicates our values, as a community. The vote on the TSC voices the decision of the TSC alone.
Everyone: let's work on fixing our Code of Conduct and the way disputes are adjucated. This vote does not have to stand as an example of Node, frozen forever in a weird, damaging "well it can't be fixed" stasis.
@jakeNiemiec this is getting off-topic, feel free to open a separate issue if you see the need to.
If the TSC followed all the processes in place then the processes are broken.
The result from the TSC vote which resulted in protecting an individual who repeatedly harassed members in the Node community to the point that they left and never came back anywhere close.
If this decision by the TSC has no consequences, any rules put in place to create and grow a safe place will loose all their meaning. And as member of CommComm I see it as my responsibility to act if I see the community being threatened to become a hostile place.
Right now, it feels like a weird attempt at derailing conversation.
I'll stop commenting since I see what you mean.
Feel free to remove my comments. It just seemed like any enforcement of a CoC requires a Twitter firestorm to get the ball rolling.
Edit: I don't want to keep commenting about a resolved situation, so I will put this here:
It appears that my original comment made it hard to trust me, that is totally fair. I'm simply asking that you give me the benefit of the doubt.
Yesterday I was paging through the parties involved, trying to get an idea of what happened and why people were leaving. I am not one to make a fuss, but the whole situation compelled me to say something...but the criticism was undeserved, as you had promptly responded.
Thank you @MylesBorins and others for the professional, level-headed responses.
It just seemed like any enforcement of a CoC requires a Twitter firestorm to get the ball rolling.
You're not wrong. That's part of what @gr2m is getting at, and others have raised the same concerns (on Twitter). This is what happens when the processes in place, and private admonitions, fail.
It would be great to have a very clear, bullet-pointed post about where to go from here. How can I, as an enraged person (and me specifically, on CommComm), help to fix the current process. @MylesBorins calls for a merging of the TSC and the CTC. On what door can I nail this thesis? Can someone more experienced in Node.js land help me by writing this? (Happy to help draft it with you).
FWIW, I agree that the choice of words from Myles was not great. It's referencing a common phrase, but that common phrase has always been a bit problematic. It's easy to use out of habit, if you aren't careful.
Myles was good about it in that he immediately acknowledged his mistake when called out and made the effort to apologize and correct it. I know he meant well, but I know that from the context of knowing him personally. Some internet stranger could easily have misinterpreted the intent of his words. This is the core of most issues we as a community face: a lack of either context or clarity in how we communicate publicly. We can not be vague about issues like this or we alienate our community.
@jakeNiemiec hello again. My original choice of language in that tweet was quite unfortunate. I am very grateful you called it out, and was more than happy to remove it and take accountability for my mistake.
To me, that experience was a perfect use of moderation by you, and the correct response to moderation by me.
That contract is important.
At this point, if we were in the Node.js moderation process, the issue would be considered resolved.
Here is the section in the moderation guidelines outlining the steps we would follow when moderating post. Keep in mind that there is a different process in place for collaborator < > collaborator moderation. One thing that is totally acceptable in any moderation is dealing with things privately, and is often a way these matters can be sorted in an amicable way.
It appears that my original comment made it hard to trust me, that is totally fair. I'm simply asking that you give me the benefit of the doubt. I'll do my best to do better next time 👍🏽
I am upset that there is a lack of accountability for hostility whilst acting in the capacity of a steward of the community. Beyond broken processes, internal conflicts, and the efforts to fix them, I am upset that a group of people had to vote at all on whether or not to hold a person with authority accountable for causing harm to the community.
It is clearly evident to me that the the behavior laid out is counter to building a healthy and open node community. An opinion bolstered by those involved finding the behavior aggregious enough to “protect” Rod from having his comments speak for themselves. Which, despite happening online and in a (semi) public forum, have been made unavailable to the community.
Specifically, these are things which should be upheld no matter the topic if Node is serious about building a top notch community. By all the people here lending their time, thoughts and hard work, I think its pretty clear that Node is serious about it! These actions detailed here are indicative of people being human and fallible when handling a difficult topic, but point to systemic issues within the organization.
I understand there are processes in place and my guides are too simple. It is my assertion that these processes are set up to serve those larger goals, and so they maintain their relevance. .
Ultimately, I think the world deserves the best Node possible, and the above are necessary first steps towards it.
Edit: formatting
I'm not sure where the image in the original issue is but it doesn't look like it's from anywhere public.
@benjamingr The image is from the original text of https://github.com/nodejs/TSC/issues/310, which was public and later edited.
Thanks for the clarification. As a collaborator that was confusing.
This is the core of most issues we as a community face: a lack of either context or clarity in how we communicate publicly. We can not be vague about issues like this or we alienate our community.
As a simple user of node, not a contributor or member or whatever to any committee or governing body; As someone who cares about the effects of a CoC on a community to bolster the capacity of that community by reinforcing positive interactions and redirecting or removing negative; As a community organizer myself who sees very little of the challenges of this and other larger communities but takes direction from their progress and motivation from their successes, it is disheartening to see this observation, as it seems at least with this core issue (nevermind the tangents) it is definitely not the case. Yes, sometimes in wildly threaded and active conversations it can be difficult to discern what's really happening. Yes, sometimes people say things that never occurred to them to be damaging. It speaks volumes though, of the precision with which certain members of the community respond to such issues, and the empathy that guides them.
With this core issue though, there was a TSC member who the committee voted to keep, who clearly advocated against a process by which they must abide yet they feel they ought to be exempt from. That seems pretty clear so far. Then after informing the community about these goings-on internally, useful context was removed which specifically pointed out compounded bad actions by this member. This was removed because it was felt that specifically pointing out violations of a code members ought to be required to adhere to and explicitly outlining bad actions of another constituted harassment. All the while, several committee members had to go to the extent of resigning in order to make a statement loud enough about how awful this is... and it's STILL being backed up by "this was the only choice we had"? Seems a woefully inadequate response. It's interesting to watch history get rewritten, and I'm glad the internet exists to continue to provide context and clarity even in situations where folks think they can "correct" the record. The only thing vague about this issue is why information that clarifies the issue ever got to be removed in the first place. The void left when toxic persons attempt to defend their behavior and the only thing they have to show for it is a recorded version of events redacted to suit their narrative resonates loudly for those fortunate enough to even have seen a pre-redacted version just hours ago. There is no attempt here on the part of the TSC to empathize or adjust for a more diverse future -- the very thing a CoC exists to facilitate; there seems only defense and justification of actions.
I get that this is not the only committee in node, and I'm grateful for y'all in this thread who are members elsewhere in the project and advocating for better. I've gone back and forth in my head on whether or not I should post this, but @rachelnicole said she wanted participation from all. So, thanks to her and all who are actively trying to make this situation better for the community and are focused on healing. If there's anything I can do to assist in your efforts, please don't hesitate to ask.
There is no attempt here on the part of the TSC to empathize or adjust for a more diverse future -- the very thing a CoC exists to facilitate; there seems only defense and justification of actions.
For the benefit of anyone not following the endless stream of notifications that is the Node.js org, these PRs (related to TSC and governance) were either started or rapidly progressed since yesterday:
were either started or rapidly progressed since yesterday:
And reflect conversations that have been ongoing for months.
@gibfahn & @jasnell thanks for adding those for more insight for people that are confused about the entire process / changes to be made in general, as I'm still definitely trying to still figure out how a lot of things work myself this is v valuable to know.
@jasnell For further clarification, these issues that @gibfahn linked to, is it only members of the TSC that can comment with suggestions or +1-ing to the things outlined? Or is it open to any individual members / other working group members / anyone?
@jacobroufa I just meant to imply that we need to put more care into how we communicate with each other to ensure context is not lost and that misunderstanding does not arise. It's easy to misinterpret the intention behind words on a screen, so it's important we think about what we say and how we say it. That is not to say that people should be punished for vagueness or the occasional error in choice of words, but that we should always strive to do our best at communicating in a clear and inclusive way.
@jasnell For further clarification, these issues that @gibfahn linked to, is it only members of the TSC that can comment with suggestions or +1-ing to the things outlined? Or is it open to any individual members / other working group members / anyone?
@rachelnicole I'm not TSC (yet--sure seems like that's going to change with the CTC merger) but I comment all the time in those repos as do others. They can lock issues if they don't want commentary from non-TSC. I think people should feel free to comment. And if I'm wrong, you can totally blame me.
(IMO, please no '+1' comments that have no other content, but feel free to use thumbs-up emoji responses in their place.)
I'll echo @Trott comments. Comments/feedback is always welcome.
@rachelnicole @Trott The TSC repo is open for anyone to comment. In fact, I started here by almost exclusively commenting in the TSC repo.
Comment is not only welcome by all, but anyone is and always has been welcome to open pull requests that offer specific recommendations and changes to the governance policies. The requirement for landing those is at least one TSC member signoff and no open objections. Every policy that the TSC follows is reviewable and open to suggested modification by the community and has been since the Foundation was launched.
Here is some good insights by Mikeal: https://twitter.com/mikeal/status/900007597088022529
I'm bewildered by your reasons for a fork. Does your first bullet point actually fault him for apologizing to someone without begging for everyone's permission first?
@vxbinaca you are literally the first person in this whole issue to mention anything about forking node which leads me to believe (and based off some light searching) you were led here from somewhere discussing what's happening with the Code of Conduct discussion, (Iikely reddit or hn).
So please don't comment unless you have anything actually useful to bring to the conversation.
@vxbinaca As @rachelnicole mentioned, if you'd like to keep on topic to the issues in the description above, we're happy to engage. Anything else, such as the fork discussion that you've introduced, would need to be opened in a new thread per Node.js' guidelines around moderation and is otherwise considered derailment of discussions.
if you'd like to keep on topic to the issues in the description above, we're happy to engage.
@hackygolucky @rachelnicole In line with this, I second @vxbinaca's other question, directed at this portion of the description above:
How can we have CoC accountability when that apparently doesn't even extend to the core contributors of a project? There are MULTIPLE conduct violations. What does one have to do to actually have any repercussions?
'core contributors'
actually did and what specific conduct violations occurred?As you mentioned, these issues (and this issue) will be reaching a broader audience soon. It is important that the transgressions are clear, and not a screen-cap of a comment with links no one can follow. All I can find is second-hand accusations.
@jakeNiemiec this has already been discussed at length by collaborators, there is more information and an addendum added by @jasnell at issue https://github.com/nodejs/TSC/issues/310#issuecomment-324174390
Like @hackygolucky mentioned, you're more than welcome to open a new thread for that discussion, but for now this issue is just to discuss what things we can do in order to create more accountability going forward to make contributing to Node a welcoming place for everyone.
edited: phrasing
Edited by @watilde: This was my misunderstanding. See the following replies.
~// Correct me if I'm misunderstanding(bow).~
~In my understanding, CommComm recognizes that it has authority and responsibility for community activities, it could overwrite the result of the voting at TSC ex-post facto.~
~I referred this section: Section 6. Node.js Foundation Operations.~ ~> The CC is responsible for vetting organizations that will be supported through means such as monetary sponsorship, promotion, resource provisioning, etc. for example requirements such as the organization in question having and executing a Code of Conduct or not conflicting with Node.js Foundation’s goals and priorities.~
~Did the meeting and the voting about that happen at CommComm? If it was held but could change nothing, then CommComm should have a right permission to overwrite results of votings at TSC if TSC makes a wrong decision related to the community activities. As an example of the concrete action, I think we could establish some specific penalties such as apology or expulsion from the org, in CoC.~
it could overwrite the result of the voting at TSC ex-post facto.
No, this is not correct. The CommComm does not have review authority over the TSC. Both the TSC and CommComm are independent entities chartered separately by the Node.js Foundation Board. Both are bound to follow their respective charters as approved by the Foundation. The CommComm can certainly offer it's opinion on the TSC decision (and I invite it to do so) but it cannot override the TSC's decision.
@watilde I believe that part of the governance refers to organizations that Node directly supports, like code with initiatives such as Code & Learn, Node School, Node Together, etc. And doesn't extend jurisdiction to adjacent committees such as the CTC, or TSC.
So this is going to be a little unorganized, but this is in regards to the TSC vote, and frankly I don't think they should have been the ones that made that decision.
https://github.com/nodejs/TSC/issues/310
How can we have CoC accountability when that apparently doesn't even extend to the core contributors of a project? There are MULTIPLE conduct violations. What does one have to do to actually have any repercussions?
I'm frankly appalled and confused why this decision was left up to a select few, though I'm not surprised the outcome given the lack of diversity and representation on the TSC.
So what can we do? If anything? I want Node to be a welcoming and helpful community, and I want people to feel safe.
Removed image per Moderation Request.
Code of Conduct: https://github.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md