Explores the complexity and granularity of dependency graphs in software projects, examining how different build systems track dependencies at various levels (files vs packages). Discusses explicit and implicit dependencies including third-party libraries, compilers, system libraries, and runtime dependencies. Covers challenges of managing dependencies in large codebases, the trade-offs between fine-grained and coarse-grained dependency tracking, and approaches like Docker images and Nix for managing build environments.
Sort: