cilium/design-cfps

Add "State" to the template

xmulligan opened this issue · 2 comments

Having some form of "State" field (like "provisional", "implementable", "implemented") is useful because it allows us to merge an early design and update it later if we want. (We can just go straight to implemented though).

Bringing some additional context over from #24:

It is useful to understand the status of CFPs as they make their way into this repository, so that stakeholders involved in the discussions are aligned around the degree of agreement on various aspects of each CFP.

I agree that the "state" around whether the CFP is provisionable / implementable / implemented is useful to gauge where in the process the CFP currently is.

We should probably also consider whether to document target maturity levels of features such as alpha, beta, etc. We can likely draw inspiration from Kubernetes upstream, Gateway API, and others to inform best practices here. While the provisional / implementable / implemented would help to capture how far along the CFP process that the implementation has proceeded, the alpha/beta/ga tags could help to define the criteria necessary for a CFP to be considered "implemented".

Some suggested questions that the process in this issue should solve:

  • What does it mean if a CFP is merged into this repository?
  • How does an author iterate on a CFP if there is uncertainty or the implementation details impact the design over time?
  • How does an author drive a feature towards becoming a generally available / stable feature?

@xmulligan I think this can be closed out?