Architecture¶
DFetch has grown significantly. Below is a description of its internals.
These diagrams are based on Simon Brown’s C4-model.
The layer boundaries shown in the diagrams are enforced at development time by
import-linter. The contracts are configured in
pyproject.toml under [tool.importlinter]. Run lint-imports to verify them locally.
Dependencies must remain unidirectional and follow this order:
dfetch.commands
↓
dfetch.reporting
↓
dfetch.project
↓
dfetch.manifest (independent of dfetch.vcs)
dfetch.vcs (independent of dfetch.manifest)
↓
dfetch.util (independent of dfetch.log)
dfetch.log (independent of dfetch.util)
C1 - Context¶
C2 - Containers¶
C3 - Components¶
Commands¶
Manifest¶
Error
Project¶