-
Notifications
You must be signed in to change notification settings - Fork 134
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
charter: add TSC membership terms, mandatory mediation, and removal requirements #318
Changes from 7 commits
1e51330
928eb4f
7e61300
9e8dc17
86a5ca3
903b9d0
5b6abdc
4085455
e2c48a2
298ad2a
01c868f
4ba8680
6766814
7b6d2ae
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,16 +36,27 @@ approved by the Board. | |
|
||
## Section 4. Establishment of the TSC. | ||
|
||
TSC memberships are not time-limited. There is no maximum size of the TSC. | ||
The size is expected to vary in order to ensure adequate coverage of important | ||
areas of expertise, balanced with the ability to make decisions efficiently. | ||
The TSC must have at least three members. | ||
TSC memberships are for one year terms that must be recertified. Motions for | ||
recertification are automatic and require a vote. Members are recertified if a | ||
simple majority of TSC members vote in favor of recertifying the individual as | ||
a TSC member. Such members will continue through the next year's term. | ||
Individuals failing recertification may return to the TSC after no less than | ||
six months following normal TSC motion. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does the TSC member's own vote count in recertification? How is a tie in a recertification vote resolved? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A tie would be less than simple majority so the individual would not be recertified. No, their vote for themselves wouldn't count. I can clarify that. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please do. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there precedent for one's own vote for oneself not counting in other processes? With most board voting the vote for oneself, if you have the right to vote, counts. |
||
|
||
There is no maximum size of the TSC. The size is expected to vary in order to | ||
ensure adequate coverage of important areas of expertise, balanced with the | ||
ability to make decisions efficiently. The TSC must have at least three members. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would suggest a higher number, at least 5, given the TSC’s responsibility 3 people is to few. I would also suggest to document what happens if the number falls below the minimum. Another topic that might fit better into a follow up pull request is to require "active" members, and define what "active" means, to avoid a situation where people are voted into the board without fulfilling their responsibilities. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. -1 on making the minimum five. What happens if the number falls below this is the responsibility of the Node.js Foundation Board to determine. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Regarding "active" members, the TSC recently passed modification to the TSC Charter that includes specific guidelines around TSC member activity. Specifically, there is a minimum participation requirement already covered by the charter. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
@gr2m FYI, this section of the charter includes these minimum requirements to stay active:
(Not saying there isn't room for improvement. Just pointing out what's already there.) |
||
|
||
Individuals nominated to the TSC must be members of at least one Node.js | ||
Working Group at the time of their nomination and must maintain active | ||
participation in at least one Working Group throughout their term. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This one concerns me a bit. For some areas we have teams as opposed to WGs (ex crypto) and I hate to lose those voices from the TSC. We should look at how many of the current TSC members would be affected by this requirement as I think it would b quite a high number. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The goal here is to strongly encourage TSC members to be more active across the project. Those individuals could easily jump into contributing to Working Groups also There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess this also means that people who only contribute to core are excluded. Maybe it could say that they must participate in the Node.js org throughout their term. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd be good with that. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd be ok if it was Working Group or Team. |
||
|
||
There is no specific set of requirements or qualifications for TSC | ||
membership beyond these rules. The TSC may add additional members to the | ||
TSC by a standard TSC motion and vote. A TSC member may be removed from the | ||
TSC by voluntary resignation, by a standard TSC motion, or in accordance to the | ||
participation rules described below. | ||
membership beyond these rules. | ||
|
||
The TSC may add additional members to the TSC by a standard TSC motion and vote. | ||
A TSC member may be removed from the TSC by voluntary resignation, by a standard | ||
TSC motion, or in accordance to the participation rules described below. | ||
|
||
Changes to TSC membership should be posted in the agenda, and may be suggested | ||
as any other agenda item. | ||
|
@@ -176,10 +187,71 @@ discussion will continue. | |
For all votes, a simple majority of all TSC members for, or against, the issue | ||
wins. A TSC member may choose to participate in any vote through abstention. | ||
|
||
While the results of all votes must be made public, the actual individual | ||
ballots cast for most votes may be made public or confidential at the discretion | ||
of the TSC Chair. However, individual ballots for recertification or removal of | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel like one member wanting it to be confidential should be enough, not depending on the chair. |
||
TSC members must remain confidential. The names of members voting or abstaining | ||
in all votes must be made public. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I assume it would not be identified if they voted or abstained, correct ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, my assumption is that there would be clear indication who voted and who abstained. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that makes it harder on those that want to abstain. If you vote then you are less identifiable. I see that in a vote you can vote yes, no or abstain and we don't identify who voted yes or no but we are going to identify to abstained. |
||
|
||
Following the completion of all votes, a public statement must be made via | ||
GitHub specifying the results of the vote. Contextual detail about why the | ||
vote was held, including a listing of the specific questions voted on must be | ||
included in the statement. | ||
|
||
Note that, in addition to requiring a simple majority vote of the TSC, all | ||
changes to this charter are also subject to approval from the Node.js | ||
Foundation board. | ||
|
||
### Votes to Remove Members | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. EDIT: Much of the content of this section has been removed so I'm not sure these comments apply anymore. Striking out.
I get that this is trying to address recent events, but IMO the issue there isn't that the TSC didn't know how to remove someone. The how-to-remove-someone process is actually straightforward. It's that the TSC didn't know how to deal with CoC stuff. Removal is straightforward, at least from a mechanical perspective. If someone wants another member removed, make a motion. A discussion ensues. If consensus cannot be reached, it goes to a vote. There does not need to be misconduct for someone to be removed. Someone can be removed for any number of reasons. Maybe they are inactive. Maybe they are difficult to work with, without being malicious. Maybe they consistently cause problems unintentionally. Maybe they just have bad judgment. Maybe it's a combination of things like that, any one of which wouldn't be a big deal, but taken together make them unsuitable for the TSC.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
That's not even a consideration for me. I will rework this. |
||
|
||
Requests to remove a member from the TSC may be raised only by other members of | ||
the TSC or by members of the Node.js Foundation Board. When an issue to remove | ||
someone from the TSC is raised, the issue must include a list of the specific | ||
issues the TSC is being asked to consider as grounds for removal. The discussion | ||
and vote will be limited strictly to considering of the specific issues listed | ||
in the issue. The issue must also include a description of what outcome those | ||
reporting the issue expect. | ||
|
||
The vote must be structured in terms of whether or not the specific issues | ||
listed constitute grounds for removal. | ||
|
||
When votes to remove individuals from the TSC are scheduled, the member in | ||
question is to be notified about the vote in advance along with adequate | ||
contextual details of why the vote is taking place, what, if any, specific | ||
complaints are being leveled, and the specific questions that the members are | ||
being asked to consider. The member in question shall be given no less than one | ||
week before the vote to provide an answer or rebuttal to those issues. | ||
|
||
Neither the member in question, nor the member or members raising the issue | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure I agree with this...it seems like that increases the likelihood of the member in question not being removed. Especially if more than one member raises the issue. Example: Say there are 10 members on the TSC. 4 members step forward and raise an issue to remove another member. This would mean that there are only 5 votes that can be cast. If 3 members vote against, and 2 members vote for, the vote would not pass, which to me seems....quite problematic? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Potentially, but it also justifies referring the issue to arbitration, which can be requested either by those submitting the request, the person being considered for removal, or the TSC Chair. The decision can also be vacated by the Collaborator base or the Node.js Foundation Board, so there are contingencies and mitigations included. The purpose of this clause is to avoid the possibility of railroading an individual off the committee and I believe it's necessary. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would an option be to allow both the raisers and the member in question. If its one raiser then they will balance out, otherwise more raisers end up with more weight ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, I think that ends up creating an imbalance and does not avoid the possibility of railroading the decision. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I believe that the way this is currently worded creates an imbalance. I'm not seeing this is a railroading of the decision either. If 4 people come forward with issues with another member, then those four people don't get to vote on whether or not to remove the individual. For any other matter, one can simply call a vote and their votes be counted. Why does it have to be different here? This would make it even more difficult to remove a toxic member from the project. To me, this enables one of the problems it is trying to solve even more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, noted. I'll pull this back out. |
||
shall participate in the vote and the remaining members of the TSC may meet or | ||
discuss the issue privately without the member in question present. | ||
|
||
Should a vote to remove a member result in a tie (50%/50% split of non | ||
abstaining participants) the matter shall be referred to a Node.js Foundation | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this going to the board? Then it needs to be said explicitly. Who appoints it from the Node.js Foundation? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Node.js Board or the Executive Director on behalf of the Board. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you write down a paragraph on how the mediator is nominated, so that if follows the same pattern everywhere? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will do |
||
appointed independent third party mediator for arbitration. | ||
|
||
At any point during this process, the individual member in question, the | ||
individuals opening the request, or the TSC Chair may request that the issue | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does this mean that even after a vote, the TSC Chair or the individual member can still request this? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As currently written, yes. But that's not likely what we want so I'm open to suggestions on how to rework this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yea, I don't agree with this part. With this left in, the actual TSC vote can be undermined. I almost think this entire paragraph should be removed. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Well, I'd like to have a process by which the matter can at least be referred to mediation before the vote. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll work on reworking this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It says that anyone can request that the issue be handled by a third party mediator instead of by a vote of the TSC, but it's not clear how or if that request is handled. For example, if I'm on the TSC, but acting like a jackass, I might know that the members of the TSC are going to vote me out. In order to undermine this process, I request that it be referred to a third-party mediator, specifically because that gives me more leverage. Does the foundation board get to say "No, that request is in bad faith, the TSC is going to vote on this"? And by what criteria would the foundation board make that decision? I'd suggest removing this loophole. The conditions that lead to mediation should be objective and clear, and not dependent on anyone's request. Either it should always go to mediation, or only in the case of a tie, or never. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @evanlucas ... ok, please take a look now. |
||
be referred to a Node.js Foundation appointed third party mediator for | ||
arbitration. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (comment copied so as to not get lost in the outdated fold) It says that anyone can request that the issue be handled by a third party mediator instead of by a vote of the TSC, but it's not clear how or if that request is handled. For example, if I'm on the TSC, but acting like a jackass, I might know that the members of the TSC are going to vote me out. In order to undermine this process, I request that it be referred to a third-party mediator, specifically because that gives me more leverage. Does the foundation board get to say "No, that request is in bad faith, the TSC is going to vote on this"? And by what criteria would the foundation board make that decision? I'd suggest removing this loophole. The conditions that lead to mediation should be objective and clear, and not dependent on anyone's request. Either it should always go to mediation, or only in the case of a tie, or never. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, I've been stewing on that. The ideal is that it wouldn't have to go to mediation at all. It should also be a goal to avoid having to vote. So perhaps it should be simply if consensus cannot be reached, the matter goes to mediation. The challenge with that is that it encourages members to not take a position, e.g. I don't want to deal with this so abstaining from a clear position forces mediation. I don't know how to solve this yet. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I will try to drudge up some language/process for this and coordinate with legal on how this needs to work. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @hackygolucky thanks that will be very helpful. |
||
|
||
All decisions regarding removal of TSC members is subject to review by the | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. s/ |
||
Node.js Foundation Board. Should the Board decide to vacate the TSC vote, the | ||
matter shall be referred to a Node.js Foundation appointed third party mediator | ||
for arbitration. | ||
|
||
All decisions regarding removal of TSC members is subject to review by the body | ||
of Node.js collaborators. Should no fewer than one-quarter of the current | ||
Node.js project Collaborators (as defined by the TSC's governance and | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this referring to Collaborators as we currently use the term or the redefined Collaborators to mean everyone in the GitHub org? The latter could be really problematic because I'd guess that between 40% and 60% of those folks aren't actually active on the project in any significant way. |
||
contribution policies) disagree with the TSC vote, the matter shall be referred | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it your expectation that that means "collaborators" will be the 100+ members of the collaborators team? Or any Node.js GitHub repo, which could amount to more like 500 people? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've got no expectation currently. What do you think would be best? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As written I think There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we say all org collaborators we would need to have a mechanism that allows 1/4 of those to register objections which can be difficult. That's not too say we shouldn't do this, we just need a workable process There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually, I've removed this entire bit. The Working Group based review process defined in #319 would provide adequate coverage of this requirement. |
||
to a Node.js Foundation appointed third party mediator for arbitration. | ||
|
||
Once referred to arbitration, the decision of the mediator will be considered | ||
final and binding on all parties. | ||
|
||
The third party mediator selected must not be a member of either the TSC, | ||
Node.js Community Committee, or Node.js Foundation Board of Directors. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So it can be one of the collaborators that disagree with the TSC vote? IMHO at this point they should be external to the collaborators as well. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Board (or Executive Director on the Boards behalf) would select the individual. This is just an additional constraint. |
||
|
||
## Section 9. Project Roles | ||
|
||
The Node.js Foundation git repository is maintained by the TSC and | ||
|
@@ -216,6 +288,20 @@ TSC. | |
* **Maintainer**: a Collaborator within a Core Project elected to | ||
represent the Core Project on the TSC. | ||
|
||
## Section 11. Escalation of Disputes and Code of Conduct Violations | ||
|
||
Participation in the Node.js project is governed by a Code of Conduct policy | ||
that is established by the TSC. The TSC is required to establish a policy | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this not established by CommComm? |
||
for the enforcement of Code of Conduct issues. Any reports of Code of Conduct | ||
or policy violations on the part of TSC members that are not resolvable through | ||
that established policy will be referred to binding, independent third party | ||
mediation under the oversight of the Node.js Foundation Board. All TSC members, | ||
upon acceptance of their nomination to the TSC body, voluntarily agree to abide | ||
by the decisions of the independent third party mediator. | ||
|
||
The third party mediator selected must not be a member of either the TSC, | ||
Node.js Community Committee, or Node.js Foundation Board of Directors. | ||
|
||
[Consensus Seeking]: http://en.wikipedia.org/wiki/Consensus-seeking_decision-making | ||
[Condorcet]: http://en.wikipedia.org/wiki/Condorcet_method | ||
[Single Transferable Vote]: http://en.wikipedia.org/wiki/Single_transferable_vote |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One year from... date of original addition / last recertification?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The intention is all at once, once per year.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not going to expend a lot of effort trying to change this, but I'll say that I'd prefer it be rolling so that there is a rhythm. "What two or three people need to be recertified this month? And who is up for recertification next month?" instead of "Oops, did we go two-and-a-half years without recertifying anyone again?" (Sort of what happened with the TSC Director/Chair position at last once, no?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer 2 year terms.