Skip to content

Move remaining dependency solver API and unit tests into cabal-install-solver package #10614

Open
@grayjay

Description

@grayjay

This issue is a followup to #3781. The main dependency solver modules were moved into a separate package (cabal-install-solver), but some functions that act as an API are still in cabal-install. The dependency solver unit tests use that API, so they are also in cabal-install.

This change is much simpler now that the top-down solver was removed in #3598 and support for multiple solvers was removed in #9282.

Most of the remaining dependency solver API is in Distribution.Client.Dependency, including resolveDependencies and DepResolverParams:

-- | Run the dependency solver.
--
-- Since this is potentially an expensive operation, the result is wrapped in a
-- a 'Progress' structure that can be unfolded to provide progress information,
-- logging messages and the final result or an error.
resolveDependencies
:: Platform
-> CompilerInfo
-> Maybe PkgConfigDb
-> DepResolverParams
-> Progress String String SolverInstallPlan
resolveDependencies platform comp pkgConfigDB params =

-- | The set of parameters to the dependency resolver. These parameters are
-- relatively low level but many kinds of high level policies can be
-- implemented in terms of adjustments to the parameters.
data DepResolverParams = DepResolverParams

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions