Page MenuHomePhabricator

wbEntity shouldn't be served on every page load
Closed, ResolvedPublic5 Estimated Story Points

Description

Motivation
Config value mw.config.get( 'wbEntity' ) has been deprecated two years ago and on large items this is horrendously wasteful and will slow down client side rendering/page load time. Germany for instance the HTML has a page size of 2.9MB which is unacceptably big (removing the config property drops the page size down to 2MB).

Problem
In the code, it still loads the value, when firing the hook (wbEntity is deprecated in favor of wikibase.entityPage.entityLoaded hook)

Suggested Solution / Technical Details
Replace the firing hook with an API call for now to make it asynchronous and drop serving the config value entirely.

  • Deprecation has been announced previously
  • We have to announce this as per BC process

Original bug report:

I noticed when exploring the config values on Wikidata the config value mw.config.get( 'wbEntity' )
On large items this is horrendously wasteful and will slow down client side rendering/page load time. Germany for instance the HTML has a page size of 2.9MB which is unacceptably big (removing the config property drops the page size down to 2MB).

I am sure this data can be sent to the client in better ways. I doubt many of the values are used by anything and some would be better as data attributes on the HTML itself.

Grepping the code base nothing seems to be currently using it (but I assume some gadgets might be)/ I'd thus recommend killing its use asap.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Jdlrobson raised the priority of this task from to Needs Triage.Dec 30 2014, 1:26 AM
Jdlrobson added subscribers: Jdlrobson, ori.
Lydia_Pintscher added a project: Wikidata.
Lydia_Pintscher set Security to None.
Lydia_Pintscher added subscribers: thiemowmde, hoo, aude and 2 others.

1legoktm@terbium:~$ mwgrep \'wbEntity\'
2testwikidatawiki MediaWiki:Gadget-Merge.js
3wikidatawiki MediaWiki:Gadget-AuthorityControl.js
4wikidatawiki MediaWiki:Gadget-EmptyDetect.js
5wikidatawiki MediaWiki:Gadget-FindRedirectsForAliases.js
6wikidatawiki MediaWiki:Gadget-KeyShortcuts.js
7wikidatawiki MediaWiki:Gadget-Move.js
8(total: 6, shown: 6)
9
10legoktm@terbium:~$ mwgrep \'wbEntity\' --user
11testwikidatawiki User:Leitoxx/MediaWiki:Gadget-Move.js
12wikidatawiki User:0lympic/merge.js
13wikidatawiki User:CennoxX/Sandbox.js
14wikidatawiki User:Ch1902/family.js
15wikidatawiki User:Fomafix/MediaWiki:Gadget-AuthorityControl.js
16wikidatawiki User:Fomafix/MediaWiki:Gadget-FindRedirectsForAliases.js
17wikidatawiki User:Fomafix/MediaWiki:Gadget-Move.js
18wikidatawiki User:Hsarrazin/viaf.js
19wikidatawiki User:Ivan A. Krestinin/Gadget-MoveClaim.js
20wikidatawiki User:Orci/monobook.js
21wikidatawiki User:Petr Matas/ExportClaims.js
22wikidatawiki User:Petr Matas/Gadget-Move.js
23wikidatawiki User:Ricordisamoa/Archive.js
24wikidatawiki User:Ricordisamoa/DMYdates.js
25wikidatawiki User:Ricordisamoa/GeneaWiki.js
26wikidatawiki User:Ricordisamoa/InterwikiList.js
27wikidatawiki User:Ricordisamoa/LowercaseDescription.js
28wikidatawiki User:Ricordisamoa/Reasonator.js
29wikidatawiki User:Ricordisamoa/Wikispecies.js
30wikidatawiki User:Tpt/validator.js
31wikidatawiki User:Tpt/viaf.js
32wikidatawiki User:XXN/Gadget-Move.js

I use wbEntity extensively and I find it extremely useful to avoid API requests in many scripts.

I have no doubt it is useful and convenient to have it in the page but having the entire json embedded is an unacceptable page load increase. Every user is subjected to a page larger than it needs to be.

It should be retrieved via the api, stored in a more minimal form or be embedded inside the HTML better.

All usages except for AuthorityControl can probably be easily switched without having to worry much.

In case of AuthorityControl we need to be more careful: It's enabled per default, thus needs to be handled with care regarding potential performance issues.

