Page MenuHomePhabricator

[25Q3] Provide Wikifunctions integration in articles on Dagbani Wikipedia
Closed, ResolvedPublic

Description

Background

In previous quarters, we focused on developing a local prototype to integrate Wikifunctions with Wikipedia. This involved conducting research, designing solutions, building software prototypes, and performing usability testing to validate our concept. This quarter, our objective is to operationalize this integration by releasing it on Dagbani Wikipedia, making it the first wiki where Wikifunctions can be used to improve content.

Approach

Phase 0: Get functionality ready to deploy
  • Function calls can be made in wikitext: {{#function Z801|"hello"}} → "hello" or {{#function Z12345|2020-04-10|parselang=en|renderlang=en}} → 10 April 2020
  • Call results are made over the network to WF.org
  • Results of function calls are cached in the WF-specific memcached system, and shared between different wikis
  • Errors are flagged and findable via tracking categories
  • Results are updated when the relevant function is updated, and show up in RC/Watchlist/etc. – part of T383156
  • Results are updated when the relevant Wikidata item is updated, and show up in RC/Watchlist/etc. – part of T383156
Phase 1: Deploy on production testwiki (testable for functionality)
  • Deploy above to testwiki to demonstrate that desktop editors of test2wiki can make a simple function edit by calling Wikifunctions.

Then, develop the MVP design version (not including the user education enhancements):

  • Integration with VisualEditor and 2017 wikitext editor to insert and edit these calls in a guided way
    • Basic raw integration available
    • Insertion search tool uses an API that filters functions to the ones people can use
    • Rich WF.org function calling code integrated into the dialog
      • Support for plain text values
      • Support for enum values
      • Support for parsed values
      • Function errors are shown as designed
      • Tweaks to i18n fallback chains for display
      • Colourful icons for the Function and for Wikifunctions logo
    • [Stretch; working with Editing team] Mobile VE toolbar adjusted so that the "Insert" menu shows up, so WF can be meaningfully used on mobile devices too.
Phase 2: Deploy on Dagbani Wikipedia (usable for Dagbani)
  • Agree in the team that we've achieved the final MVP design and we're ready to go.
  • Agree with the team's stakeholders (SRE, Security) that we're ready to go.
  • Before the feature is switched on, we will give the community a heads-up through collaboration channels.
  • Work with the Wikifunctions community to ensure there are useful Functions; probably Age, Intro for year, and [Stretch goal] Conversion (contingent on extra UX work)
  • Roll the feature out, including a visible tool in the VE and 2017 source desktop editors

Acceptance Criteria

  • The Wikifunctions client integration is enabled and working on the Dagbani Wikipedia.
  • The experience is based on the MVP design shown to the community, with filtering
  • Mobile menu option is available
  • We create a how-to guide in the weekly update (and translated into Dagbani) to help Dagbani Wikipedia editors to insert and edit Wikifunctions calls in their articles.
Stretch Goals (optional)
  • We extend the client integration to show suggested functions in the dialog when it first opens, controlled by the local community.
  • The language and UI components used throughout the user experience should be simple and unambiguous, and should be tested with a control group before release

Success metrics

  • Release is sufficiently early in the Quarter to give opportunity for the team to adjust/course-correct, and to inform wider team work on deployment to other Wikipedias.
  • Evidence that the feature is being used organically by community members
  • No major revert-wars around usage
  • Positive feedback from working group

Related Objects

StatusSubtypeAssignedTask
OpenNone
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedBUG REPORTJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
Openppelberg
Resolvedzoe
Resolvedppelberg
ResolvedBUG REPORTzoe
OpenNone
ResolvedRyasmeen
Openppelberg
InvalidNone
ResolvedDLynch
Openppelberg
Opennayoub
OpenNone
Declinedppelberg
Resolvedgengh
Resolvedgengh
Resolvedgengh
ResolvedDSmit-WMF
ResolvedDSmit-WMF
ResolvedDSmit-WMF
Resolvedgengh
Resolvedgengh
ResolvedDSmit-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedAAlhazwani-WMF
ResolvedAAlhazwani-WMF
ResolvedAAlhazwani-WMF
ResolvedBUG REPORTgengh
Resolvedgengh
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
DeclinedNone
Resolved Sharvaniharan
ResolvedAAlhazwani-WMF
ResolvedAAlhazwani-WMF
Resolvedgengh
Resolvedgengh
ResolvedMarostegui
OpenNone
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedcscott
ResolvedBUG REPORTssastry
Resolvedcscott
Resolvedcscott
Resolvedcscott
ResolvedJdforrester-WMF
Resolvedssastry
OpenNone
Resolvedssastry
ResolvedBUG REPORTihurbain
Resolvedihurbain
ResolvedBUG REPORTihurbain
ResolvedBUG REPORTihurbain
ResolvedBUG REPORTihurbain
Openihurbain
Resolvedihurbain
Resolvedssastry
ResolvedNone
Resolvedssastry
Resolvedssastry
ResolvedPRODUCTION ERRORJdlrobson-WMF

Event Timeline

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

Just to clarify, for the functions that will be usable are Z20767, Z20756, and Z21121? Asking because I created them and feel a responsibility for maintaining them.

Sharvaniharan renamed this task from [25Q3] Wikifunctions can now be used in Dagbani Wikipedia articles to [25Q3] Provide Wikifunctions integration in articles on Dagbani Wikipedia.Jan 9 2025, 6:59 PM
Sharvaniharan added a project: Epic.

Change #1126135 had a related patch set uploaded (by Genoveva Galarza; author: Genoveva Galarza):

[mediawiki/extensions/WikiLambda@master] Fix FunctionCallHandler to perform calls with parsers/renderer

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

Change #1126135 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Fix FunctionCallHandler to perform calls with parsers/renderer

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

Change #1126660 had a related patch set uploaded (by Jforrester; author: Jforrester):

[operations/mediawiki-config@master] [test2wiki] Enable Wikifunctions client mode

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

Change #1126661 had a related patch set uploaded (by Jforrester; author: Jforrester):

[operations/mediawiki-config@master] [wikifunctionswiki] Enable Wikifunctions client mode

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

Change #1126662 had a related patch set uploaded (by Jforrester; author: Jforrester):

[operations/mediawiki-config@master] [dagwiki] Enable Wikifunctions client mode

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

Change #1126660 merged by jenkins-bot:

[operations/mediawiki-config@master] [test2wiki] Enable Wikifunctions client mode

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

Mentioned in SAL (#wikimedia-operations) [2025-04-09T21:08:53Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:rGMOA1126660aaa50|[test2wiki] Enable Wikifunctions client mode (T383106)]]

Mentioned in SAL (#wikimedia-operations) [2025-04-09T21:15:29Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:rGMOA1126660aaa50|[test2wiki] Enable Wikifunctions client mode (T383106)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2025-04-09T21:22:43Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:rGMOA1126660aaa50|[test2wiki] Enable Wikifunctions client mode (T383106)]], [[gerrit:1135500|MWMultiVersion: Recognise the new wikifunctionsclient dblist]]

Mentioned in SAL (#wikimedia-operations) [2025-04-09T21:29:32Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:rGMOA1126660aaa50|[test2wiki] Enable Wikifunctions client mode (T383106)]], [[gerrit:1135500|MWMultiVersion: Recognise the new wikifunctionsclient dblist]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2025-04-09T21:40:45Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:rGMOA1126660aaa50|[test2wiki] Enable Wikifunctions client mode (T383106)]], [[gerrit:1135500|MWMultiVersion: Recognise the new wikifunctionsclient dblist]] (duration: 18m 01s)

Change #1126661 merged by jenkins-bot:

[operations/mediawiki-config@master] [wikifunctionswiki] Enable Wikifunctions client mode

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

Change #1126662 merged by jenkins-bot:

[operations/mediawiki-config@master] [dagwiki] Enable Wikifunctions client mode

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

Mentioned in SAL (#wikimedia-operations) [2025-04-15T19:14:14Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:1136777|VE: Start setting wgVisualEditorMobileInsertMenu, default to off (T388604)]], [[gerrit:1136778|VE: Set wgVisualEditorMobileInsertMenu true on Wikifunctions client wikis (T383145 T388604)]], [[gerrit:1126661|[wikifunctionswiki] Enable Wikifunctions client mode (T383106)]], [[gerrit:1126662|[dagwiki] Enable Wikifunctions client mode (T383106)]

Mentioned in SAL (#wikimedia-operations) [2025-04-15T19:25:47Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:1136777|VE: Start setting wgVisualEditorMobileInsertMenu, default to off (T388604)]], [[gerrit:1136778|VE: Set wgVisualEditorMobileInsertMenu true on Wikifunctions client wikis (T383145 T388604)]], [[gerrit:1126661|[wikifunctionswiki] Enable Wikifunctions client mode (T383106)]], [[gerrit:1126662|[dagwiki] Enable Wikifunctions client mode (T383106)]] synced to t

Mentioned in SAL (#wikimedia-operations) [2025-04-15T19:35:09Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:1136777|VE: Start setting wgVisualEditorMobileInsertMenu, default to off (T388604)]], [[gerrit:1136778|VE: Set wgVisualEditorMobileInsertMenu true on Wikifunctions client wikis (T383145 T388604)]], [[gerrit:1126661|[wikifunctionswiki] Enable Wikifunctions client mode (T383106)]], [[gerrit:1126662|[dagwiki] Enable Wikifunctions client mode (T383106)