Skip to content

Commit

Permalink
Merge pull request #2 from cilium/xmulligan-patch-1
Browse files Browse the repository at this point in the history
Add README.md and template
  • Loading branch information
xmulligan authored Feb 23, 2023
2 parents cf14695 + 7a45634 commit 4e37f23
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 2 deletions.
56 changes: 54 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,54 @@
# design-cfps
Repo to store Cilium CFP design docs
This directory contains CFP design proposals for features impacting repos across the
Cilium Github organization.

# Purpose of CFPs

The purpose of a Cilium Feature Proposal (CFP) is to allow community members to gain feedback
on their designs from the Committers before the community member commits to
executing on the design. By going through the design process, developers gain a
high level of confidence that their designs are viable and will be
accepted.

NOTE: This process is not mandatory. Anyone can execute on their own design
without going through this process and submit code to the respective repos.
However, depending on the complexity of the design and how experienced the
developer is within the community, they could greatly benefit from going through
this design process first. The risk of not getting a design proposal approved
is that a developer may not arrive at a viable architecture that the community will
accept.

# How to create CFPs

To create a CFP, it is recommended to use the `CFP-003-template.md`
file as an outline. The structure of this template is meant to provide a starting
point for people. Feel free to edit and modify your outline to best fit your
needs when creating a proposal. When are you ready to submit your CFP please:

1. Create a CFP issue in the repo your design applies to if you haven't already
2. Create the file in this repo, with a path of `<repo>/CFP-###-subject.md` where the number is the CFP issue number

Many design docs also begin their life as a Google doc or other shareable
file for easy commenting and editing when still in the early stages of discussion.
Once your proposal is done, submit it as a PR to the design-cfps folder.

If you want to bring further attention to your design, you may want to
raise the design during the [weekly community call](https://docs.cilium.io/en/v1.13/community/community/#id1)
and on the [#development channel in Slack](https://cilium.slack.com/archives/C2B917YHE).

# Getting a design approved

For a CFP to be considered viable, a Cilium committer needs to aprove it.
After the approval, the design can be merged. A merged design proposal
means the proposal is viable to be executed on, but not that there is a
100% chance it will be accepted.

# Design proposal drift

After a design proposal is merged, it's likely that the actual implementation
will begin to drift slightly from the original design. This is expected and
there is no expectation that the original design proposal needs to be updated
to reflect these differences.

The code and our documentation are the ultimate sources of truth. CFPs are merely
the starting point for the implementation.

82 changes: 82 additions & 0 deletions cfps/CFP-003-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# CFP-003: Template

**SIG: SIG-NAME**

**Begin Design Discussion:** YYYY-MM-DD

**Cilium Release:** X.XX

**Authors:** alice <[email protected]>, bob jones <[email protected]>

## Summary

_Provide a high-level summary. Keep it short._

## Motivation

_Provide the motivation for the feature. Also provide any context required to understand the motivation. The motivation should justify any potential impact._

## Goals

* _List goals that this CFP achieves._

## Non-Goals

* _List aspects which are specifically out of context for this CFP._

## Proposal

### Overview

_Provide a high-level overview of the design aspects of the proposal._

### Section 1

_Section with proposal content_

### Section 2

_Section with proposal content_


## Impacts / Key Questions

_List crucial impacts and key questions. They likely require discussion and are required to understand the trade-offs of the CFP. During the lifecycle of a CFP, discussion on design aspects can be moved into this section. After reading through this section, it should be possible to understand any potentially negative or controversial impact of this CFP. It should also be possible to derive the key design questions: X vs Y._

### Impact: ... 1

_Describe crucial impacts and key questions that likely require discussion and debate._

### Key Question: ... 2

_Describe a key question_

### Option 1:

#### Pros

* ...

#### Cons

* ...

### Option 2:

#### Pros

* ...

#### Cons

* ...

## Future Milestones

_List things that this CFP will enable but that are out of scope for now. This can help understand the greater impact of a proposal without requiring to extend the scope of a CFP unnecessarily._

### Deferred Milestone 1

_Description of deferred milestone_

### Deferred Milestone 2

0 comments on commit 4e37f23

Please sign in to comment.