Page MenuHomePhabricator

[EPIC] Use CommunityConfiguration in PageTriage extension
Open, Needs TriagePublicFeature

Description

Feature summary (what you would like to be able to do and where):

Use case(s) (list the steps that you performed to discover that problem, and describe the actual underlying problem which you want to solve. Do not describe only a solution):

  • Installing PageTriage on other wikis. This page would receive heavy use during initial configuration, where all that wiki's specific deletion and maintenance templates would need to be programmed into PageTriage

Benefits (why should this be implemented?):

  • Makes the two files linked above human-readable and easy to config
  • Eliminates risk that an incorrect edit to them breaks the extension
  • Would make PageTriage easier to install on other wikis

Settings

LocalSettings.php

NameDefaultDescriptionNeeds in CC
$wgPageTriageEnableCurationToolbartrueSet to false to disable the curation toolbar
$wgPageTriageInfiniteScrollingtrueWhether or not to use infinite scrolling in the new pages feed
$wgPageTriageMaxAge90The age (in days) at which PageTriage allows unreviewed articles to become indexed by search engines (if $wgPageTriageNoIndexUnreviewedNewArticles is true).
$wgPageTriageNamespacesNS_MAINThe namespaces that PageTriage is active in.
$wgPageTriageNoIndexUnreviewedNewArticlesfalseSet this to true if new, unreviewed articles should be set to noindex. In other words, if they should not be indexed by search engines until they are reviewed.
$wgPageTriageDraftNamespaceId118The draft namespaces that PageTriage is active in.
$wgExtraNamespaces[ $wgPageTriageDraftNamespaceId ]'Draft'Localisation❌Must catch i18n name
$wgExtraNamespaces[ $wgPageTriageDraftNamespaceId + 1 ]'Draft_talk'Localisation❌Must catch i18n name
$wgPageTriageEnableOresFilterstrueSet to false to disable ORES

Extension.json

NameDefaultDescriptionNeeds in CCComments
PageTriageEnableOresFiltersfalseEnables filters powered by ORES's AI backendNeeds discussion with WMF ORES folks + create/destroy DB tables
PageTriageEnableCopyviofalseEnables copyvio detectionNeeds Community Tech approval (since they maintain that infra)
PageTriageRedirectAutoreviewAge180How old would a redirect need to be before it gets autoreviewedHigh values might cause DB issues
PageTriageMaxAge90How long to keep articles in queueHigh values might cause DB issues
PageTriageMaxNoIndexAge90How long should an article be hidden from search enginesGoogle does not respect this value, and it can cause articles to fall off SEO radar (+WMF pushback for the same)
PageTriagePagesPerRequest20Not used anywhere-Should be deleted
PageTriageMarkPatrolledLinkExpiry86400Not used anywhere-Should be deleted
PageTriageNoIndexUnreviewedNewArticlesfalseDo we no-index new article(See MaxNoIndexAge)
PageTriageLearnMoreUrl//en.wikipedia.org/wiki/Wikipedia:Page_Curation/HelpSelf-explanatory-
PageTriageProjectLinkWikipedia:Page CurationSelf-explanatory-
PageTriageFeedbackUrl//en.wikipedia.org/wiki/Wikipedia_talk:Page_CurationSelf-explanatory-
PageTriageEnableCurationToolbartrueWhether or not the toolbar is available to users-
PageTriageCurationModulesmassive with dataWhat modules are available to toolbar usersRequires engineering effort to not be a giant JSON blob
PageTriageNamespaces0Which namespaces PageTriage works inDB folks might wanna have a word if it spans a lot of namespaces
TalkPageNoteTemplatemassive with dataWhat templates to use when sending people messages from the toolbarThis should not be a JSON blob and should be configurable from inside the wiki. Also, why is this named weirdly?
PageTriageEnabledEchoEventsmassive with dataWhat notifications are sent using the Notifications (Echo) extensionI'm gonna go no, since there might be unknown dependencies with Echo that we might be breaking if we allow wikis to configure this
PtTemplatePathmassive with data-Huh? Wtf, this feels like it should be internal to the extension. Also, not even used anywhere?
PageTriageTagsOptionsMessagesmassive with datai18n messages for somethingDoesn't appear to be used
PageTriageDeletionTagsOptionsMessagesmassive with datai18n messages for somethingDoesn't appear to be used
PageTriageDeletionTagsOptionsContentLanguageMessagesmassive with dataMessages that are used by deletion modulesGonna take a fair bit of engineering work to figure out where they are used and how to decouple them.
PageTriageEnableExtendedFeaturestrueEnables currently broken enwiki specific features-
PageTriageDraftNamespaceIdfalseThe ID of the Draft namespace, as defined in $wgExtraNamespaces. If false, all AfC features are disabled.-
PageTriageEnableKeywordSearchtrueAllow searching for keywords inside article descriptions-

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Novem_Linguae renamed this task from Special:PageTriageConfig to Special:PageTriageSettings.Nov 22 2022, 7:09 PM
Novem_Linguae updated the task description. (Show Details)
kostajh added subscribers: Urbanecm_WMF, kostajh.

