Skip to content

Commit fb7a27d

Browse files
authored
Merge pull request #10 from woop/master
Added rfcs/ folder with readme and template
2 parents 8707c3a + ca53896 commit fb7a27d

2 files changed

Lines changed: 128 additions & 0 deletions

File tree

rfcs/0000-template.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
- Feature Name: (fill me in with a unique ident, my_awesome_feature)
2+
- Created Date: (fill me in with today's date, YYYY-MM-DD)
3+
- RFC PR: (leave this empty)
4+
- Feast Issue: (leave this empty)
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
One paragraph explanation of the feature.
10+
11+
# Motivation
12+
[motivation]: #motivation
13+
14+
Why are we doing this? What use cases does it support? What is the expected outcome?
15+
16+
# Guide-level explanation
17+
[guide-level-explanation]: #guide-level-explanation
18+
19+
Explain the proposal as if the change was already included in Feast and you are teaching it to a Feast user. That generally means:
20+
21+
- Introducing new named concepts.
22+
- Explaining the feature largely in terms of examples.
23+
- Explain how users should think about the feature, and how it should impact the way they use Feast. Explain the impact as concretely as possible.
24+
25+
# Reference-level explanation
26+
[reference-level-explanation]: #reference-level-explanation
27+
28+
This is the technical portion of the RFC. Explain the design in sufficient detail that:
29+
30+
- Its interaction with other features is clear.
31+
- It is reasonably clear how the feature would be implemented.
32+
- Corner cases are dissected by example.
33+
34+
The section should return to the examples given in the previous section, and explain more fully how the detailed proposal makes those examples work.
35+
36+
# Drawbacks
37+
[drawbacks]: #drawbacks
38+
39+
Why should we *not* do this?
40+
41+
# Rationale and alternatives
42+
[rationale-and-alternatives]: #rationale-and-alternatives
43+
44+
- Why is this design the best in the space of possible designs?
45+
- What other designs have been considered and what is the rationale for not choosing them?
46+
- What is the impact of not doing this?
47+
48+
# Prior art
49+
[prior-art]: #prior-art
50+
51+
Discuss prior art, both the good and the bad, in relation to this proposal.
52+
A few examples of what this can include are:
53+
54+
- Does this feature exist in other software(s) and what experience has their community had?
55+
- For community proposals: Is this done by some other community and what were their experiences with it?
56+
- For other teams: What lessons can we learn from what other communities have done here?
57+
58+
This section is intended to encourage you as an author to think about the lessons from other projects, provide readers of your RFC with a fuller picture. If there is no prior art, that is fine - your ideas are interesting to us whether they are brand new or if it is an adaptation.
59+
60+
# Unresolved questions
61+
[unresolved-questions]: #unresolved-questions
62+
63+
- What parts of the design do you expect to resolve through the RFC process before this gets merged?
64+
- What parts of the design do you expect to resolve through the implementation of this feature before stabilization?
65+
- What related issues do you consider out of scope for this RFC that could be addressed in the future independently of the solution that comes out of this RFC?
66+
67+
# Future possibilities
68+
[future-possibilities]: #future-possibilities
69+
70+
Think about what the natural extension and evolution of your proposal would
71+
be and how it would affect the project as a whole in a holistic
72+
way. Try to use this section as a tool to more fully consider all possible
73+
interactions with the project in your proposal.
74+
Also consider how the this all fits into the roadmap for the project
75+
and of the relevant sub-team.
76+
77+
This is also a good place to "dump ideas", if they are out of scope for the
78+
RFC you are writing but otherwise related.
79+
80+
If you have tried and cannot think of any future possibilities,
81+
you may simply state that you cannot think of anything.
82+
83+
Note that having something written down in the future-possibilities section
84+
is not a reason to accept the current or a future RFC; such notes should be
85+
in the section on motivation or rationale in this or subsequent RFCs.
86+
The section merely provides additional information.

rfcs/README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Feast RFCs
2+
3+
[Feast RFCs]: #feast-rfcs
4+
5+
Many changes, including bug fixes and documentation improvements can be
6+
implemented and reviewed via the normal GitHub pull request workflow.
7+
However, any substantial changes should be put through a design process and
8+
produce a concensus.
9+
10+
The "RFC" (request for comments) process is intended to provide a consistent
11+
and controlled path for new features to enter the project.
12+
13+
## What the process is
14+
[What the process is]: #what-the-process-is
15+
16+
In short, to get a major feature added to Feast, one must first get the RFC
17+
merged into the RFC repository as a markdown file. At that point the RFC is
18+
"active" and may be implemented with the goal of eventual inclusion into Feast.
19+
20+
- Clone the `feast` repository.
21+
- Copy `rfc/0000-template.md` to `rfc/0000-my-feature.md` (where "my-feature" is
22+
descriptive. don't assign an RFC number yet).
23+
- Fill in the RFC. Put care into the details: RFCs that do not present
24+
convincing motivation, demonstrate understanding of the impact of the
25+
design, or are disingenuous about the drawbacks or alternatives tend to be
26+
poorly-received.
27+
- Submit a pull request. As a pull request the RFC will receive design
28+
feedback from the larger community, and the author should be prepared to
29+
revise it in response.
30+
- Build consensus and integrate feedback. RFCs that have broad support are
31+
much more likely to make progress than those that don't receive any
32+
comments. Feel free to reach out to the RFC assignee in particular to get
33+
help identifying stakeholders and obstacles.
34+
- The core team will discuss the RFC pull request, as much as possible in the
35+
comment thread of the pull request itself. Offline discussion will be
36+
summarized on the pull request comment thread.
37+
- Once the consensus is reached, the approvers will merge in the pull request
38+
after which the implementation phase begins.
39+
40+
## Attribution
41+
42+
This process and template is based on [Rust RFCs](https://github.com/rust-lang/rfcs).

0 commit comments

Comments
 (0)