Change 353366 had a related patch set uploaded (by Aleksey Bekh-Ivanov (WMDE); owner: Aleksey Bekh-Ivanov (WMDE)):
[mediawiki/extensions/Wikibase@master] [WIP] Replacement for 'wbEntity' config variable To be able to migrate from 'wbEntity' in future replacing it with an API call.

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

One quick thing: As I checked the response page, it's gzipped causing it to downsize dramatically. For example you said Q183 is 2.9MB which is not true:

amir-GL552VW:~$ curl --compressed -so /dev/null https://www.wikidata.oki/Q183 -w '%{size_download}'
42418
amir-GL552VW:~$  curl -so /dev/null https://www.wikidata.org/wiki/Q183 -w '%{size_download}'
3316781

Browsers only download 42KB, not 3.3MB.

I downloaded the Q183 entity and removed wbEntity manually, and then compared sizes:

$ curl https://www.wikidata.org/wiki/Q183 > Q183.html
$ # Manually removed wbEntity and saved as Q183_no_wbEntity.html
$ cat Q183.html | wc -c
3316781
$ gzip -c Q183.html | wc -c
260015
$ cat Q183_no_wbEntity.html | wc -c
2479357
$ gzip -c Q183_no_wbEntity.html | wc -c
146876

It is true that sizes are not that big when compressed, but with removing wbEntity we remove 25% uncompressed and 43%(!) compressed size.

May be I've messed something up, feel free to reproduce.

Also, you've made a mistake in your command, this one is correct:

$ curl --compressed -so /dev/null https://www.wikidata.org/wiki/Q183 -w '%{size_download}'
260312

The new results:

1ladsgroup@tin:~$ mwgrep \'wbEntity\'
2## Public wiki results
3testwikidatawiki MediaWiki:Gadget-AuthorityControl.js
4testwikidatawiki MediaWiki:Gadget-Merge.js
5urwiki MediaWiki:Gadget-Preview.js
6wikidatawiki MediaWiki:Gadget-AuthorityControl.js
7wikidatawiki MediaWiki:Gadget-DuplicateReferences.js
8wikidatawiki MediaWiki:Gadget-EasyQuery.js
9wikidatawiki MediaWiki:Gadget-EmptyDetect.js
10wikidatawiki MediaWiki:Gadget-FindRedirectsForAliases.js
11wikidatawiki MediaWiki:Gadget-KeyShortcuts.js
12wikidatawiki MediaWiki:Gadget-Move.js
13wikidatawiki MediaWiki:Gadget-Preview.js
14
15(total: 11, shown: 11)
16ladsgroup@tin:~$ mwgrep \'wbEntity\' --user
17## Public wiki results
18mediawikiwiki User:Jgirault/Kartodeveloper/scripts/wikidata.js
19testwikidatawiki User:Alphos/ytreporp.js
20testwikidatawiki User:Dachary/DR.js
21testwikidatawiki User:Leitoxx/MediaWiki:Gadget-Move.js
22testwikidatawiki User:Lemondoge/common.js
23wikidatawiki User:0lympic/merge.js
24wikidatawiki User:Aroche/openstreetmap.js
25wikidatawiki User:Aude/DuplicateReferences.js
26wikidatawiki User:Aude/authority.js
27wikidatawiki User:Aude/authority2.js
28wikidatawiki User:Aude/preview.js
29wikidatawiki User:Bene*/statementfilter.js
30wikidatawiki User:CennoxX/Sandbox.js
31wikidatawiki User:Ch1902/family.js
32wikidatawiki User:Dachary/DR.js
33wikidatawiki User:Fomafix/MediaWiki:Gadget-AuthorityControl.js
34wikidatawiki User:Fomafix/MediaWiki:Gadget-FindRedirectsForAliases.js
35wikidatawiki User:Fomafix/MediaWiki:Gadget-Move.js
36wikidatawiki User:Galaktos/Gadget-Preview.js
37wikidatawiki User:HakanIST/test.js
38wikidatawiki User:Hardwigg/header-img.js
39wikidatawiki User:Hsarrazin/viaf.js
40wikidatawiki User:Inductiveload/hotkey test.js
41wikidatawiki User:Ivan A. Krestinin/Gadget-AuthorityControl-Local.js
42wikidatawiki User:Ivan A. Krestinin/Gadget-MoveClaim.js
43wikidatawiki User:JGirault (WMF)/common.js
44wikidatawiki User:Joern/altLabels.js
45wikidatawiki User:Jonas Kress (WMDE)/check constraints.js
46wikidatawiki User:Jonas Kress (WMDE)/duply.js
47wikidatawiki User:Joshbaumgartner/dr.js
48wikidatawiki User:Jura1/altLabels.js
49wikidatawiki User:Lockal/rawedit.js
50wikidatawiki User:Magnus Manske/actest.js
51wikidatawiki User:Matěj Suchánek/checkSitelinks.js
52wikidatawiki User:Matěj Suchánek/markDisambigs.js
53wikidatawiki User:Matěj Suchánek/markasduplicate.js
54wikidatawiki User:Mbch331/Gadget-AuthorityControl.js
55wikidatawiki User:McSearch/common.js
56wikidatawiki User:Nikki/common.js
57wikidatawiki User:Orci/monobook.js
58wikidatawiki User:Petr Matas/ExportClaims.js
59wikidatawiki User:Petr Matas/Gadget-AuthorityControl.js
60wikidatawiki User:Petr Matas/Gadget-Move.js
61wikidatawiki User:Ricordisamoa/Archive.js
62wikidatawiki User:Ricordisamoa/DMYdates.js
63wikidatawiki User:Ricordisamoa/GeneaWiki.js
64wikidatawiki User:Ricordisamoa/InterwikiList.js
65wikidatawiki User:Ricordisamoa/LowercaseDescription.js
66wikidatawiki User:Ricordisamoa/Reasonator.js
67wikidatawiki User:Ricordisamoa/SetGender.js
68wikidatawiki User:Ricordisamoa/Wikispecies.js
69wikidatawiki User:Thibaut120094/preview.js
70wikidatawiki User:Tpt/validator.js
71wikidatawiki User:Tpt/viaf.js
72wikidatawiki User:ValterVB/Dis.js
73
74(total: 55, shown: 55)

