Skip to content

Commit 00ae563

Browse files
committed
Merge pull request rust-lang#190 from pnkfelix/fsk-answer-gabor-questions
Answer Gabor's questions.
2 parents be824c6 + 63ec2b6 commit 00ae563

File tree

1 file changed

+81
-4
lines changed

1 file changed

+81
-4
lines changed

README.md

+81-4
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,92 @@ comments.
5858
merging the pull request and assigning the RFC a number, at which point
5959
the RFC is 'active', or reject it by closing the pull request.
6060

61+
## The RFC life-cycle
62+
6163
Once an RFC becomes active then authors may implement it and submit the
6264
feature as a pull request to the Rust repo. An 'active' is not a rubber
6365
stamp, and in particular still does not mean the feature will ultimately
6466
be merged; it does mean that in principle all the major stakeholders
6567
have agreed to the feature and are amenable to merging it.
6668

67-
Modifications to active RFC's can be done in followup PR's. An RFC that
68-
makes it through the entire process to implementation is considered
69-
'complete' and is moved to the 'complete' folder; an RFC that fails
70-
after becoming active is 'inactive' and moves to the 'inactive' folder.
69+
Furthermore, the fact that a given RFC has been accepted and is
70+
'active' implies nothing about what priority is assigned to its
71+
implementation, nor does it imply anything about whether a Rust
72+
developer has been assigned the task of implementing the feature.
73+
74+
Modifications to active RFC's can be done in followup PR's. We strive
75+
to write each RFC in a manner that it will reflect the final design of
76+
the feature; but the nature of the process means that we cannot expect
77+
every merged RFC to actually reflect what the end result will be at
78+
the time of the next major release; therefore we try to keep each RFC
79+
document somewhat in sync with the language feature as planned,
80+
tracking such changes via followup pull requests to the document.
81+
82+
An RFC that makes it through the entire process to implementation is
83+
considered 'complete' and is moved to the 'complete' folder; an RFC
84+
that fails after becoming active is 'inactive' and moves to the
85+
'inactive' folder.
86+
87+
## Implementing an RFC
88+
89+
Some accepted RFC's represent vital features that need to be
90+
implemented right away. Other accepted RFC's can represent features
91+
that can wait until some arbitrary developer feels like doing the
92+
work. Every accepted RFC has an associated issue tracking its
93+
implementation in the Rust repository; thus that associated issue can
94+
be assigned a priority via the [triage process] that the team uses for
95+
all issues in the Rust repository.
96+
97+
The author of an RFC is not obligated to implement it. Of course, the
98+
RFC author (like any other developer) is welcome to post an
99+
implementation for review after the RFC has been accepted.
100+
101+
If you are interested in working on the implementation for an 'active'
102+
RFC, but cannot determine if someone else is already working on it,
103+
feel free to ask (e.g. by leaving a comment on the associated issue).
104+
105+
## Reviewing RFC's
106+
107+
Each week the [core team] will attempt to review some set of open RFC
108+
pull requests. The choice of pull requests to review is largely
109+
driven by an informal estimate of whether its associated comment
110+
thread has reached a steady state (i.e. either died out, or not
111+
showing any sign of providing feedback improvements to the RFC
112+
itself). The list of RFC's up for review is posted a week ahead of
113+
time via standard notification channels (currently the 'rust-dev'
114+
mailing list as well as the http://discuss.rust-lang.org/ discourse
115+
site).
116+
117+
We try to make sure that any RFC that we accept is accepted at the
118+
Tuesday team meeting, with a formal record of discussion regarding
119+
acceptance. We do not accept RFC’s at the Thursday triage meeting.
120+
We may reject RFC’s at either meeting; in other words, the only RFC
121+
activity on Thursdays is closing the ones that have reached a steady
122+
state and that the team agrees we will not be adopting.
123+
124+
At both meetings, we try to only consider RFC’s for which at least a
125+
few participants have read the corresponding discussion thread and are
126+
prepared to represent the viewpoints presented there. One participant
127+
should act as a "champion" for the feature. The "champion" need not
128+
*personally* desire the feature; they just need to act to represent
129+
its virtues and the community’s desire for it.
130+
131+
## RFC Postponement
132+
133+
Some RFC pull requests are tagged with the 'postponed' label when they
134+
are closed (as part of the rejection process). An RFC closed with
135+
“postponed” is marked as such because we want neither to think about
136+
evaluating the proposal nor about implementing the described feature
137+
until after the next major release, and we believe that we can afford
138+
to wait until then to do so.
139+
140+
Usually an RFC pull request marked as “postponed” has already passed
141+
an informal first round of evaluation, namely the round of “do we
142+
think we would ever possibly consider making this change, as outlined
143+
in the RFC pull request, or some semi-obvious variation of it.” (When
144+
the answer to the latter question is “no”, then the appropriate
145+
response is to close the RFC, not postpone it.)
146+
71147

72148
### Help this is all too informal!
73149

@@ -77,3 +153,4 @@ driven by consensus and community norms, not impose more structure than
77153
necessary.
78154

79155
[core team]: https://github.com/mozilla/rust/wiki/Note-core-team
156+
[triage process]: https://github.com/rust-lang/rust/wiki/Note-development-policy#milestone-and-priority-nomination-and-triage

0 commit comments

Comments
 (0)