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.
- 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
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 / Developer||Amir||Itamar||Lucas||Tom|
|Coupling in PHP code||ongoing|
|Coupling in the front end code||ongoing|
|Coupling of i18n messages||ongoing||ongoing|
|Coupling of ResourceLoader modules||ongoing|
|Coupling in cache layer||ongoing|
|Coupling in data access layer|