dependency management
**Dependency management** is the **process of defining, resolving, locking, and updating software package relationships** - it prevents version conflicts and ensures code executes against known-compatible libraries.
**What Is Dependency management?**
- **Definition**: Management of direct and transitive package requirements across project lifecycle.
- **Resolution Problem**: Different libraries may require incompatible versions of the same dependency.
- **Control Artifacts**: Lockfiles, constraints files, and reproducible build manifests.
- **Failure Symptoms**: Import errors, runtime crashes, silent behavioral changes, and security regressions.
**Why Dependency management Matters**
- **Reliability**: Stable dependency graphs reduce breakages during development and deployment.
- **Security**: Version visibility enables patching vulnerable packages systematically.
- **Reproducibility**: Locked dependencies are required for deterministic rebuild and rerun.
- **Team Velocity**: Fewer dependency conflicts means less engineering time lost to environment issues.
- **Operational Governance**: Controlled updates reduce surprise regressions in production systems.
**How It Is Used in Practice**
- **Pinning Policy**: Lock critical dependencies and update on controlled cadence with validation tests.
- **Automated Checks**: Use CI to detect conflicts, outdated packages, and known vulnerabilities.
- **Upgrade Workflow**: Batch dependency updates with changelog review and rollback plan.
Dependency management is **a foundational engineering hygiene practice for stable ML and software systems** - disciplined graph control prevents avoidable failures and drift.