Page MenuHomePhabricator

Track dependencies for multiple Content objects per page
Closed, ResolvedPublic

Description

Implement T190063: Tracking dependencies for multiple Content objects per page (MCR) as approved:

When running links updates (after an edit, etc)

  1. for each slot, construct a dedicated ParserOutput, and also a ParserOutput for the combined output.
  2. merge the link tracking information from all slots's ParserOutput into a combined ParserOutput.
  3. run LinksUpdate with the combined output.
  4. run all other DataUpdates queued by Content objects with only their own Content/ParserOutput.

This means LinksUpdate will see all aggregated information like before, but newly introduced DataUpdates from non-main slots see only their own, unless they explicitly access or transclude other slots.

Rationale: This approach preserves the maximum of information, and is easy to implement. The fact that it may lead to extraneous data tracking and spurious purging of the parser cache does not seem relevant in the light of the currently targeted use cases. This issue should be revisited in the context of the creation of an entirely new mechanism for tracking dependencies of generated artifacts for purging.

Related Objects

StatusSubtypeAssignedTask
OpenBUG REPORTNone
OpenNone
StalledNone
OpenNone
OpenNone
DuplicateNone
OpenFeatureNone
DuplicateNone
OpenFeatureNone
ResolvedNone
OpenNone
OpenNone
OpenFeatureNone
OpenNone
OpenFeatureNone
OpenNone
ResolvedNone
ResolvedNone
Resolved Ramsey-WMF
OpenFeatureNone
StalledNone
OpenNone
OpenNone
Opendaniel
Resolveddaniel
Resolveddaniel
InvalidTgr
Resolveddaniel
ResolvedTgr
ResolvedTgr
ResolvedTgr
Resolved Bstorm
ResolvedCCicalese_WMF

Event Timeline

Change 418075 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] [MCR][WIP] Replace calls to Content::getSecondaryDataUpdates

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

Change 418075 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] [MCR][DNM] Replace calls to Content::getSecondaryDataUpdates

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

Vvjjkkii renamed this task from Track dependencies for multiple Content objects per page to ehdaaaaaaa.Jul 1 2018, 1:11 AM
Vvjjkkii removed daniel as the assignee of this task.
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed subscribers: gerritbot, Aklapper.
CommunityTechBot renamed this task from ehdaaaaaaa to Track dependencies for multiple Content objects per page.Jul 2 2018, 4:22 PM
CommunityTechBot assigned this task to daniel.
CommunityTechBot raised the priority of this task from High to Needs Triage.
CommunityTechBot updated the task description. (Show Details)
CommunityTechBot added subscribers: gerritbot, Aklapper.

Change 418075 abandoned by Daniel Kinzler:
[MCR][DNM] Replace calls to Content::getSecondaryDataUpdates

Reason:
see Idbe7d582b49

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

Tagging for 1.32 release, since this is needed to make MCR feature-complete.

Change 418134 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Introduce ContentHandler::getSecondaryDataUpdates.

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

Change 418134 merged by jenkins-bot:
[mediawiki/core@master] Introduce ContentHandler::getSecondaryDataUpdates.

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