Page MenuHomePhabricator

[Proposed Epic] Migrate Wikilove front-end to Codex
Closed, ResolvedPublic

Description

The Wikilove extension is one of about a dozen WMF-maintained features that still relies on jQuery UI – a framework that has been deprecated around here for several years. Out of all the officially-maintained projects which still use jQuery UI, Wikilove may be the simplest.

I'd like to propose that we (one or more DST engineers plus anyone else who is interested – possibly in a volunteer / 20%-time capacity) look at the feasibility of migrating this feature over to Codex while leaving the existing functionality unchanged.

I think that this proposed project would have the following merits:

  • Opportunity to remove at least one instance of jQuery UI (deprecated, visually inconsistent)
  • This feature is JS only so there are no SSR complications
  • Necessary Codex components already exist or will very soon (Dialog, text input error state)
  • This would be a good way to put current Codex components "to the test" inside MediaWiki in the context of a simple feature – doing this work will likely surface issues we'll need to solve in Codex before we can support larger migration efforts
  • Small project, limited in scope and impact

This is not a high-priority project that should get in the way of other work. But as we approach the holidays (when things tend to slow down for many teams), this might be a good task to work on if there is any slack in schedules. I think this could serve as a good learning exercise for all involved.

Current Wikilove UI screenshots:

image.png (829×459 px, 81 KB)
image.png (549×409 px, 33 KB)

Event Timeline

This is essentially a replacement for the 'Declined' T89815: Convert WikiLove from jQuery UI to OOUI (yay).

When @kaldari closed that task, he mentioned that we may be better off just migrating directly to Vue, and here we are.

egardner moved this task from Inbox to Following on the Design-System-Team board.

Change 921373 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/extensions/WikiLove@master] Move WikiLove to packageFiles

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

Change 921374 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/extensions/WikiLove@master] Replace WikiLove jquery ui dialog with Vue.js dialog

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

Change 921373 merged by jenkins-bot:

[mediawiki/extensions/WikiLove@master] Move WikiLove to packageFiles

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

Change 921374 merged by jenkins-bot:

[mediawiki/extensions/WikiLove@master] Replace WikiLove jquery ui dialog with Vue.js dialog

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

Change 921568 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/extensions/WikiLove@master] Position WikiLoveDialog better on smaller screens

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

Commenting here for awareness: After r921374 I discovered a bug, which I've filed at T337120. There's some sort of race condition that can happen when calling showImagePreview() over and over in quick succession (i.e. changing the "Select a barnstar" dropdown), where you end up with two previews of the image. When this happens, upon submission you'll see some nasty "something went wrong" errors within the dialog, but it still actually works. I was deliberately trying to break things, so I don't think users will normally run into this issue.

Change 921568 merged by jenkins-bot:

[mediawiki/extensions/WikiLove@master] Position WikiLoveDialog better on smaller screens

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

TheDJ assigned this task to Jdlrobson.
TheDJ subscribed.

I think we can call this resolved.