-
Notifications
You must be signed in to change notification settings - Fork 54
text describing how other teams are enabled to make decisions. #290
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
base: master
Are you sure you want to change the base?
Changes from 1 commit
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 |
---|---|---|
|
@@ -59,6 +59,32 @@ | |
agree with the decision. They (or another team member) should then set their | ||
status to `dissent`. | ||
|
||
# Delegation of decisions | ||
|
||
We trust other teams to make decisions about their areas of expertise, without | ||
waiting on language team approval on every such decision. | ||
|
||
If the matter being decided seems non-trival or subtle, then we do wish to be | ||
part of the decision-making process. But the answer for a problem seems obvious, | ||
pnkfelix marked this conversation as resolved.
Show resolved
Hide resolved
|
||
then it need not wait on T-lang nomination and approval. | ||
|
||
For example, we trust the compiler team to fix obvious bugs that are not | ||
intended to be part of the Rust language and have minimal known breakage. See | ||
for instance [PR #129422](https://github.com/rust-lang/rust/pull/129422), which | ||
corrected a mistake in the implementation of `#[repr(Rust)]`). | ||
|
||
However, when another team makes a language-relevant decision, the language team | ||
also wants to be aware of it. This way we can ensure that the set of delegated | ||
decisions do not drift out of their intended scope. | ||
|
||
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. | ||
Comment on lines
+83
to
+85
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 would I ensure such a thing? The docs should state 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. 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 commentThe 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 commentThe reason will be displayed to describe this comment to others. Learn more.
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 commentThe 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:
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 commentThe 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 commentThe reason will be displayed to describe this comment to others. Learn more.
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 commentThe 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 commentThe 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 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 commentThe reason will be displayed to describe this comment to others. Learn more. ah well I took a swing at revising the text anyway: 33dcca7 |
||
|
||
(If a decision cannot be easily descibed and justified in a short snippet of | ||
text, then it possibly needs to be brought to the attention of the language team | ||
through the normal nomination process.) | ||
|
||
# Rustbot commands | ||
|
||
The following commands are accepted by rustbot. (Commands written below omit | ||
|
Uh oh!
There was an error while loading. Please reload this page.