@Ladsgroup What I've noticed that this pattern is wrong. For example: MediaWiki:Gadget-Merge.js contains access to wbEntityId but not to wbEntity.
Can you try it with regexp: \bwbEntity\b ?
Or may be like:

:~$ mwgrep '\'wbEntity\''

To check correctness: MediaWiki:Gadget-AuthorityControl.js should be in the list

Script to download all found scripts:

#!/usr/bin/env bash

curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-AuthorityControl.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-AuthorityControl.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-Merge.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-Merge.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-Preview.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-Preview.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-AuthorityControl.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-AuthorityControl.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-DuplicateReferences.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-DuplicateReferences.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-EasyQuery.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-EasyQuery.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-EmptyDetect.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-EmptyDetect.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-FindRedirectsForAliases.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-FindRedirectsForAliases.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-KeyShortcuts.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-KeyShortcuts.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-Move.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-Move.js'
curl 'https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-Preview.js&action=raw&ctype=text/javascript' > 'MediaWiki:Gadget-Preview.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Jgirault/Kartodeveloper/scripts/wikidata.js&action=raw&ctype=text/javascript' > 'User:Jgirault_Kartodeveloper_scripts_wikidata.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Alphos/ytreporp.js&action=raw&ctype=text/javascript' > 'User:Alphos_ytreporp.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Dachary/DR.js&action=raw&ctype=text/javascript' > 'User:Dachary_DR.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Leitoxx/MediaWiki:Gadget-Move.js&action=raw&ctype=text/javascript' > 'User:Leitoxx_MediaWiki:Gadget-Move.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Lemondoge/common.js&action=raw&ctype=text/javascript' > 'User:Lemondoge_common.js'
curl 'https://www.wikidata.org/w/index.php?title=User:0lympic/merge.js&action=raw&ctype=text/javascript' > 'User:0lympic_merge.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Aroche/openstreetmap.js&action=raw&ctype=text/javascript' > 'User:Aroche_openstreetmap.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Aude/DuplicateReferences.js&action=raw&ctype=text/javascript' > 'User:Aude_DuplicateReferences.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Aude/authority.js&action=raw&ctype=text/javascript' > 'User:Aude_authority.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Aude/authority2.js&action=raw&ctype=text/javascript' > 'User:Aude_authority2.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Aude/preview.js&action=raw&ctype=text/javascript' > 'User:Aude_preview.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Bene*/statementfilter.js&action=raw&ctype=text/javascript' > 'User:Bene*_statementfilter.js'
curl 'https://www.wikidata.org/w/index.php?title=User:CennoxX/Sandbox.js&action=raw&ctype=text/javascript' > 'User:CennoxX_Sandbox.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ch1902/family.js&action=raw&ctype=text/javascript' > 'User:Ch1902_family.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Dachary/DR.js&action=raw&ctype=text/javascript' > 'User:Dachary_DR.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Fomafix/MediaWiki:Gadget-AuthorityControl.js&action=raw&ctype=text/javascript' > 'User:Fomafix_MediaWiki:Gadget-AuthorityControl.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Fomafix/MediaWiki:Gadget-FindRedirectsForAliases.js&action=raw&ctype=text/javascript' > 'User:Fomafix_MediaWiki:Gadget-FindRedirectsForAliases.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Fomafix/MediaWiki:Gadget-Move.js&action=raw&ctype=text/javascript' > 'User:Fomafix_MediaWiki:Gadget-Move.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Galaktos/Gadget-Preview.js&action=raw&ctype=text/javascript' > 'User:Galaktos_Gadget-Preview.js'
curl 'https://www.wikidata.org/w/index.php?title=User:HakanIST/test.js&action=raw&ctype=text/javascript' > 'User:HakanIST_test.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Hardwigg/header-img.js&action=raw&ctype=text/javascript' > 'User:Hardwigg_header-img.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Hsarrazin/viaf.js&action=raw&ctype=text/javascript' > 'User:Hsarrazin_viaf.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Inductiveload/hotkey_test.js&action=raw&ctype=text/javascript' > 'User:Inductiveload_hotkey-test.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ivan_A._Krestinin/Gadget-AuthorityControl-Local.js&action=raw&ctype=text/javascript' > 'User:Ivan-A.-Krestinin_Gadget-AuthorityControl-Local.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ivan_A._Krestinin/Gadget-MoveClaim.js&action=raw&ctype=text/javascript' > 'User:Ivan-A.-Krestinin_Gadget-MoveClaim.js'
curl 'https://www.wikidata.org/w/index.php?title=User:JGirault_(WMF)/common.js&action=raw&ctype=text/javascript' > 'User:JGirault (WMF)_common.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Joern/altLabels.js&action=raw&ctype=text/javascript' > 'User:Joern_altLabels.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Jonas_Kress_(WMDE)/check_constraints.js&action=raw&ctype=text/javascript' > 'User:Jonas-Kress (WMDE)_check-constraints.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Jonas_Kress_(WMDE)/duply.js&action=raw&ctype=text/javascript' > 'User:Jonas-Kress (WMDE)_duply.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Joshbaumgartner/dr.js&action=raw&ctype=text/javascript' > 'User:Joshbaumgartner_dr.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Jura1/altLabels.js&action=raw&ctype=text/javascript' > 'User:Jura1_altLabels.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Lockal/rawedit.js&action=raw&ctype=text/javascript' > 'User:Lockal_rawedit.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Magnus_Manske/actest.js&action=raw&ctype=text/javascript' > 'User:Magnus-Manske_actest.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Matěj_Suchánek/checkSitelinks.js&action=raw&ctype=text/javascript' > 'User:Matěj-Suchánek_checkSitelinks.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Matěj_Suchánek/markDisambigs.js&action=raw&ctype=text/javascript' > 'User:Matěj-Suchánek_markDisambigs.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Matěj_Suchánek/markasduplicate.js&action=raw&ctype=text/javascript' > 'User:Matěj-Suchánek_markasduplicate.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Mbch331/Gadget-AuthorityControl.js&action=raw&ctype=text/javascript' > 'User:Mbch331_Gadget-AuthorityControl.js'
curl 'https://www.wikidata.org/w/index.php?title=User:McSearch/common.js&action=raw&ctype=text/javascript' > 'User:McSearch_common.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Nikki/common.js&action=raw&ctype=text/javascript' > 'User:Nikki_common.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Orci/monobook.js&action=raw&ctype=text/javascript' > 'User:Orci_monobook.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Petr_Matas/ExportClaims.js&action=raw&ctype=text/javascript' > 'User:Petr-Matas_ExportClaims.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Petr_Matas/Gadget-AuthorityControl.js&action=raw&ctype=text/javascript' > 'User:Petr-Matas_Gadget-AuthorityControl.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Petr_Matas/Gadget-Move.js&action=raw&ctype=text/javascript' > 'User:Petr-Matas_Gadget-Move.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/Archive.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_Archive.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/DMYdates.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_DMYdates.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/GeneaWiki.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_GeneaWiki.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/InterwikiList.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_InterwikiList.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/LowercaseDescription.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_LowercaseDescription.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/Reasonator.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_Reasonator.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/SetGender.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_SetGender.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Ricordisamoa/Wikispecies.js&action=raw&ctype=text/javascript' > 'User:Ricordisamoa_Wikispecies.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Thibaut120094/preview.js&action=raw&ctype=text/javascript' > 'User:Thibaut120094_preview.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Tpt/validator.js&action=raw&ctype=text/javascript' > 'User:Tpt_validator.js'
curl 'https://www.wikidata.org/w/index.php?title=User:Tpt/viaf.js&action=raw&ctype=text/javascript' > 'User:Tpt_viaf.js'
curl 'https://www.wikidata.org/w/index.php?title=User:ValterVB/Dis.js&action=raw&ctype=text/javascript' > 'User:ValterVB_Dis.js'

