Page MenuHomePhabricator

Re-define module dependencies of the Wikibase extensions
Closed, InvalidPublic

Description

At present, WikibaseRepo depends on WikibaseLib and WikibaseView, and WikibaseClient depends on WikibaseLib. All of these depend on other composer modules, which do not depend on MediaWiki.

We have long planned and failed to get rid of lib by moving code to "clean" components. The problem is that this would require all code that is used by both repo and client to not depend on MediaWiki.

Also, with for federation, a repo will often be a client to other repos; and in practice, a wiki that is a Wikibase repo will also at least be it's own client, so data can be used from wikitext. For this reason, we are introducing an optional dependency of repo on client.

For the future, a better split would be useful:

  • WikibaseDataAccess - read-only storage layer services; depends on MediaWiki.
  • WikibaseDataUsage - Lua interface, parser functions, sidebar integration, etc; depends on MediaWiki.
  • WikibaseView - all the entity UI stuff; depends on MediaWiki.
  • WikibaseStorage - storage layer services; depends on WikibaseDataAccess and MediaWiki.
  • WikibaseRepo - special pages, etc; depends on WikibaseStorage and WikibaseView and WikibaseDataAccess and MediaWiki. Depends on WikibaseDataUsage in so far as the local wiki acts as a client to itself.

Event Timeline

daniel created this task.Dec 21 2016, 3:00 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptDec 21 2016, 3:00 PM
Lydia_Pintscher closed this task as Invalid.Jan 24 2019, 2:45 PM
Lydia_Pintscher added a subscriber: Lydia_Pintscher.

Closing this to remove tasks from the board that havn't gotten any attention in a long time.