@@ -58,16 +58,92 @@ comments.
5858merging the pull request and assigning the RFC a number, at which point
5959the RFC is 'active', or reject it by closing the pull request.
6060
61+ ## The RFC life-cycle
62+
6163Once an RFC becomes active then authors may implement it and submit the
6264feature as a pull request to the Rust repo. An 'active' is not a rubber
6365stamp, and in particular still does not mean the feature will ultimately
6466be merged; it does mean that in principle all the major stakeholders
6567have 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
77153necessary.
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