I've downloaded all the scripts that present in the former list and analyzed them manually here summary of the analysis.

Total: 58 scripts

Discovered use cases:

  • Check only for existence of wbEntity: 11 scripts
  • Check only for existence of wbEntity.sitelinks: 10 scripts
  • Use wikibase.datamodel: 2 scripts
  • Overwrite wbEntity string value with object (parsed JSON) value: 1 script

All scripts use wbEntity for read only except:

  • MediaWiki:Gadget-DuplicateReferences.js (not totally sure because it uses wikibase.datamodel)
  • User:Jonas_Kress_(WMDE)/duply.js (not totally sure because it uses wikibase.datamodel)
  • User:Ch1902/family.js (overwrites wbEntity config variable. Something that should not be allowed to do as soon as it might break all the JS code on the page)

List of scripts analyzed

MediaWiki:Gadget-AuthorityControl.js
MediaWiki:Gadget-Merge.js
MediaWiki:Gadget-Preview.js
MediaWiki:Gadget-AuthorityControl.js
MediaWiki:Gadget-DuplicateReferences.js
MediaWiki:Gadget-EasyQuery.js
MediaWiki:Gadget-EmptyDetect.js
MediaWiki:Gadget-FindRedirectsForAliases.js
MediaWiki:Gadget-KeyShortcuts.js
MediaWiki:Gadget-Move.js
User:Jgirault/Kartodeveloper/scripts/wikidata.js
User:Alphos/ytreporp.js
User:Dachary/DR.js
User:Leitoxx/MediaWiki:Gadget-Move.js
User:Lemondoge/common.js
User:0lympic/merge.js
User:Aroche/openstreetmap.js
User:Aude/DuplicateReferences.js
User:Aude/authority.js
User:Aude/authority2.js
User:Aude/preview.js
User:Bene*/statementfilter.js
User:CennoxX/Sandbox.js
User:Ch1902/family.js
User:Dachary/DR.js
User:Fomafix/MediaWiki:Gadget-AuthorityControl.js
User:Fomafix/MediaWiki:Gadget-FindRedirectsForAliases.js
User:Fomafix/MediaWiki:Gadget-Move.js
User:Galaktos/Gadget-Preview.js
User:HakanIST/test.js
User:Hardwigg/header-img.js
User:Hsarrazin/viaf.js
User:Inductiveload/hotkey_test.js
User:Ivan_A._Krestinin/Gadget-AuthorityControl-Local.js
User:Ivan_A._Krestinin/Gadget-MoveClaim.js
User:JGirault_(WMF)/common.js
User:Joern/altLabels.js
User:Jonas_Kress_(WMDE)/check_constraints.js
User:Jonas_Kress_(WMDE)/duply.js
User:Joshbaumgartner/dr.js
User:Jura1/altLabels.js
User:Lockal/rawedit.js
User:Magnus_Manske/actest.js
User:Matěj_Suchánek/checkSitelinks.js
User:Matěj_Suchánek/markDisambigs.js
User:Matěj_Suchánek/markasduplicate.js
User:Mbch331/Gadget-AuthorityControl.js
User:McSearch/common.js
User:Nikki/common.js
User:Orci/monobook.js
User:Petr_Matas/ExportClaims.js
User:Petr_Matas/Gadget-AuthorityControl.js
User:Petr_Matas/Gadget-Move.js
User:Ricordisamoa/Archive.js
User:Ricordisamoa/DMYdates.js
User:Ricordisamoa/GeneaWiki.js
User:Ricordisamoa/InterwikiList.js
User:Ricordisamoa/LowercaseDescription.js
User:Ricordisamoa/Reasonator.js
User:Ricordisamoa/SetGender.js
User:Ricordisamoa/Wikispecies.js
User:Thibaut120094/preview.js
User:Tpt/validator.js
User:Tpt/viaf.js
User:ValterVB/Dis.js
Check only for existence of wbEntity
MediaWiki:Gadget-KeyShortcuts.js
User:Aude/DuplicateReferences.js
User:Bene*/statementfilter.js
User:Dachary/DR.js
User:Inductiveload/hotkey_test.js
User:JGirault_(WMF)/common.js
User:Jonas-Kress_(WMDE)/check-constraints.js
User:Joshbaumgartner/dr.js
User:Lockal/rawedit.js
User:McSearch/common.js
User:Nikki/common.js
Check only for existence of wbEntity.sitelinks
MediaWiki:Gadget-EmptyDetect.js
MediaWiki:Gadget-FindRedirectsForAliases.js
MediaWiki:Gadget-Preview.js
User:0lympic/merge.js
User:Aude/preview.js
User:CennoxX/Sandbox.js
User:Fomafix/MediaWiki:Gadget-FindRedirectsForAliases.js
User:Galaktos/Gadget-Preview.js
User:Orci/monobook.js
User:Thibaut120094/preview.js

