Page MenuHomePhabricator

[timebox 48hrs] Create an overview of existing types of coupling in Wikibase between Repo and Client
Closed, ResolvedPublic

Description

As wikibase maintainer I would like to have a comprehensive list of potentially coupled logic so that I can understand coupling in the code-base better.

For each of areas/"types" of coupled logic (see list below) we intend to have (at least):

  • a more clear understanding what kind of logic and elements are shared/coupled
  • some possible numbers on the amount of these (when makes sense - e.g. i18n messages)
  • description of characteristics of dependencies (when applicable).

Possibly incomplete list of known types

  • Coupling in PHP code
  • Coupling in the front end code
  • Coupling of i18n messages used in both places
  • Coupling of ResourceLoader modules used in both places
  • Coupling in cache layer (shared cache entries in WMF environment)
    • Repo<->client coupling
    • One version to next week's version
  • Coupling in data access layer

...

Solving those dependencies is not subject of this task. They will be addressed systematically in a way defined based on the outcome of this investigation.

Suggested approach: timebox investigation (limited to 12 * 4 = 48 person hours), each of team members to be included in investigating at least 2 different areas of Wikibase and every type being investigated by more than one person.

Note: As this story is broken down into several tasks, please update this ticket with the amount of time spent on each investoigation.

Acceptance criteria:

  • There is a list provided (in this task) of all existing types of Repo-Client coupling
  • For each type of coupling there is an overview of details of dependencies in this area - free form/depending on the contents - included in or linked from this task
  • Create additional task tickets (and complete them) for other types of coupling that are discovered

Time Left

  • 48h
  • 42h (-6 ResourceLoader)
  • 38 (-4 i18n messages)
  • 35h (-3 PHP)
  • 31h (-4 cache)
  • 14h (-17 front end)
  • 0h (various reviews and updates not otherwise tracked)

Investigator overview (outdated)

Topic / DeveloperAmirItamarLucasTom
Coupling in PHP codeongoing
Coupling in the front end codeongoing
Coupling of i18n messagesongoingongoing
Coupling of ResourceLoader modulesongoing
Coupling in cache layerongoing
Coupling in data access layer

Event Timeline

Tarrow renamed this task from Create an overview of existing types of coupling in Wikibase between Repo and Client to [timebox 48hrs] Create an overview of existing types of coupling in Wikibase between Repo and Client.Jun 10 2020, 12:15 PM
Tarrow updated the task description. (Show Details)
WMDE-leszek updated the task description. (Show Details)
WMDE-leszek updated the task description. (Show Details)

Suggestion: Summarizing the result of each of the investigations in a semi-structured format, e.g.

SummaryGeneral characteristics of the coupling. overall volume of it (if applicable), a list (or a link to a list) of points of coupling/coupled elements, etc.
Risks, threats, challenges identified(optional) Any particular challenges spotted during the investigation, that might cause significant effort - mention those here
Opportunities noticed(optional) Have you come across some particular aspects that could make decoupling easy/smooth? Mention these here
Other remarks
Ladsgroup claimed this task.