dependency-1.2.0.3: Dependency resolution for package management

Safe HaskellNone
LanguageHaskell2010

Data.Dependency

Contents

Synopsis

Functions

resolveDependencies Source #

Arguments

:: PackageSet Dependency

Package set

-> [Dependency]

Dependencies requested

-> DepM [[Dependency]]

Phased build

Dependency resolution is guided by the following:

  1. Always use a newer version when possible
  2. Obey constraints
  3. Specify an error for circular dependencies
  4. Specify an error for overconstrained builds
  5. Specify an error if a package is not present
  6. Present a solution whenever one exists.

This doesn't do any package resolution beyond versioning.

Types

data Dependency Source #

A generic dependency, consisting of a package name and version, as well as dependency names and their constraints.

Instances
Eq Dependency Source # 
Instance details

Defined in Data.Dependency.Type

Ord Dependency Source # 
Instance details

Defined in Data.Dependency.Type

Show Dependency Source # 
Instance details

Defined in Data.Dependency.Type

Generic Dependency Source # 
Instance details

Defined in Data.Dependency.Type

Associated Types

type Rep Dependency :: * -> * #

NFData Dependency Source # 
Instance details

Defined in Data.Dependency.Type

Methods

rnf :: Dependency -> () #

type Rep Dependency Source # 
Instance details

Defined in Data.Dependency.Type

type Rep Dependency = D1 (MetaData "Dependency" "Data.Dependency.Type" "dependency-1.2.0.3-JoMOpaMi9KKA3CFbO8Vscr" False) (C1 (MetaCons "Dependency" PrefixI True) (S1 (MetaSel (Just "_libName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: (S1 (MetaSel (Just "_libDependencies") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(String, Constraint Version)]) :*: S1 (MetaSel (Just "_libVersion") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version))))

newtype PackageSet a Source #

A package set is simply a map between package names and a set of packages.

Constructors

PackageSet 

Fields

Instances
Foldable PackageSet Source # 
Instance details

Defined in Data.Dependency.Type

Methods

fold :: Monoid m => PackageSet m -> m #

foldMap :: Monoid m => (a -> m) -> PackageSet a -> m #

foldr :: (a -> b -> b) -> b -> PackageSet a -> b #

foldr' :: (a -> b -> b) -> b -> PackageSet a -> b #

foldl :: (b -> a -> b) -> b -> PackageSet a -> b #

foldl' :: (b -> a -> b) -> b -> PackageSet a -> b #

foldr1 :: (a -> a -> a) -> PackageSet a -> a #

foldl1 :: (a -> a -> a) -> PackageSet a -> a #

toList :: PackageSet a -> [a] #

null :: PackageSet a -> Bool #

length :: PackageSet a -> Int #

elem :: Eq a => a -> PackageSet a -> Bool #

maximum :: Ord a => PackageSet a -> a #

minimum :: Ord a => PackageSet a -> a #

sum :: Num a => PackageSet a -> a #

product :: Num a => PackageSet a -> a #

Eq a => Eq (PackageSet a) Source # 
Instance details

Defined in Data.Dependency.Type

Methods

(==) :: PackageSet a -> PackageSet a -> Bool #

(/=) :: PackageSet a -> PackageSet a -> Bool #

Ord a => Ord (PackageSet a) Source # 
Instance details

Defined in Data.Dependency.Type

Generic (PackageSet a) Source # 
Instance details

Defined in Data.Dependency.Type

Associated Types

type Rep (PackageSet a) :: * -> * #

Methods

from :: PackageSet a -> Rep (PackageSet a) x #

to :: Rep (PackageSet a) x -> PackageSet a #

Binary a => Binary (PackageSet a) Source # 
Instance details

Defined in Data.Dependency.Type

Methods

put :: PackageSet a -> Put #

get :: Get (PackageSet a) #

putList :: [PackageSet a] -> Put #

type Rep (PackageSet a) Source # 
Instance details

Defined in Data.Dependency.Type

type Rep (PackageSet a) = D1 (MetaData "PackageSet" "Data.Dependency.Type" "dependency-1.2.0.3-JoMOpaMi9KKA3CFbO8Vscr" True) (C1 (MetaCons "PackageSet" PrefixI True) (S1 (MetaSel (Just "_packageSet") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Map String (Set a)))))

newtype Version Source #

Constructors

Version [Natural] 
Instances
Eq Version Source # 
Instance details

Defined in Data.Dependency.Type

Methods

(==) :: Version -> Version -> Bool #

(/=) :: Version -> Version -> Bool #

Ord Version Source # 
Instance details

Defined in Data.Dependency.Type

Show Version Source # 
Instance details

Defined in Data.Dependency.Type

Generic Version Source # 
Instance details

Defined in Data.Dependency.Type

Associated Types

type Rep Version :: * -> * #

Methods

from :: Version -> Rep Version x #

to :: Rep Version x -> Version #

Binary Version Source # 
Instance details

Defined in Data.Dependency.Type

Methods

put :: Version -> Put #

get :: Get Version #

putList :: [Version] -> Put #

NFData Version Source # 
Instance details

Defined in Data.Dependency.Type

Methods

rnf :: Version -> () #

type Rep Version Source # 
Instance details

Defined in Data.Dependency.Type

type Rep Version = D1 (MetaData "Version" "Data.Dependency.Type" "dependency-1.2.0.3-JoMOpaMi9KKA3CFbO8Vscr" True) (C1 (MetaCons "Version" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Natural])))

data ResolveError Source #

An error that can occur during package resolution.

Instances
Eq ResolveError Source # 
Instance details

Defined in Data.Dependency.Error

Show ResolveError Source # 
Instance details

Defined in Data.Dependency.Error

Generic ResolveError Source # 
Instance details

Defined in Data.Dependency.Error

Associated Types

type Rep ResolveError :: * -> * #

Pretty ResolveError Source # 
Instance details

Defined in Data.Dependency.Error

NFData ResolveError Source # 
Instance details

Defined in Data.Dependency.Error

Methods

rnf :: ResolveError -> () #

type Rep ResolveError Source # 
Instance details

Defined in Data.Dependency.Error

data Constraint a Source #

Monoid/functor for representing constraints.

Constructors

LessThanEq a 
GreaterThanEq a 
Eq a 
Bounded (Constraint a) (Constraint a) 
None 
Instances
Functor Constraint Source # 
Instance details

Defined in Data.Dependency.Type

Methods

fmap :: (a -> b) -> Constraint a -> Constraint b #

(<$) :: a -> Constraint b -> Constraint a #

Eq a => Eq (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

Methods

(==) :: Constraint a -> Constraint a -> Bool #

(/=) :: Constraint a -> Constraint a -> Bool #

Ord a => Ord (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

Show a => Show (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

Generic (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

Associated Types

type Rep (Constraint a) :: * -> * #

Methods

from :: Constraint a -> Rep (Constraint a) x #

to :: Rep (Constraint a) x -> Constraint a #

Semigroup (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

Monoid (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

NFData a => NFData (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type

Methods

rnf :: Constraint a -> () #

type Rep (Constraint a) Source # 
Instance details

Defined in Data.Dependency.Type