RFCs are meant to be an informal communication for starting a discussion on a particular feature, design, protocol, process, or anything else relating to Eve and the Eve community.
Our community is in the early stages, so we're still figuring out how we want this proces to work. Most likely, the RFC process will continually evlolve to accomodate the needs of the Eve community as it grows.
RFCs are meant to facilitate discussion on issues that are larger or more controversial than would be appropriate for typical pull request. For example, this could include large design changes, changes to internal architecture, new feature proposals, etc. An RFC would not be appropriate for a small bugfix, or largely cosmetic changes.
There is no one "test" that elevates a pull request to an RFC. However, one good rules is that an RFC is appropriate when the proposal affects disparate areas of the Eve community, especially across team boundries. For example, a change to the syntax would effect everything from the parser to user programs, so it would certainly warrant an RFC.
We're trying to keep this process pretty informal to encourage as much participation as possible, but we also want to have some mechanisms in place to keep things organized and running smoothly. Here is an overview of how the RFC process it works:
- A community member submits an RFC in the form of a pull request to this repository.
- The Eve community will review and categorize the RFC.
- The relevant stakeholders concerning the RFC will be identified and invited to discuss the RFC.
- All stakeholders will discuss the RFC, and attempt to build concensus and integrate changes into the RFC.
- Once consenus is reached, the RFC will either be accepted and merged into this repository, or rejected.
An accepted RFC means that the proposal is on its way to becoming part of Eve, but the serious work of implementing the feature is still ahead.
There is no particular format or length for an RFC, but the following section headers are a good place to start:
- Summary
- Motivation
- Design
- Implementation
- Drawbacks
- Alternatives
- Risks
Again, feel free to use any or all of these sections, or add your own as you see fit.
To open an RFC, just draft your proposal and create a new pull request in this repository. Your RFC will be tagged and reviewd by someone in the Eve community (we still need to work out an infrastucture for this procee), and the RFC will be discussed by the community. They may suggest changes, point out competing or similar RFCs, and eventually the RFC will either be merged or rejected.
If the RFC is merged, it will be assigned an issue where discussion can take place. Depending on the RFC, discussion may be directed to an external venue, but for transparency and posterity, we would appreciate that any discussion in an alternative venue be logged (meeting minutes, summary of a conversation, chat transcript, etc.) and linked in the original issue.