Status: Binding
Dependencies increase maintenance, security, compatibility, install, and upgrade cost.
Prefer:
- existing project capability,
- Python standard library,
- a small focused dependency,
- a larger dependency only when it buys meaningful capability.
Do not add infrastructure libraries merely to avoid a small amount of clear code.
Provider-specific dependencies should remain localized to the integration that needs them whenever practical.
A provider upgrade forcing unrelated runtime/core edits is a signal that the boundary may be leaking.
Core dependencies should remain deliberately minimal.
Adding a dependency to core requires stronger justification than adding one to an adapter.
Dependency upgrades should be reviewable for:
- public API changes,
- runtime behavior changes,
- transitive dependency impact,
- Python compatibility,
- licensing/security implications where relevant.
Prefer source/vector formats when the consumer supports them.
Track raster assets only when the consumer requires raster output.
Frequently changing generated assets should not create unnecessary repository-history churn.
Do not introduce Git LFS without a measured need and an explicit project decision.