Change 353366 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Replacement for 'wbEntity' config variable To be able to migrate from 'wbEntity' in future replacing it with an API call.

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

Change 361652 had a related patch set uploaded (by Thiemo Mättig (WMDE); owner: Thiemo Mättig (WMDE)):
[mediawiki/extensions/Wikibase@master] Improve documentation of "wikibase.entityPage.entityLoaded" hook

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

Change 361652 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Improve documentation of "wikibase.entityPage.entityLoaded" hook

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

Addshore changed the task status from Open to Stalled.Oct 31 2018, 5:34 PM
Ladsgroup changed the task status from Stalled to Open.Jul 13 2019, 5:14 PM
Ladsgroup added a project: Wikidata-Campsite.

wbEntity is not being used in large-scale anymore:

ladsgroup@mwmaint1002:~$ mwgrep "'wbEntity'"
urwiki              MediaWiki:Gadget-Preview.js

(total: 1, shown: 1)

User scripts use it to some degree but this has been deprecated two years ago.

ladsgroup@mwmaint1002:~$ mwgrep "'wbEntity'" --user
mediawikiwiki       User:Jgirault/Kartodeveloper/scripts/wikidata.js
testwikidatawiki    User:Alphos/ytreporp.js
testwikidatawiki    User:Dachary/DR.js
testwikidatawiki    User:Leitoxx/MediaWiki:Gadget-Move.js
testwikidatawiki    User:Lemondoge/common.js
wikidatawiki        User:0lympic/merge.js
wikidatawiki        User:Aroche/openstreetmap.js
wikidatawiki        User:Aude/DuplicateReferences.js
wikidatawiki        User:Aude/authority.js
wikidatawiki        User:Aude/authority2.js
wikidatawiki        User:Aude/preview.js
wikidatawiki        User:Bene*/statementfilter.js
wikidatawiki        User:Ch1902/family.js
wikidatawiki        User:Dachary/DR.js
wikidatawiki        User:Dcflyer/common.js
wikidatawiki        User:Dereckson/namescript.js
wikidatawiki        User:Fomafix/MediaWiki:Gadget-AuthorityControl.js
wikidatawiki        User:Fomafix/MediaWiki:Gadget-FindRedirectsForAliases.js
wikidatawiki        User:Fomafix/MediaWiki:Gadget-Move.js
wikidatawiki        User:HakanIST/test.js
wikidatawiki        User:Hardwigg/header-img.js
wikidatawiki        User:Hardwigg/wdTableView.js
wikidatawiki        User:Harmonia Amanda/namescript2.js
wikidatawiki        User:Hsarrazin/viaf.js
wikidatawiki        User:Inductiveload/hotkey test.js
wikidatawiki        User:Ivan A. Krestinin/Gadget-AuthorityControl-Local.js
wikidatawiki        User:Ivan A. Krestinin/Gadget-MoveClaim.js
wikidatawiki        User:JGirault (WMF)/common.js
wikidatawiki        User:Joern/altLabels.js
wikidatawiki        User:Jon Harald Søby/autoLastName.js
wikidatawiki        User:Jon Harald Søby/namescript.js
wikidatawiki        User:Jon Harald Søby/petscaniframe.js
wikidatawiki        User:Jonas Kress (WMDE)/duply.js
wikidatawiki        User:Joshbaumgartner/dr.js
wikidatawiki        User:Jura1/altLabels.js
wikidatawiki        User:Lockal/rawedit.js
wikidatawiki        User:Magnus Manske/actest.js
wikidatawiki        User:Mbch331/Gadget-AuthorityControl.js
wikidatawiki        User:Nikki/KeyShortcuts.js
wikidatawiki        User:Orci/monobook.js
wikidatawiki        User:Petr Matas/ExportClaims.js
wikidatawiki        User:Petr Matas/Gadget-AuthorityControl.js
wikidatawiki        User:Petr Matas/Gadget-Move.js
wikidatawiki        User:Ricordisamoa/Archive.js
wikidatawiki        User:Ricordisamoa/DMYdates.js
wikidatawiki        User:Ricordisamoa/GeneaWiki.js
wikidatawiki        User:Ricordisamoa/InterwikiList.js
wikidatawiki        User:Ricordisamoa/LowercaseDescription.js
wikidatawiki        User:Ricordisamoa/Reasonator.js
wikidatawiki        User:Ricordisamoa/SetGender.js
wikidatawiki        User:Ricordisamoa/Wikispecies.js
wikidatawiki        User:Thibaut120094/preview.js
wikidatawiki        User:Tpt/validator.js
wikidatawiki        User:Tpt/viaf.js
wikidatawiki        User:ValterVB/Dis.js
wikidatawiki        User:XXN/Gadget-Move.js
wikidatawiki        User:XXN/test10.js

