View Source Hex.Solver (Hex v2.0.6)
Link to this section Summary
Functions
Parses or converts a SemVer version or Elixir version requirement to an internal solver constraint
that can be returned by the Hex.Solver.Registry
or passed to Hex.Solver.run/4
.
Parses or converts a SemVer version or Elixir version requirement to an internal solver constraint
that can be returned by the Hex.Solver.Registry
or passed to Hex.Solver.run/4
.
Runs the version solver.
Link to this section Types
Link to this section Functions
@spec parse_constraint(String.t() | Version.t() | Version.Requirement.t()) :: {:ok, constraint()} | :error
Parses or converts a SemVer version or Elixir version requirement to an internal solver constraint
that can be returned by the Hex.Solver.Registry
or passed to Hex.Solver.run/4
.
@spec parse_constraint!(String.t() | Version.t() | Version.Requirement.t()) :: constraint()
Parses or converts a SemVer version or Elixir version requirement to an internal solver constraint
that can be returned by the Hex.Solver.Registry
or passed to Hex.Solver.run/4
.
@spec run(module(), [dependency()], [locked()], [label()], [{:ansi, boolean()}]) :: {:ok, result()} | {:error, String.t()}
Runs the version solver.
Takes a Hex.Solver.Registry
implementation, a list of root dependencies, a list of locked
package versions, and a list of packages that are overridden by the root dependencies.
Locked dependencies are treated as optional dependencies with a single version as their constraint.
The overrides are a set of labels. If a dependency with a matching label is declared the solver will ignore that dependency unless it's a root dependency.
Returns a map of packages and their selected versions or a human readable explanation of why a solution could not be found.
options
Options
:ansi
- Iftrue
adds ANSI formatting to the failure message (Default:false
)