Git Product home page Git Product logo

ofep_final's Introduction

Open Feature Enhancement Proposals(OFEP)

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: Open Feature Enhancement proposals, which comes from the lineage of PEP much like the Kubernetes project uses KEP and Open-Telemetry project uses OTEP.

Is My Thing an enhancement?

We are trying to figure out the exact shape of an enhancement. Until then, here are a few rough heuristics.

An enhancement is anything that:

  • a blog post would be written about after its release (eg. Client-side Feature Flagging)
  • requires multiple parties/owners participating to complete (eg. Client-side Feature Flagging [Specification & SDKs])
  • will be graduating from one stage to another
  • needs significant effort or changes OpenFeature in a significant way (eg. something that would take 10 person-weeks to implement, introduce or redesign a system component, or introduces Specification changes)
  • impacts the UX or operation of OpenFeature substantially such that engineers using OpenFeature will need retraining
  • users will notice and come to rely on

It is unlikely an enhancement if it is:

  • rephrasing, grammatical fixes, typos, etc
  • bug fixes
  • refactoring code
  • adding error messages or events
  • a thing that affects only a single language or implementation

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.

OFEP Scope

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!).

How to start with writing an OFEP?

  • First, create an issue using the Enhancement Proposal template.
  • Fill in the template. Put care into the details: It is important to present convincing motivation, demonstrate an understanding of the design's impact, and honestly assess the drawbacks and potential alternatives.

Discussing the OFEP

  • As soon as the above-mentioned issue is created, potential reviewers (based on the 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.
  • The OFEP author may choose any place for discussions but needs to be linked to the issue. The suggested ones include continuing in the same Github issue or creating a thread on Slack(https://cloud-native.slack.com/archives/C0344AANLA1) mentioning the issue.
  • The OFEP authors are responsible for collecting community feedback on an OFEP before submitting it as a proposal for review.

Submitting the OFEP and life-cycle

  • Once the idea of the proposal gets reviewed by the assigned reviewers, the OFEP author upon their discretion can then reference a Pull Request to the issue containing the proposal.
  • For adding the OFEP as a Pull Request, first, fork this repo.
  • Copy 000-OFEP-template.md to 000-OFEP-my-title.md, where my-title is a title relevant to your proposal, and 000 is the OFEP ID. Leave the number as is for now. Once a Pull Request is made, update this ID to match the next smallest available ID.
  • Fill in the template and please take care of the details as followed while creating the issue for Enhancement Proposal.
  • The initial status of an OFEP should be in drafting or pending for review stage.
  • An OFEP is approved when atleast two/three reviewers github-approve the PR but this surely depends on its nature. The OFEP is then merged.
  • If an OFEP is 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.
  • If an OFEP discussion becomes long, and the OFEP then goes through a major revision, the next version of the OFEP can be posted as a new PR, which references the old PR. The old PR is then closed. This makes OFEP review easier to follow and participate in.

Implementing the OFEP

Some accepted OFEPs represent vital features that need to be implemented right away. Other accepted OFEPs can represent features that can wait until some arbitrary developer feels like doing the work. Every accepted OFEP has an associated issue tracking its implementation in the repository specific to it; thus that associated issue can be assigned a priority via the triage process that the team uses for all issues in the Rust 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.

ofep_final's People

Contributors

mergify[bot] avatar mihirm21 avatar priyanshuy21 avatar shishir1604 avatar

Watchers

 avatar

ofep_final's Issues

[Proposal] ppppp

Category of Proposal

OpenFeature Operator

Describe your proposal

ppppp

[Proposal] OOPS

Category of Proposal

OpenFeature Operator

Describe your proposal

DSNDXNK

[Proposal] MM

Category of Proposal

OpenFeature Operator

Describe your proposal

No response

[Proposal] aadf

Category of Proposal

OpenFeature Operator

Describe your proposal

op boy saphfgfdvhknmmmmjjads

[Proposal]MM

Category of Proposal

Specification

Describe your proposal

OK OK OK

[Proposal] yayoyo

Category of Proposal

Specification

Describe your proposal

Name

Mihir Mittal

[Proposal] offo

Category of Proposal

OpenFeature Operator

Describe your proposal

offo

[Proposal] wtd

Category of Proposal

Specification

Describe your proposal

wtd

[Proposal] uep

Category of Proposal

Specification

Describe your proposal

name

mIHIR

[Proposal] ok

Category of Proposal

Specification

Describe your proposal

jfbhjbukwefj

[Proposal]MM

Category of Proposal

Specification

Describe your proposal

yo yo

[Proposal] Miir

Category of Proposal

Flagd

Describe your proposal

wjsidxiw

[Proposal] abc

Category of Proposal

OpenFeature Operator

Describe your proposal

hjh

[Proposal]

Category of Proposal

OpenFeature Operator

Describe your proposal

yep boy

[Proposal] shit boy

Category of Proposal

OpenFeature Operator

Describe your proposal

ofep

knljknbhjbhj

[Proposal] yae boy

Category of Proposal

Specification

Describe your proposal

name

hjsdzbcbsjcnkjnsk

[Proposal] oh dash

Category of Proposal

OpenFeature Operator

Describe your proposal

jswjndj

[Proposal] sorry

Category of Proposal

OpenFeature Operator

Describe your proposal

LNJKZNXNKDC

[Proposal] zzzz

Category of Proposal

OpenFeature Operator

Describe your proposal

dehbdxjs

[Proposal] duck

Category of Proposal

OpenFeature Operator

Describe your proposal

dskmkmsk

[Proposal] ok

Category of Proposal

OpenFeature Operator

Describe your proposal

ok

[Proposal] MM

Category of Proposal

OpenFeature Operator

Describe your proposal

NAME

[Proposal]acha

Category of Proposal

OpenFeature Operator

Describe your proposal

hvhbn

[Proposal]oops

Category of Proposal

OpenFeature Operator

Describe your proposal

##oopfsdjkenf

[Proposal] yup

Category of Proposal

Flagd

Describe your proposal

xs jmk
hhj

[Proposal] bsdk

Category of Proposal

OpenFeature Operator

Describe your proposal

dshjbhjbh

[Proposal]yo boy

Category of Proposal

OpenFeature Operator

Describe your proposal

yo shit

[Proposal] asdf

Category of Proposal

Specification

Describe your proposal

asdf

[Proposal] hello

Category of Proposal

Specification

Describe your proposal

name

Mihir

[Proposal] pffdv

Category of Proposal

Specification

Describe your proposal

hsdbcbsj

[Proposal]zzzz

Category of Proposal

Specification

Describe your proposal

ofof

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.