The MediaWiki code base has a steep learning curve. We have talked a lot about making it easier to understand, easier to test, easier to modify. All these things are held back by the way all the different parts of the code are tangled with each other. These tangles are caused by cyclic dependencies in the code.
In this session, we'll discuss what cyclic dependencies are, explore how they can be found, and develop strategies to resolve them in existing code, and to avoid them in new code.
* [[https://www.mediawiki.org/wiki/Wikimedia_Technical_Conference/2018/Session_notes/Architecting_Core:_layers/components/libraries|Discussion of decoupling at TechConf 2018]].
* [[https://lists.wikimedia.org/pipermail/wikitech-l/2019-May/092066.html|Announcement of Project Ruprecht]]
* [[https://en.wikipedia.org/wiki/Acyclic_dependencies_principle|Acyclic dependencies principle]] on Wikipedia