Page MenuHomePhabricator

Find or create tools for detecting architectural boundary violations
Open, Needs TriagePublic

Description

To reduce coupling in the MediaWiki code base, it would be helpful to define technical layers and domain modules. Such layers and modules should have clear boundaries and interfaces that come with rules about which may depend on which, providing guidance for reducing coupling.

To support the effort of structuring the code base into layers and domains, a tool would be helpful that could identify violations, to guide development efforts and to measure progress.

Such a tool can be thought of as consisting of two parts:

  • one part identifies dependencies between classes, and membership of classes in layers and domains
  • the second part analyzes these dependencies with respect to a set of architectural constraints.

Event Timeline

Adding MediaWiki-Core-Platform-Team as part of housekeeping to this lingering open task not showing up on any active workboard and as the Platform Engineering team project tag got archived. In case this task isn't valid anymore, please close as invalid or declined. Thanks.

It seems to me that https://github.com/qossmic/deptrac may be a good condidate. A first step might be to ensure that code under libs/ doesn't use code outside libs/.

Change #1132141 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/core@master] LinkCache: Improve high-level docs

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