-
Notifications
You must be signed in to change notification settings - Fork 48
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
text describing how other teams are enabled to make decisions. #290
base: master
Are you sure you want to change the base?
Conversation
If your team is making a decision that impacts the language, please ensure that | ||
a link to the decision (and any related discussion) appears in the agenda for | ||
the language team's triage upcoming 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.
How would I ensure such a thing? The docs should state that.
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.
It'd need to be nominated.
But I think this gets to where a proposal like this gets tricky. Things that we want to be aware of (to potentially object to) but will move forward without us have to go to the top of our agenda. So this has the effect of forcing all of these items to the top. But if they're at the top anyway, then there's not much point in delegating them, since they'd get handled quickly.
So it seems to me that we either need to be OK delegating these on the understanding we may never see most of these cases at all, or only see them long afterward in a kind of retrospective, or that we want to continue approving these. If we want to continue approving them, we can of course choose to prioritize these, which is what we already do (e.g., why today's item was right near the top).
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.
You can have a list of FYI without committing the entire team to look over them. Perhaps someone is interested and will look anyway, but that's not the same as putting it on an agenda for consensus-approval.
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.
It'd need to be nominated.
So if we want lang team to decide something we nominate it, and if we want lang team to just be informed we... nominate it? I must be missing something.
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 agree that just a nomination seems like it won't suffice, not without tooling (or human processes) to analyze the reason-for-nomination and pull such cases to the top of the agenda.
From my point-of-view, there are some reasonable options here:
- Add a new github label, e.g.
I-lang-attention
, for items that are meant to be put on the agenda but not given discussion time. - Make the protocol here be "reach out to whichever lang team member is currently preparing the weekly agenda", or
- Slight variation on the above: reach out to any lang team member via zulip, and let them be responsible for folding it into the agenda.
- Make a separate document that holds these items, and then fold that document into the agenda each week.
I expect this to be a rare event, so I don't think the ceremony associated with option 4 makes sense.
Options 1, 2, or 3 sound okay. but its easy for me to claim Option 2 is "easy" since I'm not the one preparing the agenda. (And I'm not always on top of my notifications, so I shouldn't be so glib in suggesting option 3...)
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.
related/prior art: self-approval of PRs. It's a violation of procedure/responsibilities but people occasionally do it anyway for reasons. It's usually accompanied by an explanation why and notifying others to make it clear that nothing sneaky is going on and that they can doublecheck later if desired.
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.
If the delegated items end up requiring reading a lot of other background material in order to acquire necessary context, then we indeed would have a problem here.
Here's some context on my thoughts on this.
Items that seem like perfunctory sign-offs for us already go straight to the top of the agenda. I go through all new nominated items, and if something seems like it's going to be an easy yes for us, that saturates the sorting metric we use (perhaps below only the time-sensitive). I usually write language on these items to prompt us that it's probably an easy OK. E.g., "[trusted long-time contributor X] suggests to us that this is a bug and we should go forward with Y. Do we agree?"
So I feel like we already have evidence on how long it takes to build the necessary context on these items -- it's however long they take to process today.
Some of these do go fairly quickly -- but not so quickly that we could blow through a list of them in a few dozen seconds. There's just kind of a hard minimum on how long it takes to load up what's going on. And I don't think there's a difference in how long this takes between us deciding to give a perfunctory OK versus checking that we would have given such an OK.
And, every once in awhile, we do decide to dig into something that seemed perfunctory, and we either don't give the OK or end up asking for things first.
So, my feeling is that either we need to spend about the same amount of time reviewing these (in some form, synchronously or not), or (like all forms of delegation) we need to be OK with sometimes finding out later that things happened that we ourselves would have chosen to do differently.
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.
Yeah we should just clarify exactly what types of decisions we're okay with delegating and accepting not-our-favorite outcome on. Reversible decisions like lints are a good starting candidate.
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.
To be clear: The PR that led to my writing this proposal was not itself a lint: rust-lang/rust#129422
However, I do think PR #129422 can be accurately categorized as a "reversible decision". Namely, that PR was a decision to change repr(Rust)
from being a no-op in some contexts to instead being an error (as "obvious nonsense").
Much like lints, I do think that does serve as an example of a reversible decision (in that we can always backtrack from error back again to no-op). But it's also not quite the same as a two-way door (i.e. we cannot in general go from no-op to error -- it was allowable in this context since the PR author had done due diligence to determine risk of fallout was amazingly low).
I write all this to ask: Do you actually want me to attempt to encode a policy for which decisions are delegatable into this PR? Maybe we should just chat about it as a team in the meeting tomorrow before I bother to try to write something up, to make sure we're all on the same page first.
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.
ah well I took a swing at revising the text anyway: 33dcca7
typo pointed out by Lokathor
For T-lang discussion:
|
To your item number 2, if we did this, I'd actually prefer a persistent label (e.g. (If we actively reviewed such an item in a meeting and ended up signing off on it, we could remove the label as the decision would be explicitly ours at that point.) |
I've added an One partial step we could take here, to collect data, would be to ask people to apply this label when appropriate when making nominations. Then we could cross-check our sense of what other people think is an easy decision for us with what we think is an easy decision or not. |
No description provided.