It's time to drop it.

Change 522609 had a related patch set uploaded (by Ladsgroup; owner: Ladsgroup):
[mediawiki/extensions/Wikibase@master] Stop serving wbEntity config variable

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

Ladsgroup updated the task description. (Show Details)
Ladsgroup moved this task from Incoming to Ready to estimate on the Wikidata-Campsite board.
Ladsgroup removed a subscriber: Aleksey_WMDE.
alaa_wmde lowered the priority of this task from High to Medium.Jul 16 2019, 12:45 PM
alaa_wmde set the point value for this task to 5.

Change 523737 had a related patch set uploaded (by Ladsgroup; owner: Ladsgroup):
[mediawiki/extensions/Wikibase@master] Replace wbEntity config variable with ajax call

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

Change 522609 abandoned by Ladsgroup:
Stop serving wbEntity config variable

Reason:
In favor of I9a96f290f6719cc82767d6d0024daed3f25153ba

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

Change 523737 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Replace wbEntity config variable with ajax call

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

Change 524202 had a related patch set uploaded (by Tarrow; owner: Tarrow):
[mediawiki/extensions/Wikibase@master] Use URL for ajax EntityData

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

Announced today on the mailing-lists, Project Chat and Weekly Summary, and I sent an individual message to most of the people in the list.

Change 525142 had a related patch set uploaded (by Ladsgroup; owner: Ladsgroup):
[operations/puppet@production] varnish: Do not strip the cache out of Special:EntityData if revision is set

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

Announced today on the mailing-lists, Project Chat and Weekly Summary, and I sent an individual message to most of the people in the list.

example links for posterity/future-reference:

and thanks!

Change 525142 had a related patch set uploaded (by Ladsgroup; owner: Ladsgroup):
[operations/puppet@production] varnish: Do not strip the cache out of Special:EntityData if revision is set

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

This mitigates any network and server-side performance regressions until we find a better solution that involves not using this hook at all.

Change 525142 abandoned by Ladsgroup:
varnish: Do not strip the cache out of Special:EntityData if revision is set

Reason:
We decided to go at direction of not using the module (or use it less often): T229221

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

Change 524202 abandoned by Tarrow:
Use URL for ajax EntityData

Reason:
can't use URL yet

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