Page MenuHomePhabricator

Termbox: Use "vue" ResourceLoader module from core
Open, Needs TriagePublic

Description

vue is available as a ResourceLoader module from core (previously in wikibase only).
If the dependency to vue is externalized in termbox, the payload that needs to be shipped to clients can be reduced which helps loading time and bandwidth consumption (assuming the same client made use of another vue-based frontend component before).

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJul 19 2019, 3:57 PM
Pablo-WMDE updated the task description. (Show Details)Jul 19 2019, 4:04 PM
Pablo-WMDE updated the task description. (Show Details)Feb 12 2020, 4:55 PM
Restricted Application added a project: Wikidata. · View Herald TranscriptMar 12 2020, 2:33 PM
Pablo-WMDE renamed this task from Use externalized vue to Termbox: Use "vue" ResourceLoader module from core.Mar 12 2020, 2:42 PM

Change 610715 had a related patch set uploaded (by Guergana Tzatchkova; owner: Guergana Tzatchkova):
[wikibase/termbox@master] Termbox: Use "vue" ResourceLoader module from core

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

Change 610749 had a related patch set uploaded (by Guergana Tzatchkova; owner: Guergana Tzatchkova):
[mediawiki/extensions/Wikibase@master] Termbox: Use "vue" ResourceLoader module from core

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

Change 610749 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Termbox: Use "vue" ResourceLoader module from core

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

Change 610715 merged by Guergana Tzatchkova:
[wikibase/termbox@master] Termbox: Use "vue" ResourceLoader module from core

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

Michael closed this task as Resolved.Aug 3 2020, 11:19 AM
Michael added a subscriber: Michael.

Jakob_WMDE reopened this task as Open.Fri, Sep 18, 1:30 PM
Jakob_WMDE removed guergana.tzatchkova as the assignee of this task.
Jakob_WMDE added a subscriber: guergana.tzatchkova.

Reopening this ticket, as it seems incomplete and not working as intended.

  1. The termbox submodule pin in Wikibase wasn't updated. Production is now running an old termbox version from March that lists Vue as a dependency, but doesn't actually have it externalized.
  2. Even with the pin updated, the latest version doesn't seem to work in integration with Wikibase. Unless I'm doing something wrong, it seems that for termbox it isn't as easy as telling the build config to externalize the library. Termbox isn't yet following the init/app split as bridge or tainted references, so it may not know that it needs to require (commonjs) Vue.

I stumbled across this because I was trying to improve the termbox browser test after running into issues on a completely unrelated change. Current termbox master does not work in integration with Wikibase. As far as I know there aren't any user-facing changes in the making for termbox, but a broken master branch is not good. This needs to be looked into.

Change 628347 had a related patch set uploaded (by Jakob; owner: Jakob):
[wikibase/termbox@master] Build client-side for lib target commonjs

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

Change 628347 merged by jenkins-bot:
[wikibase/termbox@master] Build client-side for lib target commonjs

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

Change 628744 had a related patch set uploaded (by Jakob; owner: Jakob):
[mediawiki/extensions/Wikibase@master] Update termbox pin to latest master

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

Change 628744 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Update termbox pin to latest master

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