Background
We would like to be able to release individual feature for the desktop improvements project sequentially. We would also like the ability to feature flag each feature in order to make iteration easier and to make it possible to do a/b testing on selected features
Requirements
- A/B testing
- Retaining certain feature flags (does not need to be per-feature)
- Ability to deploy per wiki
- Ability to opt-out
- Continued maintenance of legacy vector skin
Note: future ability to split into basic and advanced modes
Note: feature flag retention is so that we can maintain the ability to release portions to different wikis. By the end of the project, all feature flags will be removed. We are not expecting different configurations per wiki.
States
copying the table from the parent epic:
Feature Status | Opt-out button | Setting | |
Anon, test wiki | on | none | none |
Logged-in, test wiki | on | yes, button in sidebar | legacy vector toggle turned off |
Anon, non-test wiki | off | none | none |
Logged-in, non-test wiki | off | none | legacy vector toggle turned on |
Acceptance Criteria
Research, consult the team, and create a suggested structure for feature management in desktop improvements (must support A/B testing, SSR PHP + HTML + CSS + JS paths)
Investigate the following:
- How do we separate code in vector?
- Would this have any relation to BetaFeatures
Notes/questions from offsite
- How can we grow the set of test wikis continuously? Who do we need to talk to in order for that to happen?
- We should have a strategy on how to remove feature flags along with criteria for flag removal