Page MenuHomePhabricator

Formally deprecate jQuery UI after we've stopped using jQuery UI in extensions and core
Open, HighPublic

Description

jQuery UI has been deprecated since 2017. Despite this it is widely used in Wikimedia code.

Plan

Step 1: Migrations

We can either add local versions of jQuery UI to extensions (in the case of isolated usages of this code) or port each of the features over to Codex

  • Remove usage in CodeEditor (T323330)
  • Remove usage in CodeMirror (T323329)
  • Remove usage in DonationInterface (T323328)
  • Remove usage in GWToolset (T323327)
  • Remove usage in MassMessage (T187992)
  • Remove usage in PageTriage (T323552)
  • Remove usage in RevisionSlider (T323326)
  • Remove usage in WikiEditor (T209059)
  • Remove usage in Wikilove (T323311)

Step 2: Wikidata migrations (T323333)

Add localized version of this library to Wikibase: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/921503

Step 3: Translate migration (T323332)

Perhaps it might make sense for Translate to have a localized version of this library ext.translate.jquery.ui since they are not enabled on all wikis.

  • Remove usage in Translate

Step 4: : Migrations for code in code stewardship review

Step 5: Removal

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Does rMW9e712ce6382f: Deprecate various ResourceLoader modules count as "formally deprecating"?

I understood that the plan was to do the "stopped using jQuery UI in extensions and core" bit, then (this task) announcing that it was deprecated and would eventually be removed.

All extensions should be updated, but shoulden we be using ooui instead of mw ui, I thought mw ui is also deprecated and replaced by ooui?

Volker_E renamed this task from Formally deprecate jQuery UI after we've stopped using jQuery UI in extensions and core (replacing it with OO UI). to Formally deprecate jQuery UI after we've stopped using jQuery UI in extensions and core (replacing it with OOUI)..Nov 7 2017, 11:18 PM

I guess on Commons the module must be installed locally, as there are to much gadgets using this.

There are lots of gadgets on lots of wikis that use jQuery.ui. Regardless of whether MediaWiki itself uses jQuery.ui, I think it would still be a good idea to make it available as a module for gadgets indefinitely.

There are lots of gadgets on lots of wikis that use jQuery.ui. Regardless of whether MediaWiki itself uses jQuery.ui, I think it would still be a good idea to make it available as a module for gadgets indefinitely.

Yeah, it's going to be hard for communities that don't actually have people supporting their gadgets (though that situation isn't really meant to happen), and it isn't appropriate yet for some edge cases to migrate to OOUI. However, at some point we're going to have to stop shipping it, and not just by moving it on-wiki.

There are lots of gadgets on lots of wikis that use jQuery.ui. Regardless of whether MediaWiki itself uses jQuery.ui, I think it would still be a good idea to make it available as a module for gadgets indefinitely.

For the record, keeping anything has a non-zero maintenance cost. In particular for jQuery UI because we're using an outdated version.

https://github.com/wikimedia/mediawiki/commits/317aa201/resources/lib/jquery.ui
https://github.com/wikimedia/mediawiki-skins-Vector/commits/d4eabd9d10/skinStyles/jquery.ui
https://github.com/wikimedia/mediawiki/blob/317aa201/resources/lib/jquery.ui/PATCHES
https://github.com/wikimedia/mediawiki-skins-Vector/blob/d4eabd9d10/skinStyles/jquery.ui/PATCHES

Given our version is now far beyond jQuery's LTS/EOL, we need to either start taking over maintenance of this legacy version as soon as possible (starting with an overdue security review), or we need to start migration to a newer version. It sounds like we want to avoid migration due to unmaintained gadgets (or we could encourage migration to OOUI). Although arguably migrating to a newer jQuery UI version should be much simpler compared to migrating to OOUI, either would require hands-on coding, and either would result in truly unmodified code to break.

I'm not proposing anything right now, but it should be unsurprising that we cannot indefinitely support unmaintained gadgets by indefinitely shipping upstream-unsupported software as-is, without maintenance or responsibility for finding and addressing likely security vulnerabilities.

Jdlrobson renamed this task from Formally deprecate jQuery UI after we've stopped using jQuery UI in extensions and core (replacing it with OOUI). to Formally deprecate jQuery UI after we've stopped using jQuery UI in extensions and core.Nov 17 2022, 10:23 PM
Jdlrobson updated the task description. (Show Details)

Perhaps it might make sense for Wikibase/Translate to have a localized version of this library wikibase.jquery.ui since they are not enabled on all wikis.

The part used by WikibaseClient is enabled on most wikis (all client wikis).

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

[mediawiki/extensions/LiquidThreads@master] Remove jquery.ui and ability to drag threads

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

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

[mediawiki/extensions/Collection@master] Collections are no longer sortable

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

Jdlrobson updated the task description. (Show Details)

Change 921529 abandoned by Jdlrobson:

[mediawiki/extensions/LiquidThreads@master] WIP: Remove jquery.ui and ability to drag threads

Reason:

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

Change 921531 merged by jenkins-bot:

[mediawiki/extensions/Collection@master] Replace sortable with bare bones up and down arrows

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

Jdlrobson updated the task description. (Show Details)

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

[mediawiki/extensions/Collection@master] Remove unused jquery.ui module

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

Change 957966 merged by jenkins-bot:

[mediawiki/extensions/Collection@master] Remove unused jquery.ui module

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