feature | start-date | author | co-authors | shepherd-team | shepherd-leader | related-issues |
---|---|---|---|---|---|---|
(fill me in with a unique ident, my_awesome_feature) |
(fill me in with today's date, YYYY-MM-DD) |
(name of the main author) |
(find a buddy later to help out with the RFC) |
(names, to be nominated and accepted by RFC steering committee) |
(name to be appointed by RFC steering committee) |
(will contain links to implementation PRs) |
One paragraph explanation of the feature.
Why are we doing this? What use cases does it support? What is the expected outcome?
This is the core, normative part of the RFC. Explain the design in enough detail for somebody familiar with the ecosystem to understand, and implement. This should get into specifics and corner-cases. Yet, this section should also be terse, avoiding redundancy even at the cost of clarity.
This section illustrates the detailed design. This section should clarify all confusion the reader has from the previous sections. It is especially important to counterbalance the desired terseness of the detailed design; if you feel your detailed design is rudely short, consider making this section longer instead.
What are the disadvantages of doing this?
What other designs have been considered? What is the impact of not doing this? For each design decision made, discuss possible alternatives and compare them to the chosen solution. The reader should be convinced that this is indeed the best possible solution for the problem at hand.
You are unlikely to be the first one to tackle this problem. Try to dig up earlier discussions around the topic or prior attempts at improving things. Summarize, discuss what was good or bad, and compare to the current proposal. If applicable, have a look at what other projects and communities are doing. You may also discuss related work here, although some of that might be better located in other sections.
What parts of the design are still TBD or unknowns?
What future work, if any, would be implied or impacted by this feature without being directly part of the work?