Documentation
¶
Overview ¶
Command levels enforces ursus's import-level invariant:
a package may import strictly lower levels only.
This is what keeps the layout acyclic and, more importantly, keeps it *comprehensible*: the root package must never import selector, sql, or ursustest, and the engine must never import the root. Both are easy to violate with a single convenience method, and neither produces a compile error until the cycle actually closes — by which point the fix is a refactor.
Run via `make levels`; wired into CI.
Click to show internal directories.
Click to hide internal directories.