Vercre RFCs

Vercre uses an RFC (request for comment) process for instigating major change to any project. We see RFCs as a tool for getting feedback on design and implementation ideas and for consensus-building among stakeholders.

See the Vercre RFC repo for a complete list of RFCs.

What is an RFC?

An RFC lays out a problem along with a proposed solution. To support getting early feedback, RFCs can come in draft or full forms. Draft RFCs should be opened as draft PRs.

In either case, discussion happens by opening a pull request to place the RFC into the accepted directory.

When is an RFC needed?

Many changes to Vercre projects can and should happen through every-day GitHub processes — issues and pull requests. An RFC is warranted when:

  • There is a change that will significantly affect stakeholders. For example:

    • Major architectural changes
    • Major new features
    • Simple changes that have significant downstream impact
    • Changes that could affect guarantees or level of support, e.g. removing support for a target platform
    • Changes that could affect mission alignment, e.g. by changing properties of the security model
  • The work is substantial and you want to get early feedback on your approach.

Workflow

Creating and discussing an RFC

  • The RFC process begins by submitting a (possibly draft) pull request, using one of the two templates available in the repository root. The pull request should propose to add a single markdown file into the accepted subdirectory, following the template format, and with a descriptive name.

  • The pull request is tagged with a project label designating the project it targets.

  • Once an RFC PR is open, stakeholders and project contributors will discuss it together with the author, raising any points of concern, exploring tradeoffs, and honing the design.

Making a decision

Merge the PR or close it without further action. If the PR is merged, the RFC is considered accepted and the author can begin work on the implementation.