Skip to content

Method to enable new features in experimental mode #1278

Open
@rkazak

Description

@rkazak

Feature Request

Is your feature request related to a problem? Please describe:

Just thinking of how best to work on issues like #390 and #1255 and I think that a method/process by which we can introduce and use new or behavior changing features is required.

Describe the feature you'd like:

I think we can first have an optional section in the config file say [experimental_features] and under that we can have an entry which say that the feature as represented by the issue number, e.g. 390 or 1125 is enabled. then in the code we conditionally enable/use the new feature. Using the Issue number ties things back to an issue and it discussion, though not necessarily required but helps with tracking...

[experimental_features]
enable_390
enable_SomethingNew

Then in the code we check

if (feature_flag[enable_390]) {

  • new changed code
    } else {
    original
    }

Describe alternatives you've considered:

Alternative are special builds

Teachability, Documentation, Adoption, Migration Strategy:

This should help us when we have behavior breaking changes, and also when enabled we can grab telemetry and user feedback. When such a change is deemed to be approved we can then reverse the condition so that should there be any missed issues it can be revered and once proved the conditional code be made default and old code removed in a sub-sequent version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    difficulty/hardIndicates that a issue is hard to resolve.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.status/discussIndicates that the issue is in discussion, if no reply for long time, the issue will be closed.type/feature-requestCategorizes issue as related to a new feature.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions