Page MenuHomePhabricator

Split Wikibase Lib
Closed, DuplicatePublic

Description

WikibaseLib is currently a "kitchen sink" of things used by both client and repo. This is quite bad. It should be split up into modules with clear boundaries. For now, they can stay in the same git repository, but they should be moved to separate directories, on the same level as "repo", "client", "lib", etc.

Some possible new modules:

  • engine (the mediawiki independent part of the repo)
  • core (basis for the engine - maybe already covered by DataModel)
  • formatters (could go into DataValue/xxx)
  • parsers (could go into DataValue/xxx)
  • validators (can they go into the repo module)
  • storage (read-only)
  • serializers (already being moved/replaced)

One thing to consider is also that the repo wiki would almost always want to also have (at least some) client functionality. The repo being its own client is really the standard use case. So it would be fine for the repo module to depend on the client module, so things like language fallback could just be defined in the client.

Side note: we may want to move messages to the new components. That needs to be coordinated with the i18n folks (Siebrand, in particular).


Version: unspecified
Severity: normal
Whiteboard: u=dev c=story p=0

Details

Reference
bz67408

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 3:26 AM
bzimport set Reference to bz67408.
bzimport added a subscriber: Unknown Object (MLST).