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

Adjust charter to simplify automated removal rules #1097

Merged
merged 3 commits into from
Oct 26, 2021

Conversation

Trott
Copy link
Member

@Trott Trott commented Oct 11, 2021

This is a charter change, so it would require CPC approval.

The reason for this change is that the current automatic removal rules are unworkable. We currently have (I believe) 5 TSC members who do not meet the 25% meeting attendance requirement. Of those 5, at least one has participated in a vote, leaving us with 4 TSC members who may be eligible for supposedly-automatic removal. However, "does not participate in TSC discussions" is impossible to automate or even be certain about. I suspect that with that criteria, only 1 of the TSC members is eligible for automatic removal. But even that, I can't be sure. And it's awkward to bring it up. That's why it's supposed to be automatic! Because we're so bad at this!

So, I propose two changes to make this a possible-to-automate process similar to the automated Collaborator-removal process we have now in the main repo.

  1. Eliminate the impossible-to-automate "participate in TSC discussions" loophole. That's what this change does.
  2. Start keeping track of votes in documents that are kept in this repository, similar to the way we have meeting attendees documented in the meeting minutes. There are possible variations on this, but the point is that there is one source of truth about who did and did not participate in votes.

Once those two changes are done, we can look at automating the process so that it is actually automatic in reality, and not merely on paper.

@nodejs/tsc

@apapirovski
Copy link
Member

apapirovski commented Oct 11, 2021

Strictly speaking you could take engagement in the TSC repo, or on TSC PRs, as a sign of the "participate in TSC discussions discussions" criteria — or just reword it to mean that. (Fully aware that's not what it's meant to encompass.)

Separate note: I think given that meetings get skipped a fair bit these days, this automated removal seems rather tricky. How do you treat meetings that didn't happen?

@Trott
Copy link
Member Author

Trott commented Oct 11, 2021

How do you treat meetings that didn't happen?

If a meeting didn't happen, it didn't happen. We still seem to be running around 8 or 9 meetings per 3 month period, which seems like plenty to me.

Regardless, there's still the vote as a loophole. (Actually, I consider participation in votes more important. Meetings should become superfluous.) All you have to do is take part in a vote--even just to say you don't have time to participate so you're abstaining--and you're good for another 3 months even if you attend zero meetings.

If we want to worry about there not being enough meetings, we can add a sentence to say that none of these rules apply if there wasn't a vote to participate in during the 3-month period. Votes are where it is most important to have an engaged TSC anyway.

So if there was one vote and zero meetings--first, that's not ever going to happen--but second, then just vote (or abstain). But please, Hypothetical TSC Member, don't leave poor Rich hanging when he emails you telling you that you haven't voted yet and we're really trying to get to a conclusion here and even abstentions help us do that and did you get my ping in the issue tracker and should I message you on Twitter instead and....

@Trott

This comment has been minimized.

@Trott
Copy link
Member Author

Trott commented Oct 11, 2021

Also, if the rule gets tripped in some extraordinary case--like, there were no meetings in a 3-month period, and only one vote, and it happened to be when a TSC member was on their honeymoon or something--then they get automatically moved to Emeritus. Two things: First, the move to Emeritus would happen in a PR that can be blocked. Second, even if you say "No" to that suggestion that the PR can be blocked because "automatic is automatic", then fine. The TSC can instantly move the person back to active with a quick vote.

@Trott

This comment has been minimized.

@apapirovski
Copy link
Member

If a meeting didn't happen, it didn't happen. We still seem to be running around 8 or 9 meetings per 3 month period, which seems like plenty to me.

Yeah, I'm all good with the reasoning personally. Mostly just pointing out potential loopholes that could still arise. I've always thought this whole process should be more automatable. (And I say that as someone that has been extremely bad at actually attending meetings. Sigh.)

@targos
Copy link
Member

targos commented Oct 11, 2021

The change LGTM.

Start keeping track of votes in documents that are kept in this repository

+1. Even better if it's in a format that can be easily read by a computer.

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

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

lgtm

@aduh95
Copy link
Contributor

aduh95 commented Oct 11, 2021

How do you treat meetings that didn't happen?

If a meeting didn't happen, it didn't happen. We still seem to be running around 8 or 9 meetings per 3 month period, which seems like plenty to me.

We could differentiate meetings that are cancelled (because of light agenda, or no one is available to chair) from meetings that are aborted because not enough TSC members attended. I don't feel strongly about this, it would seem fair to me if aborted meetings were part of the count to meet the 25% requirement.

Copy link
Contributor

@cjihrig cjihrig left a comment

Choose a reason for hiding this comment

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

LGTM. Maybe we should call out that abstaining from a vote still counts as participating.

@Trott
Copy link
Member Author

Trott commented Oct 12, 2021

LGTM. Maybe we should call out that abstaining from a vote still counts as participating.

I'm happy to do that. I didn't do it initially to keep things concise and because abstentions are specified as a way to participate previously in the charter:

A TSC member may choose to participate in any vote through abstention.

@Trott
Copy link
Member Author

Trott commented Oct 12, 2021

We could differentiate meetings that are cancelled (because of light agenda, or no one is available to chair) from meetings that are aborted because not enough

I agree that's what we should do in practice. I'm happy to include that in the charter if we can come up with clear and concise wording for it. But I'm also happy to leave the change as it is and do that by creating a minutes document for each aborted meeting that lists who was there and says the meeting was aborted. Any automated process then would include such information in the attendance count.

Copy link
Contributor

@MylesBorins MylesBorins left a comment

Choose a reason for hiding this comment

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

LGTM pending CPC review

Copy link
Member

@mhdawson mhdawson left a comment

Choose a reason for hiding this comment

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

LGTM

@designMoreWeb
Copy link

This is a great change, I love it excellent job 👍🏽

@Trott Trott removed the tsc-agenda label Oct 12, 2021
Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

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

I've added one note about security triaging.

TSC-Charter.md Show resolved Hide resolved
@Trott
Copy link
Member Author

Trott commented Oct 26, 2021

This change was approved by CPC. Landing. Thanks, everyone.

@Trott Trott merged commit 119a2cf into nodejs:main Oct 26, 2021
@Trott Trott deleted the charter-auto branch October 26, 2021 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.