Page MenuHomePhabricator

Refactor Cite to use resource loader package files
Closed, ResolvedPublic

Description

In order to use even the CSS-only version of codex icons, we need to use ResourceLoader package files to load the icons.

This is a minor rewrite which we've done many times in the past. The steps are:

  • Create an "init" JS module for each RL module, list that as the first item in packageFiles.
  • Export any public API in that init module.
  • Protect the global namespace.
  • Don't write to global mw variables.
  • Refactor usages of each RL module.

Random example migration

Event Timeline

Change #1176214 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Merge unused ext.cite.visualEditor.core ResourceModule away

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

Change #1176287 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] [WIP] Use ResourceLoader packageFiles instead of scripts

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

Change #1176349 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Split multi-class file MWReferenceDialogTool

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

Change #1176214 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Merge unused ext.cite.visualEditor.core ResourceModule away

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

Change #1176349 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Split multi-class file MWReferenceDialogTool

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

Change #1177332 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Turn virtual .js files into .json resources

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

Change #1177466 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Remove extra function closures from all .js files

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

Change #1177473 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Move all registration calls into the new init.js file

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

Change #1178401 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/ContentTranslation@master] Fix CX messing with private implementation details of Cite

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

Change #1176287 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Use ResourceLoader packageFiles instead of scripts

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

Change #1178405 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Citoid@master] Update Citoid to use Cite packageFiles registration

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

Change #1177332 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Turn virtual .js files into .json resources

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

Change #1177466 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Remove a few not needed function closures from .js files

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

Change #1177473 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Move all registration calls into the new init.js file

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

Change #1179102 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Citoid@master] Streamline fragile Cite tool unregistration

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

Change #1179106 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Use existing CommandRegistry.getNames()

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

Change #1178401 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Update CX integration with Cite to be more stable

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

Change #1179102 merged by jenkins-bot:

[mediawiki/extensions/Citoid@master] Streamline fragile Cite tool unregistration

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

Change #1179106 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Use existing CommandRegistry.getNames()

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

WMDE-Fisch subscribed.

Moving to watching because the last patch waits for Editing Team reviews and also - as I understand it - it's not a big blocker for our roadmap.

the last patch waits for Editing Team reviews

I'm not sure where this idea comes from. We can merge it. Even if another team has another idea about the use of factories the code can easily be changed in any direction.

Change #1178405 merged by jenkins-bot:

[mediawiki/extensions/Citoid@master] Update Citoid integration with Cite to be more stable

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

Change #1260620 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] [POC] Change QUnit tests to load packageFile via require

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

Change #1261361 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Cite@master] Use consistent "init.js" naming scheme for packageFiles

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

Change #1261361 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Use consistent "init.js" naming scheme for packageFiles

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

Change #1260620 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Change QUnit tests to load packageFile via require

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

Change #1260642 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Change MWDataTransitionHelper for use with require

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

Change #1260642 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Change MWDataTransitionHelper test to use require()

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