- Start Date: YYYY-MM-DD
- RFC PR: #
- Authors:
- State: DRAFT
One paragraph explanation of the feature.
Why are we doing this? What user stories does it support? What is the expected outcome?
- As a ..., I want to ..., so that I ... .
This is the bulk of the RFC.
Explain the design in enough detail for somebody familiar with the framework to understand, and for somebody familiar with the implementation to implement. This should get into specifics and corner-cases, and include examples of how the feature is used. Any new terminology should be defined here.
Show a concrete example of what the RFC implies. This will make the consequences of adopting the RFC much clearer.
As with other sections, use it if it makes sense for your RFC.
What names and terminology work best for these concepts and why? How is this idea best presented? As a continuation of existing Invenio patterns, or as a wholly new one?
Would the acceptance of this proposal mean the Invenio documentation must be re-organized or altered? Does it change how Invenio is taught to new users at any level?
How should this feature be introduced and taught to existing Invenio users?
Why should we not do this? Please consider the impact on teaching Invenio, on the integration of this feature with other existing and planned features, on the impact of the API churn on existing apps, etc.
There are tradeoffs to choosing any path, please attempt to identify them here.
What other designs have been considered? What is the impact of not doing this?
This section could also include prior art, that is, how other frameworks in the same domain have solved this problem.
Optional, but suggested for first drafts. What parts of the design are still TBD? Use it as a todo list for the RFC.
Which resources do you have available to implement this RFC and what is the overall timeline?