-
Notifications
You must be signed in to change notification settings - Fork 335
Method to enable new features in experimental mode #1278
Copy link
Copy link
Open
Labels
difficulty/hardIndicates that a issue is hard to resolve.Indicates that a issue is hard to resolve.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Denotes 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.Indicates 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.Categorizes issue as related to a new feature.
Milestone
Metadata
Metadata
Assignees
Labels
difficulty/hardIndicates that a issue is hard to resolve.Indicates that a issue is hard to resolve.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Denotes 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.Indicates 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.Categorizes issue as related to a new feature.
Type
Fields
Give feedbackNo fields configured for issues without a type.
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]) {
} 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.