Skip to content
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

Filter Object: Sticky #2137

Open
jaredlockhart opened this issue Mar 13, 2020 · 0 comments
Open

Filter Object: Sticky #2137

jaredlockhart opened this issue Mar 13, 2020 · 0 comments
Labels
blocked Depends on something else

Comments

@jaredlockhart
Copy link
Collaborator

jaredlockhart commented Mar 13, 2020

Stickyness is the idea that a client will match a certain set of criteria on first enrollment (the first time a recipe is evaluated by the Normandy Client), and a different set of criteria on subsequent evaluations by Normandy Client, so we call the recipe 'sticky'.

The theory is that the first clause matches on first enrollment, and the second clause matches on subsequent enrollments.

An example is here:

(
  !("trailhead.firstrun.didSeeAboutWelcome"|preferenceValue)
  || 
  normandy.studies.pref["pref-activity-stream-chrome-switchers-card-for-onboard-release-73-75-bug-1621101"]
)

The second clause, that the client is enrolled in the study, is automatically generated by the sticky filter object, so in this example it would take the first clause in as an argument and automatically wrap it with the second clause.

So very roughly, for each of the pref/addon study case:

sticky(A) -> (A || normandy.studies.pref["<pref study slug>"])
sticky(A) -> (A || normandy.studies.addon["<addon study slug>"])

The filter would need to figure out whether it's a pref or addon study by some means.

@jaredlockhart jaredlockhart added the blocked Depends on something else label Mar 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Depends on something else
Projects
None yet
Development

No branches or pull requests

1 participant