Page MenuHomePhabricator

Move Growth configuration to on-wiki JSON file
Open, MediumPublic

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.

Related Objects

Event Timeline

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