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

11/16/2020
by   Pietro Abate, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/25/2022

Using Solver-Aided Languages to Build Package Managers

Open-source software is critical for modern development, but most open-s...
research
10/16/2022

Using Answer Set Programming for HPC Dependency Solving

Modern scientific software stacks have become extremely complex, using m...
research
10/13/2017

An Empirical Comparison of Dependency Network Evolution in Seven Software Packaging Ecosystems

Nearly every popular programming language comes with one or more package...
research
03/03/2022

License Incompatibilities in Software Ecosystems

Contemporary software is characterized by reuse of components that are d...
research
02/10/2022

Reliabuild: Searching for High-Fidelity Builds Using Active Learning

Modern software is incredibly complex. A typical application may compris...
research
09/17/2021

Modeling and Solving Graph Synthesis Problems Using SAT-Encoded Reachability Constraints in Picat

Many constraint satisfaction problems involve synthesizing subgraphs tha...
research
12/07/2018

CSS Minification via Constraint Solving (Technical Report)

Minification is a widely-accepted technique which aims at reducing the s...

Please sign up or login with your details

Forgot password? Click here to reset