A committee at the Node.js project voted 60% in favour of allowing a developer to stay on with the project. The vote put forward to the committee noted some violations of the Code Of Conduct. The fact there was a vote means that they took the Code of Conduct seriously.
Unfortunately, the code of conduct was shown to have no teeth as the committee members voted in favour of letting the developer stay with the project, as pointed out by core NPM contributor maybekatz (update: maybekatz has also been a node core collaborator, member of a working group, and former Technical Steering Committee candidate):
The lack of enforcement of the Code of Conduct has not only resulted in a fork, it has also resulted in a Node.js committee member resigning from their post on the TSC (Technical Steering Committee).
Here is what the developer had to say:
A recent decision by the TSC leads me to believe that the Technical Steering Committee is making decisions that are not in the best interest of the Node.js project. This is not about a specific individual, this is about the values we choose to demonstrate as a project and holding ourselves accountable.
The TSC has final authority over this project including:
- Technical direction
- Project governance and process (including this policy)
- Contribution policy
- GitHub repository hosting
- Conduct guidelines
- Maintaining the list of additional Collaborators
The current decision undermines our Conduct Guidelines, drives away potential contributors, and in my opinion undermines the Committee’s ability to govern.
Driving away contributors can be fatal in the open source world where most developers are essentially using their free time and volunteering to contribute. It is already difficult enough to attract contributors to smaller projects and larger projects, such as Node.js, need to be careful to make all contributors feel welcome.
Codes of Conduct should be adopted by open source projects because they can help contributors feel safe in contributing, they can increase their courage in submitting a patch. Joining a project can be intimidating, the code of conduct can help with that. It is also a good idea to include a “contributing” document that explains how to contribute to a project and where to begin. Anything that can make it easy for people to contribute to open source projects is a good thing.
Update 11:26am 23rd August 2017: ayo.js has multiple issues opened on github discussing the governance structure and the goals of the project.
One of the issues questions whether re-merging with Node.js is a goal. The most upvoted answer given is:
I just want shit to be fixed. I don’t care what the project is called or who controls it as long as it serves the communities it has worked so hard to push away.
Another issue discusses governance models, such as BDFL (Benevolent Dictator For Life), essentially a person who leads the project for a long enough (1 to 2 years) term to accomplish the roadmap laid out by the committee and the community. There is a suggestion to have multiple working groups focused on different areas of the project with the TSC (Technical Steering Committee) overseeing and confirming their progress and ideas.
While some may see this as a social/organizational fork that could fade away, my personal opinion is that it is a bet on how much codes of conduct and other tools and tactics can increase contributions and attract more open source developers and retain them. Most open source projects consist of a few developers so our community doesn’t often have discussions about how projects should be organized, about whether more democractic models could work.
Update 3:15pm: found a good video explaining codes of conduct
Update 5:34pm: revised the title of maybekatz from the generic Twitter user to core NPM contributor along with other titles.
Update 11:03am 24 August 2017: Node.js board has released a statement on github regarding the situation. Confirmed that 4 members of the Node.js TSC (Technical Steering Committee) have resigned.
Node.js board will be holding a private meeting in four days to discuss situation and response along with review of governance of the project:
update 10:53am 25 August 2017: Rod Vagg, the developer accused of causing issues whose committee membership was voted on, has published a statement.
He starts with why there two committees existed, the TSC and CTC:
One of the reasons that we initially split the TSC into two groups was to insulate the technical doers on the CTC from the overhead of administrative and political tedium
This sounds reasonable, as not everyone wants to get involved with organizational issues. Most contributors for example just need to deal with technical issues.
He suggests that what others call facts about his behaviour on the Node.js project are slanderous:
I cannot, in good conscience, give credence to the straw-man version of me being touted loudly on social media and on GitHub. This caricature of me and vague notions regarding my “toxicity”, my propensity for “harassment”, the “systematic” breaking of rules and other slanderous claims against my character has no basis in fact.
He goes on to express his opinion on the organizational issues and to address some of the claims made against him.
According to him, he was given no opportunity to answer complaints made against him:
At no point have I been provided with am opportunity to answer these complaints, correct the factual errors contained in them (see below), apologise and make amends where possible, or provide additional context that may further explain accusations against me.
And he continues:
At no point have I been approached by a member of the TSC or CTC regarding any of these items other than what the record that we have here on GitHub shows…I have had interactions with only a single member of the TSC regarding one of these matters in private email and in person which has, on both occasions, involved me attempting to coax out the source of bad feelings that I had sensed and attempting to (relatively blindly) make amends.
These statements suggest an issue with the processes in place at the Node.js project, and how complaints amongst members are to be dealt with and addressed.
Also of note is his support in general for Codes of Conduct:
4. To re-state for further clarity, I have not made a case against Codes of Conduct in general, but rather, would like to see ongoing discussion about how social guidelines could be improved upon, as they clearly have impact on open source project health.
5. I have never made a case against the Node.js Code of Conduct.
6. I have a clear voting record for adopting the Node.js project’s Code of Conduct and for various changes made to it. Codes of Conduct have been adopted by a number of my own projects which have been moved from my GitHub account to that of the Node.js Foundation.
It is well worth reading and it gives us the other side of the story. I won’t inject my opinion about his response here, only to reiterate that open source devs are volunteering their valuable time and social and organizational issues can have a heavy impact on contributions to projects.