@Urbanecm_WMF you were interested in bringing the #growthexperiments-communityconfiguration work into core, would this be a use-case where we could do that and support another extension (PageTriage)?

@Urbanecm_WMF you were interested in bringing the #growthexperiments-communityconfiguration work into core, would this be a use-case where we could do that and support another extension (PageTriage)?

Hello! Yes, I think this would be a great use-case. I (finally :)) filled T323811: [EPIC] Community configuration 2.0: Factor Community configuration out of GrowthExperiments to record the idea of moving Community configuration elsewhere, and listed this task as a possible use-case.

Iniquity renamed this task from Special:PageTriageSettings to [EPIC] Use CommunityConfiguration in PageTriage extension.May 5 2025, 10:16 AM
Iniquity updated the task description. (Show Details)

Even though i created this ticket (3 years ago), looking at it with fresh eyes i am not sure this is the best approach. These values are normally set in operations/mediawiki-config and there is a standard way to do it there.

For preparing to deploy pagetriage to ruwiki, i imagine iniquity setting up a localhost wiki with pagetriage and exploring the features. Then noting their preferred settings. Then we can make one big settings patch for the mediawiki-config repo and be all done with configuring.

Where community configuration could hypothetically come in handy is if there are some settings that need to change frequently. I am not sure pagetriage wg variables need to change often though. I think they typically stay static.

Pppery subscribed.

I'm going to disagree with Novem Linguae here. I see it as a matter of jurisdiction - this is information that should be controlled by the local community, which if it should be changed (regardless of how rare that is) then there's no reason to force that change to go through the site-requests process, or for the PageTriage developers or sysadmins to have to care.

Even though i created this ticket (3 years ago), looking at it with fresh eyes i am not sure this is the best approach. These values are normally set in operations/mediawiki-config and there is a standard way to do it there.

For preparing to deploy pagetriage to ruwiki, i imagine iniquity setting yp a localhost wiki with pagetriage and exploring the features. Then noting their preferred settings. Then we can make one big settings patch for the mediawiki-config repo and be all done with configuring.

Where community configuration could hypothetically come in handy is if there are some settings that need to change a lot. I am not sure pagetriage wg variables need to change often though. I think they typically stay static.

Agreed for the most part, I think the major thing that needs to be moved to community configurations is the two (previously js, now json) files. I'll go through these and mark anything that seems community configurable (a lot of these unfortunately might require a peek from DB folks if too-high values are set).

I'm going to disagree with Novem Linguae here. I see it as a matter of jurisdiction - this is information that should be controlled by the local community, which if it should be changed (regardless of how rare that is) then there's no reason to force that change to go through the site-requests process, or for the PageTriage developers or sysadmins to have to care.

I completely agree. I will also add that the community configuration helps with several things:

  1. It saves developers from constant +2 checks where it is not important for development.
  2. Increases community awareness of possible extension settings, since the settings are always hidden somewhere and many simply do not know about them.
  3. Helps overcome the Phabricator barrier for non-technical administrators, i.e. many settings do not change because people are afraid to write tickets.
  4. Simplifies work with the extension in general for all involved users.

a lot of these unfortunately might require a peek from DB folks if too-high values are set

Yes, changes that can break production should not be in CC.

Agreed mostly with Soda's edit, except I would put the noindex stuff in community configuration, and let the wikis deal with how Google handles noindex at their peril.

Change #1221986 had a related patch set uploaded (by Sohom Datta; author: Sohom Datta):

[mediawiki/extensions/PageTriage@master] [WIP][DNM] Move deletion tagging into community configuration

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

Change #1221986 had a related patch set uploaded (by Sohom Datta; author: Sohom Datta):

[mediawiki/extensions/PageTriage@master] [WIP][DNM] Move deletion tagging into community configuration

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

Based on a talk with folks on Mod-Tools last week, not gonna go forward with the patch unless there is community interest (since properly implementing CommunityConfigurations will require some amount of rethinking of the deletion module as well)