One of the ways how we keep the engine maintainable is to limit the dependencies between unit groups. For example, the transformation and UI stuff depends on images, but the units in the images
group cannot depend on units in the transform
or ui
groups. A simple dependency tree allows to easily debug some hard problems (when you want to strip the used units, to get to the "bottom of the problem").
The allowed dependencies are listed below. In short, the list of subdirectories goes from "lower level" to "higher level" in the sections below.
Note
|
Temporarily, some units are allowed exception to break from this rule. Right now 3 units have such exception, i.e. they actually break dependencies outlined below. See AllowedExceptions list in check_units_dependencies. This is a TODO — we will fix those. It’s also a practical decision — while we want to watch over these dependencies, in practice breakage (in some cases) has no bad consequences.
|