RFCs/0000-template.md

2.4 KiB

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)

Summary

One paragraph explanation of the feature.

Motivation

Why are we doing this? What use cases does it support? What is the expected outcome?

Detailed design

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.

Examples and Interactions

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.

Drawbacks

What are the disadvantages of doing this?

Alternatives

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.

Prior art

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.

Unresolved questions

What parts of the design are still TBD or unknowns?

Future work

What future work, if any, would be implied or impacted by this feature without being directly part of the work?