Page MenuHomePhabricator

Bundle CommunityConfiguration with MediaWiki core
Open, Needs TriagePublic

Description

Not now since it currently does not add much, but we should consider bundling it once T326354 or T377918 is resolved which means bundled extensions starts to use CommunityConfiguration.

If we resolved T341386: Allow On-wiki configuration for temporary site logo changes then this extension will have some functionality by itself.

Checklist (needs checking)

  • Passed discussion or already Wikimedia deployed (deployed at all Wikimedia projects as of January 2025)
  • Passed security review or already Wikimedia deployed (passed security review in T349568, deployed to all Wikimedia projects as of January 2025)
  • Voting CI structure tests
  • Runs MediaWiki-CodeSniffer (see inclusion)
  • Runs phan
  • Supports MySQL, SQLite, and Postgres (if there are schema changes) (not applicable, no schema changes)
  • GPL v2 or later compatible license (GPL v2 licensed, see proof)
  • Extension's default configuration provides optimal experience
  • Tested with web installer
  • Any relevant dependencies also bundled (only dependency is CommunityConfigurationExample, which exists for testing only purposes)

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Bugreporter changed the task status from Open to Stalled.Apr 16 2025, 1:37 AM

I just wanted to create this task, apparently it is here already! Thanks @Bugreporter for creating it.

At the Wikimedia Hackathon, I started working on T393240: Special:BlockedExternalDomains should make use of Community Configuration, which would strongly benefit from CommunityConfiguration being bundled as well. In addition to that, bundling CC would also make CC integration possible in other bundled software (for example, Web team considered using CC for font size and typography customizations).

When CommunityConfiguration was being designed, we discussed several options about where the CC feature should live in, specifically:

  • implementing CommunityConfiguration within MediaWiki Core,
  • creating CommunityConfiguration as a separate extension

Ultimately, we decided on implementing CommunityConfiguration within an extension. Back then, there was no principal opposition to bundling it if the need arises. We also specifically decided against implementing CommunityConfiguration in Core, saying that "MediaWiki Core should be aware of the Community Configuration concept (to allow its seamless usage), but should not have the implementation included" (see the PRD).

Considering CommunityConfiguration is relatively widely used (deployed with at least one configuration at all Wikimedia projects) and given the clear benefits bundling the extension would have on AbuseFilter, I think we have reached a point in time where going ahead with bundling the CC extension makes sense.

To start the process, I'm unstalling the task (as I do not see a blocker per-se), so that it can be discussed with the appropriate stakeholders. I'll be adding known blockers as subtasks here.

Urbanecm_WMF changed the task status from Stalled to Open.May 3 2025, 2:11 PM
Urbanecm_WMF added subscribers: Sgs, DMburugu.

@KStoller-WMF @Sgs @Michael @DMburugu If you have any concerns about going ahead here from the Growth side, please comment here!

When CommunityConfiguration was being designed, we discussed several options about where the CC feature should live in, specifically:

  • implementing CommunityConfiguration within MediaWiki Core,
  • creating CommunityConfiguration as a separate extension

Given the role of CommunityConfiguration, what is my long-term prospect is it eventually be merged to core. I am very near to file a task for it, but decide not to since it will be much more controversial than this task and can be reconsidered once this task is resolved.

What is my proposed final stage is MediaWiki being split to multiple "applications" - CommunityConfiguration being one of them - which lives in same core repo but can be disabled entirely.

(not directly related to this task) For example, we can have MediaWiki work without categories - (micro-)core will provides a stub interface of categories which does nothing, and the actual category implementation be moved to an app. Similarly, we can have a MediaWiki without recent changes, or a MediaWiki without file support, or without blocking support, etc.

@Urbanecm_WMF This sounds like a good direction to take and the fact that Community Configuration doesn't introduce new tables to core makes it light weight/low maintenance enough to bundle.

The only thing I'd consider before adding it as part of the core bundle is whether maintenance and future development now moves to the MediaWiki Engineering team, or the Growth Team still retains stewardship over the extension.

Is there a practice of having extensions which are bundled in core maintained by other teams?

Is there a practice of having extensions which are bundled in core maintained by other teams?

Yes, the majority of them:

Steward# of ExtensionsExtensions
Editing-team10Cite, CodeEditor, ConfirmEdit, DiscussionTools, ImageMap, Math, SyntaxHighlight, TemplateData, VisualEditor, WikiEditor
No steward10CategoryTree, CiteThisPage, Gadgets, InputBox, Interwiki, Poem, Scribunto, SecureLinkFixer, SpamBlacklist, ReplaceText (presumably, the list has no info)
Content-Transform-Team (MediaWiki Engineering)3Linter, ParserFunctions, PdfHandler
Growth-Team2Echo, Thanks
Web-Team2PageImages, Web
Volunteer steward1AbuseFilter
Community-Tech1LoginNotify
Structured Data Engineering1MultimediaViewer
Moderator-Tools-Team1Nuke
MediaWiki-Platform-Team (MediaWiki Engineering)1OATHAuth

Out of 33 bundled extensions, about 30% of them is maintained by Editing-team and another 30% has no steward at all. Only 12% of extensions are stewarded by a team within the MediaWiki Engineering group. We already are the official steward for two bundled extensions, so it wouldn't be a totally new responsibility for us either.

The only thing I'd consider before adding it as part of the core bundle is whether maintenance and future development now moves to the MediaWiki Engineering team, or the Growth Team still retains stewardship over the extension.

Based on the above, I don't think those two questions (future maintenance and bundling) depend on each other. I think they can be handled independently.

@KStoller-WMF @Sgs @Michael @DMburugu If you have any concerns about going ahead here from the Growth side, please comment here!

No concerns. When the decision was made not to build Community Configuration into MediaWiki Core, my understanding was that the long-term plan was to build it as an extension that would eventually be bundled.

Before we get too serious about officially bundling the extension, I think we should first complete this task and resolve the associated blockers:

T383719: Declare the Community Configuration extension stable

Thanks for the breakdown Martin, we can have the extension bundled in Core after we complete T383719: Declare the Community Configuration extension stable as Kirsten has suggested.