HackerPapers

arXiv:2011.07851cs.SE

Dependency Solving Is Still Hard, but We Are Getting Better at It

Pietro Abate, Roberto Di Cosmo, Georgios Gousios, Stefano Zacchiroli

Abstract

Dependency solving is a hard (NP-complete) problem in all non-trivial component models due to either mutually incompatible versions of the same packages or explicitly declared package conflicts. As such, software upgrade planning needs to rely on highly specialized dependency solvers, lest falling into pitfalls such as incompleteness-a combination of package versions that satisfy dependency constraints does exist, but the package manager is unable to find it. In this paper we look back at proposals from dependency solving research dating back a few years. Specifically, we review the idea of treating dependency solving as a separate concern in package manager implementations, relying on generic dependency solvers based on tried and tested techniques such as SAT solving, PBO, MILP, etc. By conducting a census of dependency solving capabilities in state-of-the-art package managers we conclude that some proposals are starting to take off (e.g., SAT-based dependency solving) while-with few exceptions-others have not (e.g., out-sourcing dependency solving to reusable components). We reflect on why that has been the case and look at novel challenges for dependency solving that have emerged since.

arXiv comments
Journal reference
2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), Feb 2020, London, Canada. pp.547-551
DOI
doi:10.1109/SANER48275.2020.9054837
Subjects
cs.SESoftware Engineering

On Hacker News

Linked by 2 identifiable commenters in 2 comments across 1 thread, from Nov 2021 to Nov 2021.

Comments linking this paper, per year.

Discussed in comments1 thread

  1. From macOS to Arch Linux 2 comments
    • > I don't see how apt or dnf are any more comprehensive than pacman. What do you mean by that? In terms of the core functionality of package managers, they both have more robust dependency resolvers (and dnf's is actually complete[1]). In the case of dnf, it's also more…

      pxcView on HNParent context

    • > they both have more robust dependency resolvers (and dnf's is actually complete[1]) > 1: See the discussion of completeness here: https://arxiv.org/pdf/2011.07851.pdf That's interesting. In what ways are these resolvers superior to pacman? I never had dependency resolution…

      matheusmoreiraView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.