docs/rfcs/00000000_template.md
One paragraph - High level explanation of the proposed change.
One paragraph
One paragraph
One paragraph
Long form.
One paragraph
One paragraph
One paragraph
Long form.
Explain the proposal as if it was already included in the project and you were teaching it to another programmer. That generally means:
For implementation-oriented RFCs (e.g. for core internals), this section should focus on how contributors should think about the change, and give examples of its concrete impact. For policy RFCs, this section should provide an example-driven introduction to the policy, and explain its impact in concrete terms.
( This is the technical portion of the RFC )
The section should return to the examples given in the previous section, and explain more fully how the detailed proposal makes those examples work.
Describe the overview of the design, and then explain each part of the implementation in enough detail that reviewers will be able to identify any missing pieces. Make sure to call out interactions with other active RFCs.
Why should we not do this?
If applicable, list mitigating factors that may make each drawback acceptable.
Investigate the consequences of the proposed change onto other areas of. If other features are impacted, especially UX, list this impact as a reason not to do the change. If possible, also investigate and suggest mitigating actions that would reduce the impact. You can for example consider additional validation testing, additional documentation or doc changes, new user research, etc.
Also investigate the consequences of the proposed change on performance. Pay especially attention to the risk that introducing a possible performance improvement in one area can slow down another area in an unexpected way. Examine all the current "consumers" of the code path you are proposing to change and consider whether the performance of any of them may be negatively impacted by the proposed change. List all these consequences as possible drawbacks.
This section is extremely important. See the README file for details.