Dependency Rules
CODERU relies on specific package naming conventions to enforce the following architectural rules automatically.
1. Recursive Access
If package P(a) has access to package P(b), then P(a) also has access to all direct children of P(b), except impl packages. This rule applies recursively.
2. Basic Rule
For all packages without special semantic names: A package P has access only to its direct children. Access to sibling or parent packages is not allowed.
3. Common Rule
Any package named common has special visibility. All sibling packages of a common package (and their descendants) have access to it.
4. Factory Rule
A package named factory and all of its descendants have access to all siblings of the factory.
5. API Rule
Any package generally has access to any api package, with strict restrictions to prevent cycles.