You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 17, 2023. It is now read-only.
A notion for testing features in an experimental addon is to ship lots of alternate code branches and flip conditionally between them. We've done this a lot on Django sites at Mozilla with django-waffle.
What might be interesting is to have experiment addons talk to the Idea Town addon (e.g. via nsIObserverService) to obtain feature flipping configuration data - which in turn can come from the Idea Town server based on the authenticated user. This could let us do things like A/B testing, incremental roll out, etc.
Breaking this out into subtasks off the top of my head:
Data model for features defined for a given experiment.
Data model for feature flags for a particular user experiment installation
Server-side API resource for a user's experiment feature flags
Admin integration for managing features, both for defining features and for individual user/experiment flag state
Any logic needed to come up with the feature flags for a particular user installation (e.g. segmentation, incremental rollout, etc. django-waffle could be an inspiration)
Metrics integration so that we can measure things based on the feature state for any given user
Example experiment addon code to show how to fetch feature flag data from the main addon and how to use it in conditionally enabling features
A notion for testing features in an experimental addon is to ship lots of alternate code branches and flip conditionally between them. We've done this a lot on Django sites at Mozilla with django-waffle.
What might be interesting is to have experiment addons talk to the Idea Town addon (e.g. via nsIObserverService) to obtain feature flipping configuration data - which in turn can come from the Idea Town server based on the authenticated user. This could let us do things like A/B testing, incremental roll out, etc.
Breaking this out into subtasks off the top of my head: