Closed Bug 1620021 Opened 5 years ago Closed 5 years ago

Implement ExperimentManager and API that can integrate with MS and Normandy

Categories

(Firefox :: Messaging System, enhancement, P1)

enhancement

Tracking

()

VERIFIED FIXED
Firefox 77
Iteration:
77.1 - Apr 6 - Apr 19
Tracking Status
firefox76 + verified
firefox77 --- verified

People

(Reporter: k88hudson, Assigned: k88hudson)

References

Details

Attachments

(4 files)

In order to support Messaging System Experiments, I'd like to implementing an ExperimentManager module that handles branch generation, caching, telemtry, and other elements of experiment lifecycle management. Right now these are handled individually for Prefs and Addons so we'd have to implement them separately for Messaging System / AboutWelcome anyway.

It should:

  • Expose lifecycle methods for handling new recipes, ready states
  • Work at startup and first run
  • Provide an API that allows consumer code (including the MessagingSystemRouter and about:welcome) to retrieve experiment state and handle error or update events, in both the parent and content processes.

Depends on D65365

Depends on D65366

Assignee: nobody → khudson
Priority: -- → P1
Iteration: --- → 76.1 - Mar 9 - Mar 22
Blocks: simple-aw
Iteration: 76.1 - Mar 9 - Mar 22 → 76.2 - Mar 23 - Apr 5
Iteration: 76.2 - Mar 23 - Apr 5 → 77.1 - Apr 6 - Apr 19
Attachment #9130840 - Attachment description: Bug 1620021 - (Experimental) Integrate aboutwelcome with ExperimentManager → Bug 1620021 - Integrate aboutwelcome with ExperimentManager
Pushed by khudson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/50bc2329abae
Add ExperimentsManager and ExperimentAPI r=mythmon
https://hg.mozilla.org/integration/autoland/rev/600778a596aa
Integrate ExperimentManager with Normandy r=mythmon
Pushed by khudson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/392200a6f8ea
Add ExperimentsManager and ExperimentAPI r=mythmon
https://hg.mozilla.org/integration/autoland/rev/c4d219534696
Integrate ExperimentManager with Normandy r=mythmon
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 77

[Tracking Requested - why for this release]: this is intended for uplift into Beta and will provide a new way to control feature flag experiments without relying on prefs

Pushed by khudson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/835b24a1d43e
Integrate aboutwelcome with ExperimentManager r=andreio

Comment on attachment 9130838 [details]
Bug 1620021 - Add ExperimentsManager and ExperimentAPI

Beta/Release Uplift Approval Request

  • User impact if declined: We will not be able to launch the onboarding Pull Factor Experiment in Firefox 76. This is critical for us to be able to learn about how to make onboarding better and do more experimentation in Q2.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: [Punam to add]
  • List of other uplifts needed: Bug 1624309
  • Risk to taking this patch: Medium
  • Why is the change risky/not risky? (and alternatives if risky): Note that we are still in the process of verifying in Nightly today since this requires real content to be published to Remote Settings to test.

Risk is medium because although we could run into unexpected bugs:
(a) we can turn it off via a pref / unpublish any remote data from remote settings
(b) the failure state it does not have any user-facing effects, since it only controls experimentation enrollment

  • String changes made/needed: None
Flags: needinfo?(khudson)
Attachment #9130838 - Flags: approval-mozilla-beta?
Attachment #9130840 - Flags: approval-mozilla-beta?
Flags: qe-verify+
Flags: needinfo?(pdahiya)

Can you help add steps to test launching the pull-factor experiment via RS staging (feel free to link to a document)?

Flags: needinfo?(pdahiya)
QA Whiteboard: [qa-triaged]

I have verified that the "variant_1" version of the "about:welcome" page is successfully displayed after following the steps from here using the latest Firefox Nightly (77.0a1 Build ID - 20200421094220) installed on Windows 10 x64.
However, we have not tested this enhancement on macOS and Linux, because as far as we know, from the past experiments, a "first-run" experiment type depends on the full installer which is available only on Windows.

Punam, could you please tell us if the experiment will target other platforms besides Windows?
I'm asking this because we observed that there is a discrepancy between the "Experimentation Platform Design for about:welcome in 76" doc and the experimenter ticked, more exactly the documentation says that the experiment will target the Windows platform only (due to FirstStartup first-run limitations), meanwhile, the experimenter ticket states that the experiment will target all the platforms.

Flags: needinfo?(pdahiya)

(In reply to Marius Coman [:mcoman], Ecosystem QA from comment #14)

I have verified that the "variant_1" version of the "about:welcome" page is successfully displayed after following the steps from here using the latest Firefox Nightly (77.0a1 Build ID - 20200421094220) installed on Windows 10 x64.
However, we have not tested this enhancement on macOS and Linux, because as far as we know, from the past experiments, a "first-run" experiment type depends on the full installer which is available only on Windows.

Punam, could you please tell us if the experiment will target other platforms besides Windows?
I'm asking this because we observed that there is a discrepancy between the "Experimentation Platform Design for about:welcome in 76" doc and the experimenter ticked, more exactly the documentation says that the experiment will target the Windows platform only (due to FirstStartup first-run limitations), meanwhile, the experimenter ticket states that the experiment will target all the platforms.

Hi Marius,
I have updated ticket to reflect the experiment will be Windows only . Thanks!

Flags: needinfo?(pdahiya)

Comment on attachment 9130838 [details]
Bug 1620021 - Add ExperimentsManager and ExperimentAPI

Needed for experiments targeting 76. Approved for 76.0b7.

Attachment #9130838 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9130839 - Flags: approval-mozilla-beta+
Attachment #9130840 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Backed out 4 changesets (bug 1620021, bug 1624309) for causing browser-chrome faliures on browser_aboutwelcome_simplified.js and browser_ext_themes_ntp_colors.js a=Backout

Backout revision https://hg.mozilla.org/releases/mozilla-beta/rev/19a84d3cda6d15e0bf9f52fa67ed0fd2877b1704

Failed push https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta&resultStatus=testfailed%2Cbusted%2Cexception&revision=22851affc3b941cff06a869f2b322ccc60c789c0&searchStr=bc

Failure logs https://treeherder.mozilla.org/logviewer.html#?job_id=298703999&repo=mozilla-beta for browser_ext_themes_ntp_colors.js
https://treeherder.mozilla.org/logviewer.html#?job_id=298704015&repo=mozilla-beta for browser_aboutwelcome_simplified.js

Kate can you please take alook?

Flags: needinfo?(khudson)
Pushed by khudson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1877c5d6fa3e
Dont block aboutwelcome on loading experiments from disk r=andreio

The additional patch I landed https://phabricator.services.mozilla.com/D71932 should resolve the intermittent test failures and should apply cleanly to beta as well, do I need to add a separate request for that?

Flags: needinfo?(khudson) → needinfo?(ryanvm)

Comment on attachment 9142354 [details]
Bug 1620021 - Dont block aboutwelcome on loading experiments from disk

Beta/Release Uplift Approval Request

  • User impact if declined: This is a fix to address the test failures in the other dependent patches.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky):
  • String changes made/needed:
Attachment #9142354 - Flags: approval-mozilla-beta?

Comment on attachment 9142354 [details]
Bug 1620021 - Dont block aboutwelcome on loading experiments from disk

I did a sanity check Try push and things look good. Thanks for the quick fix. Let's retry this for 76.0b8.

Flags: needinfo?(ryanvm)
Attachment #9142354 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

This enhancement was part of the experiment work from PI-580 that was signed off as GREEN. Considering this I am marking this enhancement as VERIFIED.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: