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

Update the RFC process with sub-teams, amongst other things. #1224

Merged
merged 2 commits into from Sep 18, 2015

Conversation

Projects
None yet
8 participants
@nrc
Copy link
Member

nrc commented Jul 27, 2015

The libs section was authored by @Gankro, see #1213 and this discuss thread for previous discussion.

We're currently missing guideline for the tools sub-team. I just didn't have anything to hand, hopefully we can remedy that in a followup PR.

Update the RFC process with sub-teams, amongst other things.
The libs section was authored by @Gankro, see #1213 and [this discuss thread](https://internals.rust-lang.org/t/the-life-and-death-of-an-api/2087) for previous discussion.

We're currently missing guideline for the tools sub-team. I just didn't have anything to hand, hopefully we can remedy that in a followup PR.

## Changes which need an RFC

* Large refactorings or redesigns of the compiler

This comment has been minimized.

@eddyb

eddyb Jul 27, 2015

Member

Aww.

@nrc nrc self-assigned this Jul 27, 2015

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Jul 31, 2015

lgtm

and the RFC seems to be in a steady state, the shepherd and/or sub-team leader
will announce an FCP. In general, the idea here is to "front-load" as much of
the feedback as possible before the point where we actually reach a decision -
by the end of the FCP, the decision on whether or not to accept the RFC should

This comment has been minimized.

@aturon

aturon Aug 10, 2015

Member

by the end of the FCP, the decision on whether or not to accept the RFC should be obvious from the RFC discussion thread.

That seems a bit strong -- there have been and will be cases where there isn't an on-thread consensus, but the arguments on both sides have been exhausted and we just need to make a decision.

README.md Outdated
A sub-team makes final decisions about RFCs after the benefits and drawbacks are
well understood. These decisions can be made at any time, but the sub-team will
regularly issue decisions. When a decision is made, the RFC PR will either be
merged or closed, in either case with a comment describing the rationale for the

This comment has been minimized.

@aturon

aturon Aug 10, 2015

Member

On the libs team at least, we haven't been great at re-iterating the rationale in a separate comment, usually because we have been good about commenting on thread. Not sure if we want to keep this requirement.

non-trivial ways
* Adding, removing, or changing a stable compiler flag
* The implementation of new language features where there is significant change
or addition to the compiler

This comment has been minimized.

@aturon

aturon Aug 10, 2015

Member

The implementation of new language features where there is significant change or addition to the compiler

This seems pretty broad -- is the intent that most language features will require two RFCs (lang and compiler)?

This comment has been minimized.

@aturon

aturon Aug 10, 2015

Member

(I guess the question is: what is a "significant change or addition"?)

This comment has been minimized.

@nrc

nrc Sep 1, 2015

Author Member

Yes, the intention is that most significant language features have two RFCs. Not sure how that will play out in practice, but it seemed popular amongst the compiler team when we were forming the teams up. I'll add some examples to the text.

however.
* HOWEVER: Big PRs can be a lot of work to make only to have that work rejected for
details that could have been hashed out first. *This is the motivation for
having RFCs*.

This comment has been minimized.

@aturon

aturon Aug 10, 2015

Member

This is one of the motivations for RFCs, but not the only one: actually spelling out and motivating a significant design and its implications is really useful, as is the broad discussion RFCs tend to produce. In short: RFCs often make for better designs.

* Once something has been merged as unstable, a shepherd should be assigned
to promote and obtain feedback on the design.

* Once the API has been unstable for at least one full cycle (6 weeks),

This comment has been minimized.

@aturon

aturon Aug 10, 2015

Member

I like the idea of an FCP that lasts for a whole cycle (after all, stabilization doesn't matter until the cycle ends, anyway), but am unclear on the logistics here.

One plausible, slightly less conservative approach:

  • Every time a release cycle ends, the libs teams assesses the current unstable APIs and selects some number of them for potential stabilization during the next cycle. These are announced for FCP at the beginning of the cycle, and (possibly) stabilized just before the beta is cut.

The main change here is eliminating the full cycle prior to FCP, which in practice is going to be hard to track at the feature granularity. Whereas holding a big meeting at the start and end of each cycle to determine Which APIs Will Live Be Promoted seems pretty doable.

(In principle the core team is supposed to r+ stabilizations, but in practice it's been driven by subteams and the FCP is a good enough venue for core team member visibility and potential veto.)

@rust-lang/libs Thoughts on this?

This comment has been minimized.

@Gankro

Gankro Aug 10, 2015

Contributor

Sounds good to me -- though meeting deadlines is not our forte, historically speaking.

This comment has been minimized.

@alexcrichton

alexcrichton Aug 11, 2015

Member

This sounds pretty ok, I'd only worry about what this means for our large number of existing unstable APIs in terms of timing. If we had to select a small set every 6 weeks we might never actually get through the whole backlog!

At least for the first few releases we're going to have to make sure that the rate at which we process unstable APIs is higher than the rate they're coming in.

This comment has been minimized.

@aturon

aturon Aug 11, 2015

Member

@Gankro

Sounds good to me -- though meeting deadlines is not our forte, historically speaking.

I'm not sure what you have in mind here, but in any case I think the change I'm proposing will make it a lot easier to track/manage these details:

  • Week before release: Go/no-go meeting for items under FCP
  • Week of release: 🎊
  • Week after release: Triage for next cycle's stabilization FCP

@alexcrichton Note that I said "some number" not a "small number" ;-)

It's true that we have a backlog at the moment, and I think it's probably fair to grandfather in our existing unstable APIs which have been shipping since 1.0. Still, the main point here is that there's no reason for a stabilization FCP to be a single-week thing; it may as well last until the end of the cycle.

(On a separate note: I'd like to make progress this week moving forward on our remaining unstable APIs, and as part of that perhaps we can propose a bulk stabilization for this cycle.)

@aturon

This comment has been minimized.

Copy link
Member

aturon commented Aug 10, 2015

@nrc Looks good! I left a few, mostly minor, questions/nits.

@@ -75,19 +75,21 @@ the direction the language is evolving in.
* [RFC Postponement]
* [Help this is all too informal!]


This comment has been minimized.

@steveklabnik

steveklabnik Aug 11, 2015

Member

random whitespace

* [library changes](libs_changes.md),
* [compiler changes](compiler_changes.md).


This comment has been minimized.

@steveklabnik

steveklabnik Aug 11, 2015

Member

extra \n here

(corresponding to the pull request number), at which point the RFC is 'active',
or reject it by closing the pull request. How exactly the sub-team decide on an
RFC is up to the sub-team.

This comment has been minimized.

@steveklabnik

steveklabnik Aug 11, 2015

Member

extra \n.

This comment has been minimized.

@nrc

nrc Sep 1, 2015

Author Member

2 line breaks between sections == easier reading

@nrc

This comment has been minimized.

Copy link
Member Author

nrc commented Sep 1, 2015

Comments addressed.

Not sure which team this falls under. In any case, @nikomatsakis or @aturon can we FCP this?

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Sep 4, 2015

Hear ye, hear ye. This RFC is entering final comment period.

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Sep 17, 2015

This libs team discussed this during triage today and the conclusion was 👍, yay!

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Sep 18, 2015

Let's merge this thing!

nikomatsakis added a commit that referenced this pull request Sep 18, 2015

Merge pull request #1224 from nrc/when-rfc
Update the RFC process with sub-teams, amongst other things.

@nikomatsakis nikomatsakis merged commit 2ab5a50 into rust-lang:master Sep 18, 2015

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Sep 18, 2015

To make that clearer, language design team is also on board, though it's not clear whose "jurisdiction" this falls under, precisely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.