-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature flag design proposal #381
Comments
Personally I would swap the term As for the term |
I also prefer |
I think |
I'm fine with Note that we need to add the the feature state/phase to PRs/git commit, the result be would look like:
Note the overuse of the term "feature"... Also, the change log has a section "features". Btw, the idea is to not include non-stable/non-gold features in the changelog. Or they could be added to their own section (Alpha Features/Beta Features). And in the code it would look like:
Also if we use I like my original suggestion more, but up to you guys...
And in the code it would look like:
Less stuttering of the term "feature"... |
Current suggestion: Package: |
I agree with this that the term feature has been used and referred to a lot of places. Maybe we can name the package as I am down with features rolling our in phases like alpha, beta and stable. For flags, since we have 3 statuses we can have something --alpha, --beta, or --stable with boolean flags. In my opinion from user's perspective this looks more intuitive. Suggestion for PR body:
OR
|
Ok with this.
What is this a github label or for the PR body? Also |
@leolara Sorry "PR category" was a typo, it should rather by "PR tag", see https://github.com/ObolNetwork/charon/blob/main/docs/contributing.md#pr-template |
@corverroos alright man!! |
Ito
|
@corverroos please, put it in a few files, like constants.go config.go and featureset.go (with Init and Enabled). Having everything in the same file makes it more difficult to edit and find. |
Do we really need to split 100 lines of code into separate files? |
In general in go we separate by component or subcomponent subject not by number of lines |
Updates the `verifypr` to validate feature_set tag, also update docs and PR template. category: misc ticket: #381
Implement `featureset` package as per design proposal. category: feature ticket: #381
Problem to be solved
Once we have released versions of charon running in the wild (public testnets), we need to be much more careful and controlled about how we rollout new features. Some features might be high risk, and we might want phase then in gradually over time (e.g. simnet only, then devnet, then testnet, and then mainnet).
Some considerations:
Proposed solution
rollout
.alpha
,beta
,gold
.alpha
are unstable and only to be used/tested by the core team.beta
are more stable can be used/tested by the community (opt in), but still lacks confidence for general availability.gold
are stable and generally available.rollout
enumerates a set ofFeature
strings that are each hardcoded to aPhase
.run
command has a flag--rollout
which defaults togold
but can be set toalpha
orbeta
.if
statements:if rollout.Enabled(rollout.FeatureFoo) {
--rollout-enable=csv,list,of,features
/--rollout-disable
The text was updated successfully, but these errors were encountered: