-
Notifications
You must be signed in to change notification settings - Fork 133
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
meta: proposal for revised governance #263
Changes from all commits
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 |
---|---|---|
@@ -0,0 +1,227 @@ | ||
# A Proposal for the Governance Structure of the Node.js Project | ||
|
||
## What problems are being addressed? | ||
|
||
* The TSC as it exists today is largely disfunctional. | ||
|
||
## tl;dr version | ||
|
||
This proposal eliminates the TSC as a standing body of individual voting | ||
members and instead distributes the decision making authority previously | ||
held by that standing body to the chartered working groups. | ||
|
||
This proposal does not change the CTC in any way other than in terms of how | ||
new working groups are chartered. | ||
|
||
## Proposal | ||
|
||
What I am proposing is a revised TSC structure such that: | ||
|
||
1. Eliminate the TSC standing membership body. Rather than individual voting | ||
TSC members, each chartered working group has a single voting seat. It is | ||
up to each working group to decide on its own process for exercising that | ||
vote. | ||
2. An Admin team would be created that would be charged with handling the | ||
more mundane administrative tasks currently handled by the TSC (budget | ||
allocations, github org management, handling confidential information). | ||
Tasks like administering the travel fund could be handed off to the | ||
Community Committee. This admin team would not be a voting body. | ||
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. Should this be the team that maintains ownership rights on github? 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. Generally, yes. The members of the Admin team would have github org ownership rights. |
||
3. There would be only one TSC meeting per month. | ||
* The meeting may be in person or fully remote. | ||
* The meeting would consist of a public portion only that includes a | ||
stand up of *working group* activities and issues, and discussion of | ||
escalated issues. | ||
* Any working group member may attend. | ||
* Anyone who is not a working group member may attend on invitation from a | ||
working group member. | ||
4. The TSC Chair and TSC Director positions remain with an annual election. | ||
* Any working group member is eligible to run for either seat and all working | ||
group members would vote. | ||
* The TSC Chair organizes the agenda for, and conducts, the monthly meeting. | ||
* The TSC Director sits on the Node.js Board of Directors and chairs the | ||
Admin team. | ||
5. Any working group member may request to participate in the Admin team, and | ||
the Admin team may have a process for adding non-working group members. | ||
All Admin team members are subject to consensus or vote by the working | ||
groups. | ||
6. The CTC does not change with the exception that it does not charter its own | ||
working groups. | ||
7. Working groups would be chartered through consensus of all the working | ||
groups, including the CTC. The CTC would not have sole ability to override | ||
a working group decision. If the CTC objected to a decision made by | ||
chartered working group, the final decision would be made through consensus | ||
or vote of all the working groups. | ||
|
||
## Questions | ||
|
||
### Why not simply fold the TSC and CTC back together? | ||
|
||
For the simple reason that doing so does not address the cause of the | ||
disfunction. | ||
|
||
Also, the reason the TSC and CTC were split in the first place was because the | ||
overwhelming majority of CTC members do not want to deal with the administrative | ||
tasks delegated to the TSC, and I imagine that is still the case. We would still | ||
need an Admin team to handle those tasks. | ||
|
||
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. Moving the admin team to the ComCom team would seem to address this concern. 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. very in favor of 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. I don't believe that would work entirely because the Admin team would, in fact, also be handling matters that are specific to the Node.js project. For instance, adding or removing people from teams, repository management, team management, etc... generally any of the GitHub owner role tasks. Also, the Admin team would essentially serve as the go between for the Foundation and this new TSC. On the rare occasion confidential details needed to be shared with the project, for instance --- which has happened from time to time. This is not to say that some responsibilities could not be shifted. For instance, administration of the travel fund could easily move over to CommComm, as could issues around Code of Conduct and moderation. (I would like to see the CommComm come up with a moderation policy before we switched that over entirely tho). The point, however, is that there will always be a certain amount of administrative overhead in Core itself that cannot be delegated. 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. One distinct possibility is that the Admin team is actually shared across TSC and CommComm, and co-chaired by the TSC Director and CommComm Chair. 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. There could always be two admin working groups, one for each committee. |
||
### Why working group votes? | ||
|
||
Currently, the TSC is the final arbiter on contentious decisions. If the CTC | ||
made a decision that a collaborator disagreed with, the issue can be flagged | ||
for TSC review and decision. While this *hardly ever happens*, it is an | ||
important step. The working group votes would only exist to preserve the | ||
ability to escalate issues in the exremely rare case it becommes necessary. | ||
But, rather than having a standing body of individuals decide the matter, it | ||
goes to a consensus of the working groups instead. It should be exceedingly | ||
rare for this to actually happen tho. | ||
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. Has it ever happened were the TSC was asked to review and /or overrule the CTC ? I cant' remember this happening but may have overlooked something. 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. Nope. And I wouldn't expect it to happen very frequently or at all. In this sense, the voting under this proposal is a backstop. Most likely, the only time the WG's would be likely to actually use their TSC vote would be for governance updates (e.g. a charter changes). I would expect the vast majority of issues to be resolved through discussion and consensus. |
||
|
||
### What additional process does this require for Working Groups? | ||
|
||
Exceedingly little. Working groups would generally continue to operate as they | ||
do today. | ||
|
||
The two additional requirements are that: | ||
|
||
* On the rare occasion that a TSC vote is required, the working group would | ||
need to determine whether and how to exercise its vote. | ||
* Working groups would need to more formally document their membership | ||
|
||
### What additional benefit does this provide to Working Groups? | ||
|
||
Working groups would have more direct control over their areas of | ||
responsibility. | ||
|
||
For instance, if a working group wanted to bring in a new project that fell | ||
within it's area of responsibility, the only requirement would be to ask if | ||
there are any objections from the other working groups. It would not require | ||
a vote of the individual TSC members as is currently required. Rather, as | ||
long as there are no objections, the working group would just do what it feels | ||
it needs to do. | ||
|
||
### Would Working Groups be required to name a chair? | ||
|
||
No. Again, working groups would continue to work however the working groups | ||
choose to work. | ||
|
||
### Would individuals be forced into participating in particular ways? | ||
|
||
For instance, would technical people be forced to do administrative stuff? | ||
|
||
No. This proposal does not change, in any way, how individuals paticipate in | ||
the project. Those who care only about the technical side of things can | ||
continue to keep focusing on the technical side. | ||
|
||
What this proposal does do, however, is open the opportunity for anyone who | ||
*wants* to participate in the administrative side of things to do so. | ||
|
||
### How does this effect the CTC? | ||
|
||
It doesn't really. The CTC processes are generally not impacted by this with | ||
exception only to how new working groups are chartered and how issues escalated | ||
to the TSC level are resolved. The proposal does not change how the CTC works | ||
at all. | ||
|
||
### Why would working groups nominate someone to the Admin team? | ||
|
||
This would be to ensure proper representation among the working groups when key | ||
decisions are made with regards to budget allocation and administrative actions | ||
such as moderation enforcement. It's entirely up to the working group to | ||
decide if this is something they need or want. | ||
|
||
### Why is the TSC Director the chair of the Admin team? | ||
|
||
This is primarily for logistical reasons. The Admin team will be responsible for | ||
dealing with budget allocations and administrative tasks that involve | ||
interfacing with the Node.js Foundation. The TSC Director will be the primary | ||
touch point for such activities. This also echoes the situation in the | ||
Community Committee where the individual member representatives on the board | ||
share the Community Committee chair responsibilities. | ||
|
||
### It will take longer to get things done! | ||
|
||
It shouldn't take any longer than it does today. | ||
|
||
### This just means we’ll have more Working Groups! | ||
|
||
Working groups will carry with them a certain amount of required process. | ||
Chartering a new working group would also require consensus of all the | ||
other working groups, which means that there would be a fairly high bar to | ||
adding a new working group. This would mean that the growth of the number of | ||
voting seats would be much slower and manageable than the current potentially | ||
unbounded growth. | ||
|
||
### One monthly TSC meeting in which anyone can participate sounds like chaos! | ||
|
||
It will require better logistical planning, yes, but other groups (such as | ||
TC-39 for instance) pull off such meetings with very little difficulty. It | ||
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. TC-39's process also ends up with a significantly larger amount of backchanneling, which I'd really like to avoid. 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. In our case, the "backchannel" occurs in public GitHub threads, which is where we want to drive the discussion anyway. 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 the important part about this is that working groups will be encouraged to reach consensus before bringing an issue to the TSC. The TSC is a check point rather than a gauntlet. 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 is not guaranteed to however. An increased amount of politics from WGs could end up in increased off-github backchanneling. We just need to be aware of that this could happen. 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. Agreed. |
||
will be the responsibility of the TSC Chair to pull together the agenda, and | ||
to ensure that there is adequate time for each working group to provide an | ||
update on its recent activity and priorities, as well as time to discuss any | ||
open `tsc-agenda` items. | ||
|
||
### What would happen to the existing working groups? | ||
|
||
Existing working groups would essentially be rechartered under this new process | ||
with a few notable changes. Specifically: | ||
|
||
* New working groups would not be chartered solely by the CTC. | ||
* Working groups would be encouraged to nominate one of their members to the | ||
Admin team. (preferably someone actually willing to do administrative stuff) | ||
* Working groups would be expected to have a bit more process around documenting | ||
who their members are. | ||
* Several of the existing working groups *could* be restructured *solely for | ||
the purpose of voting*. This restructuring *does not change* how the teams | ||
actually get things done or how people participate in them: | ||
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 the members of the existing WG's continued to operate as they do today, with teams for each of the groups that are being merged, then additional meetings that span all of the sub-teams would likely be required for anything related to a vote. I don't see everybody from the build team wanting to be involved in all of the Website team discussions and vice versa. 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 website might be under the prevue of comm comm tbqh I think it might make sense to start from scratch when thinking about what the high level wgs might look like and then start pairing them up with current initiatives 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. we really need to stop trying to organize these WGs into topic categories. all of these WGs are made of people. in some cases these people have years of contributions and accomplishments in these working groups. in the case of the website there is also years of coordination with other WGs (Core, Build, i18n, foundation staff, evangelism). i'm concerned that we're looking at this like some sort of executive decision that a top level group is going to make without the input of the people actually doing the work and invested in the working group. if CommComm wants a WG to join they need to make that case to that WG and not to the TSC/CTC. 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. To be quite honest, a strong case could be made that the Website should be it's own standalone top level project altogether in partnership with the Foundation marketing committee. It serves as a resource for the Foundation, for Core, and for CommComm. 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. Agree with Mikeal. CommComm or the TSC can certainly ask a WG if they would like to move, but it is ultimately the WG's decision (and should be). 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, I've proposed an addition to the README calling out a distinction that is not currently obvious. nodejs/nodejs.org#1231 The Website WG is primarily concerned with the code and structure of the website, not with the content of the website. Whenever possible, editorial control over the content is deferred to the relevant working groups. I don't know if you could make a TLP out of this relationship because Evangelism and i18n are doing more than just website content. Also, Core and Release have final authority over content related to downloading versions and noting release lines, and I don't see them coming under a Website TLP ;) |
||
* CTC | ||
* Infrastructure and Tools Working Group | ||
* Build Team | ||
* Website Team | ||
* Localization Teams (i18n / translation teams) | ||
* Release and Support Working Group | ||
* LTS Team | ||
* Release Team | ||
* Docker Team | ||
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 docker team (WG?) is not very related to the rest of the release 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. Ok, it may make sense to keep that out... 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. Docker might make more sense under build |
||
* Streams API Working Group | ||
* Intl API Working Group | ||
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 this (Intl API) still be justified as a WG? is there enough activity or people involved in this work to make it something separate from core? 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. INTL could be under build, or potentially rolled into Core 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. Probably not. There's not much activity. |
||
* Node.js API Working Group | ||
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. "Native API WG" |
||
* N-API Team | ||
* NaN Team | ||
* Diagnostics and Performance Working Group | ||
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 Diag group already has enough to discuss, I think generally the perf group as it stands today should probably be informal. 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. Note that the work groups here are organized this way only for purposes of the vote, not in terms of what they actually do day to day. In other words, putting these together under the same chartered work group would not require them to work any differently than they currently do, it just means that on the rare occasion that a vote comes up, they would vote together as a single block. It still might not make any sense for them to vote as a block, of course. 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. Hmmm, perhaps. I will need longer to think about that. |
||
* Diagnostics Team | ||
* Post-Mortem Team | ||
* Benchmarking Team | ||
|
||
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. security? 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. Wasn't sure where to put that. |
||
Each chartered working group would have 1 TSC level vote. Note that the Admin | ||
team is not a working group and would not have a voting seat. | ||
|
||
The Evangelism Working Group would be moved to the Community Committee. | ||
|
||
### Build, Website and Localization in one working group?! | ||
|
||
This is solely for the purpose of voting. These would still be separate teams | ||
that would operate however they choose to operate. This proposal would not | ||
suddenly force working groups to have meetings, or force them to interact in | ||
any particular way. Having Build and Website under the same working group, | ||
for instance, would not mean that people only interested in build stuff would | ||
have to get involved with website stuff, and vice versa. What it means is that, | ||
when the rare occasion for a TSC level vote happens to come up, these teams | ||
vote as a single block. That's it. That's the extent of the requirement. | ||
|
||
Likewise with the Release and Support Working Group. Having the Release and | ||
LTS teams under this one working group does not mean that everyone on the | ||
release team has to participate in LTS team meetings and backporting sprints, | ||
etc. In fact, there would really be no reason at all for these teams and the | ||
individuals who participate in them to change anything at all about how they | ||
currently operate. The *only* difference is that when the rare TSC vote comes | ||
up, they vote as a single block. | ||
|
||
### What about the current TSC Director and Chair positions? | ||
|
||
Following adoption of the new model, the proposal is that a new election would | ||
be held. Any documented member of a chartered working group would be eligible | ||
to run for either position. Self-nominations only, with all nominations being | ||
secret until a week before the ballot opens. Then each candidate would be asked | ||
to post a short summary about what they envision for the role and what they are | ||
looking to accomplish. Vote would be cast by all documented working group | ||
members following a single transferable vote model with the winner announced | ||
at the next TSC meeting. |
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.
Can you omit
more mundane
, it diminishes the work.