Page MenuHomePhabricator

When processing changes to Wikibase SiteLinks on the client, only trigger updates for sitelinks that are actually shown in the sidebar.
Open, LowPublic

Description

Currently, wikibase clients will trigger a purge of an item's connected page if any sitelink on that item changes. However, that purge is only needed when a sitelink that is actually shown in the page's sidebar is changed. This is the case for all wikis in the same family (inter-language links) and all wikis in the same language ("sister" links) - e.g. German Wikipedia would show English Wikipedia and German Wikivoyage, but not French Wikivoyage or Italian Wikinews. Ignoring changes to other sitelinks should help reduce the number of page updates triggered by wikibase changes.

Proposed behavior:
In, AffectedPagesFinder::getChangedAspects, when sitelinks are changed, only trigger the SITELINK_USAGE aspect if the sitelink is either in the same family or the same language group as the local wiki.

Consequences:
This requires a re-interpretation of the S usage aspect: it then means usage of "sitelinks as used in a sidebar", no longer "use of any sitelinks". This means that explicit usage (via Lua) of other sitelinks needs to be tracked as O (or X).

Event Timeline

This requires a re-interpretation of the S usage aspect: it then means usage of "sitelinks used in the sidebar", no longer "use of any sitelinks". This means that explicit usage (via Lua) of other sitelinks needs to be tracked as O (or X).

Given how widely this is used eg. on commons, this is a total show stopper. We will need to find another solution here, possibly a new usage aspect.

@hoo Access to "other" sitelinks is widely used? How/where exactly? Note that for the purpose of sitelinks, Wikipedias are considered to be in the same family as Commons.

@hoo Access to "other" sitelinks is widely used? How/where exactly? Note that for the purpose of sitelinks, Wikipedias are considered to be in the same family as Commons.

Commons very often links (in the page content) to other Wikipedias. This is the default behavior of https://commons.wikimedia.org/wiki/Template:Label which is used *a lot*(on 5M+ pages there).

Commons very often links (in the page content) to other Wikipedias.

Ah, but that's not a problem, Wikipedias are "in the family" for commons. And e.g. Wikibooks or Wikiquote linking to Wikipedia isn't a problem either, as long as it's the same language. These are the common cases, I believe. Basically, everything in the same row or column of the site matrix. Everything not in the same row or column would be O or X.

Commons very often links (in the page content) to other Wikipedias.

Ah, but that's not a problem, Wikipedias are "in the family" for commons. And e.g. Wikibooks or Wikiquote linking to Wikipedia isn't a problem either, as long as it's the same language. These are the common cases, I believe. Basically, everything in the same row or column of the site matrix. Everything not in the same row or column would be O or X.

Ah, I see… clarified the description now. This still seems awkwardly complex to me, though :/

@hoo I agree that it's not pretty - it's an optimization following the most common usage pattern. That tends to be messy. But it may allow us to ignore a good 90% of sitelinks changes, one of the more common kinds of edit...