Description
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.