Method to enable new features in experimental mode
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 466
- Forks
- 338
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 8
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not identify files, tests, or an entry point. Start by locating tiup's configuration parsing and feature-selection code, then define the configuration format, naming rules, conditional behavior, telemetry needs, and criteria for enabling, making default, and removing a feature.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100