Page MenuHomePhabricator

Fully adopt TestKitchen for experiment enrollment
Open, HighPublic

Description

As part of the SDS 2.1.3 goal in T360485: [EPIC] Newcomer homepage: Community updates module (FY23/24 WE1.3 / FY24/25 SDS2.1.3) it is desired to start using TestKitchen experiment variant assignment functionality instead of similar existing functionality in GrowthExperiments. The goal of this task is to define clear steps to dismantle the GrowthExperiments experiment management system.

Current status quo

ExperimentUserManager in GrowthExperiments is not "feature-flagged", that means that in practice any user interacting with GrowthExperiments features gets an experiment variant assigned. Even if there are no experiments in course, all users get the "control" variant assigned. In GrowthExperiments, being in the control group means getting all the enabled features for a given wiki.

GrowthExperiments assigns the experiment variant when a new local user is created. The variant is then stored in the user_property table, the relevant property is 'growthexperiments-homepage-variant'. The experiments run by Growth team across years have left a trace of variants across wikis.

Steps to dismantle the variant assignment
  1. Make GrowthExperiments not assign any experiment variant on account creation, T412942
  2. Lookup GrowthExperiments code checking for user to be in a variant, drop such logic, T416894
  3. Lookup GrowthExperiments code force setting a variant, drop such logic, T416894
  4. Lookup GrowthExperiments code expecting a variant to always be present (instrumentation at least), adapt such code to make the variant optional since only users part of an experiment will have one, T416894
  5. Lookup the rest of GrowthExperiments code depending on ExperimentUserManager and drop logic, T416894
  6. Remove 'growthexperiments-homepage-variant' user property from all wikis where it's present, T417621
  7. Remove Growth experiment management config variables: wgGEUserVariants, GEHomepageNewAccountVariantsByPlatform, T416894
  8. Lookup for CSS leftovers only applied to passed experiments, T416894

Affected files

Related Objects

StatusSubtypeAssignedTask
OpenNone
OpenSgs
ResolvedKStoller-WMF
DeclinedSgs
ResolvedSgs
Resolvedphuedx
ResolvedSgs
ResolvedCyndymediawiksim
OpenMichael
ResolvedSgs
ResolvedAAlhazwani-WMF
Resolvedmpopov
ResolvedSgs
ResolvedSgs
Resolvedcjming
ResolvedRehan_khan_78
DeclinedNone
ResolvedSgs
OpenNone
OpenCyndymediawiksim
OpenNone

Event Timeline

Sgs updated the task description. (Show Details)
Sgs updated the task description. (Show Details)

I added T400047: [EPIC] Tracking of Growth notifications CTRs using xLab (SDS 2.1.6, FY25-26) as a subtask, because figuring out whether xLab is meeting our requirements for an experimentation management system is the prerequisite to dismanteling GrowthExperiments' custom implementation.

And I'm moving this task to Blocked, pending the resolution of SDS 2.1.6.

Sgs renamed this task from Dismantle experiments manager to Adopt TestKitchen for experiment enrollment.Jan 27 2026, 11:11 AM
Sgs updated the task description. (Show Details)
Sgs renamed this task from Adopt TestKitchen for experiment enrollment to Fully adopt TestKitchen for experiment enrollment.Jan 27 2026, 11:47 AM
Sgs added a project: Growth Team Maintenance.

Change #1239893 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Experiments: introduce StaticExperimentManager

https://gerrit.wikimedia.org/r/1239893

Notes from team discussion:
We have existing features that are A/B-testable and migrating to Test Kitchen for more features implies more work, thus we should decide what we keep and what we drop (don't migrate).

Decision:

  • LevelingUp Notifications release time — DROP
  • Site notice generator — DROP
  • Homepage modules — KEEP
  • Newcomer tasks — KEEP
  • Account creation grafana KPI dashboard — DROP/Reformulate

Change #1240032 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[operations/mediawiki-config@master] [Growth] Specify notification delay as int instead of array

https://gerrit.wikimedia.org/r/1240032

Change #1240040 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Experiments: introduce IExperimentManager

https://gerrit.wikimedia.org/r/1240040

Sgs updated the task description. (Show Details)

Change #1240032 merged by jenkins-bot:

[operations/mediawiki-config@master] [Growth] Specify notification delay as int instead of array

https://gerrit.wikimedia.org/r/1240032

Mentioned in SAL (#wikimedia-operations) [2026-02-18T21:03:02Z] <sgimeno@deploy2002> Started scap sync-world: Backport for [[gerrit:1240032|[Growth] Specify notification delay as int instead of array (T375198 T415536)]]

Mentioned in SAL (#wikimedia-operations) [2026-02-18T21:05:15Z] <sgimeno@deploy2002> sgimeno: Backport for [[gerrit:1240032|[Growth] Specify notification delay as int instead of array (T375198 T415536)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-02-18T21:10:50Z] <sgimeno@deploy2002> Finished scap sync-world: Backport for [[gerrit:1240032|[Growth] Specify notification delay as int instead of array (T375198 T415536)]] (duration: 07m 48s)

Change #1240693 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Experiments: prefer FeatureManager over ExprimentManager

https://gerrit.wikimedia.org/r/1240693

Change #1240040 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Experiments: introduce IExperimentManager

https://gerrit.wikimedia.org/r/1240040

Change #1243857 had a related patch set uploaded (by Urbanecm; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@wmf/1.46.0-wmf.16] Experiments: introduce IExperimentManager

https://gerrit.wikimedia.org/r/1243857

Change #1243857 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@wmf/1.46.0-wmf.16] Experiments: introduce IExperimentManager

https://gerrit.wikimedia.org/r/1243857

Mentioned in SAL (#wikimedia-operations) [2026-02-25T16:09:44Z] <urbanecm@deploy2002> Started scap sync-world: Backport for [[gerrit:1243857|Experiments: introduce IExperimentManager (T375198 T415536)]], [[gerrit:1243858|Remove PHPDoc blocks that are 100% identical to the code]]

Mentioned in SAL (#wikimedia-operations) [2026-02-25T16:12:03Z] <urbanecm@deploy2002> urbanecm: Backport for [[gerrit:1243857|Experiments: introduce IExperimentManager (T375198 T415536)]], [[gerrit:1243858|Remove PHPDoc blocks that are 100% identical to the code]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-02-25T16:16:28Z] <urbanecm@deploy2002> Finished scap sync-world: Backport for [[gerrit:1243857|Experiments: introduce IExperimentManager (T375198 T415536)]], [[gerrit:1243858|Remove PHPDoc blocks that are 100% identical to the code]] (duration: 06m 44s)

Change #1239893 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Experiments: dismantle ExperimentUserManager

https://gerrit.wikimedia.org/r/1239893

Change #1240693 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Experiments: prefer FeatureManager over ExprimentManager

https://gerrit.wikimedia.org/r/1240693

Sgs triaged this task as High priority.Mar 10 2026, 4:42 PM
Sgs updated the task description. (Show Details)
Sgs updated Other Assignee, added: Cyndymediawiksim.