Page MenuHomePhabricator

Move Growth configuration to on-wiki JSON file
Closed, ResolvedPublic

Description

Move Growth configuration that is wiki-specific to on-wiki JSON file in NS_MEDIAWIKI, editable by sysops. Defaults will be pre-populated via an edit made by a system account, derived from Wikidata items.

Filling to have a task to connect my patches to, so I can easily find them later.

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/WikimediaEventsmaster+30 -40
mediawiki/extensions/GrowthExperimentsmaster+3 -2
operations/mediawiki-configmaster+1 -0
operations/mediawiki-configmaster+7 -0
mediawiki/extensions/GrowthExperimentswmf/1.37.0-wmf.1+90 -276
mediawiki/extensions/GrowthExperimentsmaster+90 -276
mediawiki/extensions/WikimediaEventsmaster+5 -17
mediawiki/extensions/WikimediaEventsmaster+17 -5
mediawiki/extensions/GrowthExperimentsmaster+276 -90
mediawiki/extensions/GrowthExperimentsmaster+30 -2
mediawiki/extensions/GrowthExperimentsmaster+222 -0
mediawiki/extensions/GrowthExperimentsmaster+66 -17
mediawiki/extensions/GrowthExperimentsmaster+3 -3
mediawiki/extensions/GrowthExperimentsmaster+8 -4
mediawiki/extensions/GrowthExperimentsmaster+383 -6
mediawiki/extensions/GrowthExperimentsmaster+153 -49
mediawiki/extensions/GrowthExperimentsmaster+94 -70
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
ResolvedTrizek-WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedNone
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
OpenUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedMMiller_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 663086 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WIP: Move configuration-loading to new Config namespace

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

Change 663189 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WIP: Add WikiPageConfig that can provide config from wiki page

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

Change 665200 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WIP: Use only GrowthExperimentsConfig for loading config

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

First patch finished (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/GrowthExperiments/+/663086). Will work on the other one later.

The other one is finished as well.

There is (also) a patch I'm currently actively working on. Moving to In Progress.

An aside: @Urbanecm_WMF, could what you're implementing here be generalized/extended to enable projects to codify the consensus they reach on talk pages within the software itself?

An example I have in mind: volunteers at English Wikipedia could document the consensus they reach about various sources [i] in a machine-readable manner so that future editors can be made aware within VE if/when they attempt to add a source volunteers have deemed to be "Generally unreliable" [ii][iii]?

Note: we have not prioritized work on something like the above. Tho, it is something we have in the back of our minds as it relates to T265163.


i. https://en.wikipedia.org/wiki/Wikipedia:Reliable_sources/Perennial_sources
ii. https://en.wikipedia.org/wiki/Wikipedia:Reliable_sources/Perennial_sources#Legend
iii. https://en.wikipedia.org/wiki/Wikipedia:Reliable_sources#Questionable_and_self-published_sources

Hello @ppelberg,

Thank you for asking this question. I am implementing this feature as a class implementing the standard Config interface. That means it should not be extremely hard to move the implementation in the GrowthExperiments to MediaWIki core if something like this would be wanted by multiple parties.

That being said, it is not clear to me how this task relates to the example you mention in your comment. If someone would be to implement a functionality warning users about using unreliable sources right in the visual editor, one can create a similar page to the spam blacklist, which allows some sort of configuration on-wiki.

The GrowthExperiments extension has a different need than having a single list of URLs on-wiki. We have a bunch of configuration variables (see the spreadsheet linked at T275086), and while all of them individually could be in a self-contained wiki page, it makes sense to have a single interface to edit all (or most) aspects of the features.

I hope this answer makes sense to you. Do let me know if you have any other questions.

Change 663086 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] Move configuration-loading to new Config namespace

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

Change 665200 abandoned by Urbanecm:
[mediawiki/extensions/GrowthExperiments@master] WIP: Use only GrowthExperimentsConfig for loading config

Reason:
let's use a different approach

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

Change 667370 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WIP: Implement WikiPageConfigWriter

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

Change 663189 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] Add WikiPageConfig that can provide config from wiki page

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

Change 667370 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] Implement WikiPageConfigWriter

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

@Urbanecm_WMF: responses to the context and questions you shared in T274520#6851754 below.

Note: I have no expectations for you to respond to anything below. Of course, if anything prompts new thoughts or questions I'd be keen to hear them.!

Thank you for asking this question. I am implementing this feature as a class implementing the standard Config interface. That means it should not be extremely hard to move the implementation in the GrowthExperiments to MediaWIki core if something like this would be wanted by multiple parties.

Understood – okay.

That being said, it is not clear to me how this task relates to the example you mention in your comment. If someone would be to implement a functionality warning users about using unreliable sources right in the visual editor, one can create a similar page to the spam blacklist, which allows some sort of configuration on-wiki.

