Software dependency (source code)

= Software dependency

A <software dependency> is another component, tool, library or service required for some aspect of a program's construction or operation. Dependencies form a <dependency graph>; direct requirements can introduce additional transitive requirements. <Dependency resolution> selects versions satisfying the combined constraints.

For example, if one component requires library versions at least 2 but below 3, while another requires at least 3, no single library version satisfies both in one shared installation. A resolver must report the conflict or use an isolation mechanism that genuinely permits separate versions. Pip documents <backtracking> through candidate <software package>[package] versions to solve such constraints.<Dependency Resolution in the pip documentation>[How it works and Dealing with dependency conflicts]{ref} Recording selected versions improves reproducibility, but the <operating system>, input data and execution settings can still affect the result.