This repository houses RFCs.
Why have an RFC policy for your org? Read more about Oxide Computer's Process here and how Uber used RFCs in their process here.
An RFC may be in the following states:
- Ideation
- Discussion
- Approved
- Implementing
- Abandoned
- Complete
The Ideation
state is for the original author(s) to iterate on their RFC.
When ready for comments, the author(s) may move their RFC to Discussion
.
If the authors feel their proposal should be abandoned, they may move their RFC to Abandoned
.
The Discussion
state is for people other than the original author(s) to review and leave comments on the RFC.
Once discussion is finalized, and the idea is ready to move forward, the author(s) may move their RFC to Approved
.
If the author(s) feel their RFC should be abandoned, they may move their RFC to Abandoned
.
The Approved
state is where RFCs wait before being implemented.
Once a team has decided to implement the RFC, that team may move the RFC to Implementing
.
If the author(s) feel their RFC should be abandoned, they may move their RFC to Abandoned
.
The Implementing
state is where RFCs are implemented.
If the team in charge of implementing the RFC completes implementation of the RFC, that team may move the RFC to Complete
.
If the team in charge of implementing the RFC decides that the RFC requires more discussion, they may move the RFC back to the Discussion
state.
The Abandoned
state is where RFCs are left if the author(s) choose not to move forward with the ideas outlined in the RFC.
An Abandoned
proposal may be unabandoned, where it may be moved back to the Discussion
state.
The Complete
state is where finished RFCs rest.
There are no transitions from the Complete
state.
You'll need pandoc
for this repository.
On Mac OS X, you can install it with brew install pandoc
.
On Windows, you can install it with choco install pandoc
.
On Linux Distributions, check your package manager:
On Debian/Ubuntu, you can install it with apt-get install pandoc
.
If you'd like to regenerate the state diagram, you'll require graphviz
.
On Mac OS X, you can install it with brew install graphviz
.
On Windows, you can install it with choco install graphviz
.
On Linux Distributions, check your package manager:
On Debian/Ubuntu, you can install it with apt-get install graphviz
.
To create a new RFC, run bin/new
. This will create a new folder under rfcs
with the left padded RFC identifier for your RFC. In there, you'll find a README.md
file which has been filled out with some YAML frontmatter (based on your git user.email
and user.name
).
To create an HTML website of your current RFCs, run bin/build
. This will build a website in the dist
folder that houses all of your RFCs, along with a list of RFCs as the homepage.
To update the states diagram, run bin/gen-states
. This will require graphviz, and will take the states.gv
file and generate a states.png
file based off the graphviz schema.