I can see how the connection I was trying to draw between this task and T265163 might have been "fuzzy." As such, here is a task that describes the idea I have in mind more explicitly: T276857.

The GrowthExperiments extension has a different need than having a single list of URLs on-wiki. We have a bunch of configuration variables (see the spreadsheet linked at T275086), and while all of them individually could be in a self-contained wiki page, it makes sense to have a single interface to edit all (or most) aspects of the features.

Ah, I now see the distinction between you are working are on here and what I have in mind (T276857).

I hope this answer makes sense to you. Do let me know if you have any other questions.

It does!

Change 670910 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] Make GrowthExperimentsMultiConfig::get work when no config page exists

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

Change 670968 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WIP: Use getGrowthWikiConfig in appropriate places

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

Change 670910 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] Make GrowthExperimentsMultiConfig::get work when no config page exists

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

Change 671179 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WikiPageConfigWriter: save should succeed if no change was made

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

Change 672505 had a related patch set uploaded (by Urbanecm; owner: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] Cache config in WikiPageConfigLoader for a day

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

Change 672505 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] Cache config in WikiPageConfigLoader for a day

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

Change 671179 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] WikiPageConfigWriter: save should succeed if no change was made

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

Change 675278 had a related patch set uploaded (by Urbanecm; author: Urbanecm):
[mediawiki/extensions/GrowthExperiments@master] WikiPageConfig::getConfigData should return an empty array when loading failed

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

Change 675278 merged by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] WikiPageConfig::getConfigData should return an empty array when loading failed

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

Change 678311 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/WikimediaEvents@master] GrowthExperiments: HelpPanel now should consume wiki config

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

Change 670968 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Use getGrowthWikiConfig in appropriate places

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

Change 678311 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] GrowthExperiments: HelpPanel now should consume wiki config

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

Change 678697 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/WikimediaEvents@master] Revert "GrowthExperiments: HelpPanel now should consume wiki config"

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

Change 678697 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] Revert "GrowthExperiments: HelpPanel now should consume wiki config"

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

Change 678832 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/WikimediaEvents@master] Revert "Revert "GrowthExperiments: HelpPanel now should consume wiki config""

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

Change 678884 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Revert "Use getGrowthWikiConfig in appropriate places"

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

Change 678884 abandoned by Urbanecm:

[mediawiki/extensions/GrowthExperiments@master] Revert "Use getGrowthWikiConfig in appropriate places"

Reason:

wrong branch

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

Change 678885 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@wmf/1.37.0-wmf.1] Revert "Use getGrowthWikiConfig in appropriate places"

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

Change 678885 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@wmf/1.37.0-wmf.1] Revert "Use getGrowthWikiConfig in appropriate places"

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

Change 682339 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[operations/mediawiki-config@master] GrowthExperiments: Do not enable community configuration outside of beta wikis

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

Change 682340 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] WikiPageConfig: Do not make multiple DB requests with READ_LATEST

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

Change 682339 merged by jenkins-bot:

[operations/mediawiki-config@master] GrowthExperiments: Do not enable community configuration outside of beta wikis

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

Mentioned in SAL (#wikimedia-operations) [2021-04-26T08:42:41Z] <urbanecm@deploy1002> Synchronized wmf-config/InitialiseSettings.php: NOOP: 88da8226823e59d1d19db9aeca3b5a5140c0c60c: GrowthExperiments: Do not enable community configuration outside of beta wikis (T274520) (duration: 00m 59s)

Change 682504 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[operations/mediawiki-config@master] GrowthExperiments: Enable community configuration on testwiki

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

Change 682504 merged by jenkins-bot:

[operations/mediawiki-config@master] GrowthExperiments: Enable community configuration on testwiki

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

Mentioned in SAL (#wikimedia-operations) [2021-04-26T08:49:21Z] <urbanecm@deploy1002> Synchronized wmf-config/InitialiseSettings.php: NOOP: f01a6dab70f74938dd51668809a181a8f551b6c8: GrowthExperiments: Enable community configuration on testwiki (T274520) (duration: 00m 57s)

@MMiller_WMF @Trizek-WMF FYI, I enabled the offswitch on all wikis but testwiki and the beta wikis. That means community configuration will not be immediately working on our target wikis when the train releases it. It also gives us more control over deployment of this feature.

Change 682340 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] WikiPageConfig: Do not make multiple DB requests with READ_LATEST

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

This was done -- growth configuration is now stored on wiki.

Change 678832 abandoned by Urbanecm:

[mediawiki/extensions/WikimediaEvents@master] Revert "Revert "GrowthExperiments: HelpPanel now should consume wiki config""

Reason:

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