jejacks0n / jejacks0n/activeexperiment
Create a managed rollout strategy.
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 5
- Forks
- 0
- Avg merge
- 13h 44m
- Merged PRs (30d)
- 7
Description
After adding the dashboard to review experiments, their lifecycles, and their data, it had me thinking that it would be nice to be able to toggle on managing lifecycle from that dashboard as well. This isn't particularly hard, and since the api is already present, we just need to expose the interface and actions. This also had me thinking about changing the properties of a rollout strategy, which I didn't love. Like, if you've selected the percent rollout strategy, and defined the percents -- it doesn't make sense that someone should be able to change those in an interface later, because the code then doesn't hold truth.
But it does hold truth if the code communicates that it's a managed rollout value. So, I propose adding a rollout strategy that's named "Managed", and then we can add an interface in activeexperiment-dashboard for this. I assume this should go in the dashboard gem, but I wanted to document it here and where it's implemented might not matter. The implementation would look like this in an experiment, and this is what makes me feel like it's ok:
class MyExperiment < ApplicationExperiment
variant(:red) { :red }
variant(:blue) { :blue }
use_rollout :managed, default: { red: 50, blue: 50 }
end
That communicates that the default is 50/50, and that it's managed (and so might change, so you should go check that). I think this gives you everything you might need to verify the status of the experiment rollout from the code, and doesn't trick you into thinking that the code is the truth when it might not be.
Contributor guide
No contributing guide indexed for this repository
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
Start by reviewing the existing rollout strategy API and the activeexperiment-dashboard area mentioned in the issue, including how lifecycle actions are currently exposed. Done means a Managed rollout strategy supports the shown default configuration and the dashboard exposes controls for managing experiment lifecycle and rollout values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- backend-api-design, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100