This repository serves as a focal point for research and experimental work. It also enables the creation of discussions, proposals and ideation through issues.
We use OFEP: OpenFeature Enhancement proposals, which comes from the lineage of PEP much like the Kubernetes project uses KEP and Open-Telemetry project uses OTEP.
You should create an OFEP for anything that:
It is unlikely an enhancement if it is:
Note: The above lists are intended only as examples and are not meant to be exhaustive. If you don't know whether a change requires an OFEP, please feel free ping someone listed in sdk-maintainers and cloud-native maintainers (or) ask in the CNCF OpenFeature Slack channel. If you are new, you can create a CNCF Slack account here.
While OFEPs are intended for "significant" changes, we recommend trying to keep each OFEP's scope as small as makes sense (eg. on broader scale, mentioning the category of the proposal). A general rule of thumb is that if the core functionality proposed could still provide value without a particular piece, then that piece should be removed from the proposal and used instead as an example (and, ideally, given its own OFEP!).
category of proposal
specified in the issue) would be automatically asked for review. This is done as a preventive measure to avoid long-winded and open-ended discussions in the early design phase of the proposal but the OFEP author should use their discretion here.OFEP-template.md
to OFEP/my-title.md
, where my-title
is a title relevant to your proposal. If you want to attach any image to the OFEP, add that image to the OFEP/images
folder and attach it to the OFEP in the format ![label](images/image-name.png "label")
.status
of an OFEP should be in drafting
or pending for review
stage.approved
when atleast two/three reviewers github-approve the PR but this surely depends on its nature. The OFEP is then merged.rejected
or withdrawn
, the PR is closed. Note that these OFEPs submissions are still recorded, as GitHub retains both the discussion and the proposal, even if the branch is later deleted.Some accepted OFEPs represent vital features that need to be implemented right away. Other accepted OFEPs can represent features that can wait until a community member decides to implement the functionality. Every accepted OFEP has an associated issue tracking its implementation in the specific repository.
The author of an OFEP is not obligated to implement it. Of course, the OFEP author (like any other developer) is welcome to post an implementation for review after the OFEP has been accepted.