Clean up section about FCPs (#1287)
* I've never heard the term "pFCP" used before, so spell it out as "proposed final comment period" * Fix some unclear things (like implying that you need `r+` rights to start an FCP) * Improve the chapter's title, and make it consistent with its TOC entry * Make some other assorted minor cleanups and improvements
This commit is contained in:
parent
08019e25d1
commit
ce956908d0
|
|
@ -1,43 +1,42 @@
|
||||||
# Implement New Feature
|
# Implementing new features
|
||||||
|
|
||||||
When you want to implement a new significant feature in the compiler,
|
When you want to implement a new significant feature in the compiler,
|
||||||
you need to go through this process to make sure everything goes
|
you need to go through this process to make sure everything goes
|
||||||
smoothly.
|
smoothly.
|
||||||
|
|
||||||
## The @rfcbot (p)FCP process
|
## The @rfcbot FCP process
|
||||||
|
|
||||||
When the change is small and uncontroversial, then it can be done
|
When the change is small and uncontroversial, then it can be done
|
||||||
with just writing a PR and getting r+ from someone who knows that
|
with just writing a PR and getting an r+ from someone who knows that
|
||||||
part of the code. However, if the change is potentially controversial,
|
part of the code. However, if the change is potentially controversial,
|
||||||
it would be a bad idea to push it without consensus from the rest
|
it would be a bad idea to push it without consensus from the rest
|
||||||
of the team (both in the "distributed system" sense to make sure
|
of the team (both in the "distributed system" sense to make sure
|
||||||
you don't break anything you don't know about, and in the social
|
you don't break anything you don't know about, and in the social
|
||||||
sense to avoid PR fights).
|
sense to avoid PR fights).
|
||||||
|
|
||||||
If such a change seems to be too small to require a full formal RFC
|
If such a change seems to be too small to require a full formal RFC process
|
||||||
process (e.g. a big refactoring of the code, or a
|
(e.g., a small standard library addition, a big refactoring of the code, a
|
||||||
"technically-breaking" change, or a "big bugfix" that basically
|
"technically-breaking" change, or a "big bugfix" that basically amounts to a
|
||||||
amounts to a small feature) but is still too controversial or
|
small feature) but is still too controversial or big to get by with a single r+,
|
||||||
big to get by with a single r+, you can start a pFCP (or, if you
|
you can propose a final comment period (FCP). Or, if you're not on the relevant
|
||||||
don't have r+ rights, ask someone who has them to start one - and
|
team (and thus don't have @rfcbot permissions), ask someone who is to start one;
|
||||||
unless they have a concern themselves, they should). pFCP stands for
|
unless they have a concern themselves, they should.
|
||||||
"proposed final comment period".
|
|
||||||
|
|
||||||
Again, the pFCP process is only needed if you need consensus - if you
|
Again, the FCP process is only needed if you need consensus – if you
|
||||||
don't think anyone would have a problem with your change, it's ok to
|
don't think anyone would have a problem with your change, it's OK to
|
||||||
get by with only an r+. For example, it is OK to add or modify
|
get by with only an r+. For example, it is OK to add or modify
|
||||||
unstable command-line flags or attributes without a pFCP for
|
unstable command-line flags or attributes without an FCP for
|
||||||
compiler development or standard library use, as long as you don't
|
compiler development or standard library use, as long as you don't
|
||||||
expect them to be in wide use in the nightly ecosystem.
|
expect them to be in wide use in the nightly ecosystem.
|
||||||
|
|
||||||
You don't need to have the implementation fully ready for r+ to ask
|
You don't need to have the implementation fully ready for r+ to propose an FCP,
|
||||||
for a pFCP, but it is generally a good idea to have at least a proof
|
but it is generally a good idea to have at least a proof
|
||||||
of concept so that people can see what you are talking about.
|
of concept so that people can see what you are talking about.
|
||||||
|
|
||||||
When a pFCP is started, it requires all members of the team to sign off
|
When an FCP is proposed, it requires all members of the team to sign off the
|
||||||
the FCP. After they all do so, there's a 10 day long "final comment
|
FCP. After they all do so, there's a 10-day-long "final comment period" (hence
|
||||||
period" where everybody can comment, and if no new concerns are raised,
|
the name) where everybody can comment, and if no concerns are raised, the
|
||||||
the PR/issue gets FCP approval.
|
PR/issue gets FCP approval.
|
||||||
|
|
||||||
## The logistics of writing features
|
## The logistics of writing features
|
||||||
|
|
||||||
|
|
@ -79,7 +78,6 @@ feature can be changed, or the feature might be completely
|
||||||
rewritten or removed. Features are not supposed to gain tenure
|
rewritten or removed. Features are not supposed to gain tenure
|
||||||
by being unstable and unchanged for a year.
|
by being unstable and unchanged for a year.
|
||||||
|
|
||||||
<a name = "tracking-issue"></a>
|
|
||||||
### Tracking Issues
|
### Tracking Issues
|
||||||
|
|
||||||
To keep track of the status of an unstable feature, the
|
To keep track of the status of an unstable feature, the
|
||||||
|
|
@ -111,7 +109,6 @@ for stabilization in a checklist, e.g.,
|
||||||
- [ ] Stabilize the feature. ([See instructions on rustc-dev-guide.](https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr))
|
- [ ] Stabilize the feature. ([See instructions on rustc-dev-guide.](https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr))
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="stability-in-code"></a>
|
|
||||||
## Stability in code
|
## Stability in code
|
||||||
|
|
||||||
The below steps needs to be followed in order to implement
|
The below steps needs to be followed in order to implement
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue