pantry-0.1.1.0: Content addressable Haskell package management

Safe HaskellNone
LanguageHaskell2010

Pantry.Internal.Stackage

Description

All types and functions exported from this module are for advanced usage only. They are needed for stackage-server integration with pantry.

Synopsis

Documentation

data family Unique record :: Type #

Unique keys besides the Key.

Instances
Show (Unique Tree) Source # 
Instance details

Defined in Pantry.Storage

Show (Unique Version) Source # 
Instance details

Defined in Pantry.Storage

Show (Unique PackageName) Source # 
Instance details

Defined in Pantry.Storage

data Unique TreeEntry Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree = UniqueTree (Key Blob)
data Unique Version Source # 
Instance details

Defined in Pantry.Storage

data Unique PackageName Source # 
Instance details

Defined in Pantry.Storage

data family EntityField record a :: Type #

An EntityField is parameterised by the Haskell record it belongs to and the additional type of that field.

Instances
data EntityField TreeEntry typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField TreeEntry typ where
data EntityField Tree typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Tree typ where
data EntityField Version typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Version typ where
data EntityField PackageName typ Source # 
Instance details

Defined in Pantry.Storage

data family Key record :: Type #

By default, a backend will automatically generate the key Instead you can specify a Primary key made up of unique values.

Instances
Eq (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Eq (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key Tree -> Key Tree -> Bool #

(/=) :: Key Tree -> Key Tree -> Bool #

Eq (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Eq (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Ord (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Ord (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

compare :: Key Tree -> Key Tree -> Ordering #

(<) :: Key Tree -> Key Tree -> Bool #

(<=) :: Key Tree -> Key Tree -> Bool #

(>) :: Key Tree -> Key Tree -> Bool #

(>=) :: Key Tree -> Key Tree -> Bool #

max :: Key Tree -> Key Tree -> Key Tree #

min :: Key Tree -> Key Tree -> Key Tree #

Ord (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Ord (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Read (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Read (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Read (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Read (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Show (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Show (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key Tree -> ShowS #

show :: Key Tree -> String #

showList :: [Key Tree] -> ShowS #

Show (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Show (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key Version) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key Version) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key Version) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

(PersistEntity a, PersistEntityBackend a ~ backend, IsPersistBackend backend) => RawSql (Key a) 
Instance details

Defined in Database.Persist.Sql.Class

PersistFieldSql (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PersistFieldSql (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Tree) -> SqlType #

PersistFieldSql (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Version) -> SqlType #

PersistFieldSql (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key Version) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

newtype Key TreeEntry Source # 
Instance details

Defined in Pantry.Storage

newtype Key Tree Source # 
Instance details

Defined in Pantry.Storage

newtype Key Version Source # 
Instance details

Defined in Pantry.Storage

newtype Key PackageName Source # 
Instance details

Defined in Pantry.Storage

newtype VersionP Source #

Constructors

VersionP 

Fields

Instances
Eq VersionP Source # 
Instance details

Defined in Pantry.Types

Ord VersionP Source # 
Instance details

Defined in Pantry.Types

Read VersionP Source # 
Instance details

Defined in Pantry.Types

Show VersionP Source # 
Instance details

Defined in Pantry.Types

NFData VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

rnf :: VersionP -> () #

ToJSON VersionP Source # 
Instance details

Defined in Pantry.Types

FromJSON VersionP Source # 
Instance details

Defined in Pantry.Types

PersistFieldSql VersionP Source # 
Instance details

Defined in Pantry.Types

PersistField VersionP Source # 
Instance details

Defined in Pantry.Types

Display VersionP Source # 
Instance details

Defined in Pantry.Types

newtype PackageNameP Source #

Constructors

PackageNameP 
Instances
Eq PackageNameP Source # 
Instance details

Defined in Pantry.Types

Ord PackageNameP Source # 
Instance details

Defined in Pantry.Types

Read PackageNameP Source # 
Instance details

Defined in Pantry.Types

Show PackageNameP Source # 
Instance details

Defined in Pantry.Types

NFData PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

rnf :: PackageNameP -> () #

ToJSON PackageNameP Source # 
Instance details

Defined in Pantry.Types

ToJSONKey PackageNameP Source # 
Instance details

Defined in Pantry.Types

FromJSON PackageNameP Source # 
Instance details

Defined in Pantry.Types

FromJSONKey PackageNameP Source # 
Instance details

Defined in Pantry.Types

PersistFieldSql PackageNameP Source # 
Instance details

Defined in Pantry.Types

PersistField PackageNameP Source # 
Instance details

Defined in Pantry.Types

Display PackageNameP Source # 
Instance details

Defined in Pantry.Types

data PantryConfig Source #

Configuration value used by the entire pantry package. Create one using withPantryConfig. See also PantryApp for a convenience approach to using pantry.

Since: 0.1.0.0

Constructors

PantryConfig 

Fields

data Storage Source #

Represents a SQL database connection. This used to be a newtype wrapper around a connection pool. However, when investigating https://github.com/commercialhaskell/stack/issues/4471, it appeared that holding a pool resulted in overly long write locks being held on the database. As a result, we now abstract away whether a pool is used, and the default implementation in Pantry.Storage does not use a pool.

Constructors

Storage 

Fields

packageTreeKey :: Package -> TreeKey Source #

The TreeKey containing this package.

This is a hash of the binary representation of packageTree.

Since: 0.1.0.0

parsePackageName :: String -> Maybe PackageName Source #

Parse a package name from a Value.

Since: 0.1.0.0

parseVersion :: String -> Maybe Version Source #

Parse a version from a Value.

Since: 0.1.0.0

parseVersionThrowing :: MonadThrow m => String -> m Version Source #

Parse a package version from a Value throwing on failure

Since: 0.1.0.0

packageNameString :: PackageName -> String Source #

Render a package name as a Value.

Since: 0.1.0.0

versionString :: Version -> String Source #

Render a version as a Value.

Since: 0.1.0.0

type ModuleNameId = Key ModuleName Source #

data TreeEntry Source #

Constructors

TreeEntry 

Fields

Instances
PersistFieldSql TreeEntry Source # 
Instance details

Defined in Pantry.Storage

PersistEntity TreeEntry Source # 
Instance details

Defined in Pantry.Storage

PersistField TreeEntry Source # 
Instance details

Defined in Pantry.Storage

ToBackendKey SqlBackend TreeEntry Source # 
Instance details

Defined in Pantry.Storage

Eq (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Ord (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Read (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Show (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PersistFieldSql (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

data Unique TreeEntry Source # 
Instance details

Defined in Pantry.Storage

data EntityField TreeEntry typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField TreeEntry typ where
newtype Key TreeEntry Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend TreeEntry Source # 
Instance details

Defined in Pantry.Storage

data Tree Source #

Constructors

Tree 

Fields

Instances
PersistFieldSql Tree Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy Tree -> SqlType #

PersistEntity Tree Source # 
Instance details

Defined in Pantry.Storage

Associated Types

type PersistEntityBackend Tree :: Type #

data Key Tree :: Type #

data EntityField Tree a :: Type #

data Unique Tree :: Type #

PersistField Tree Source # 
Instance details

Defined in Pantry.Storage

ToBackendKey SqlBackend Tree Source # 
Instance details

Defined in Pantry.Storage

Eq (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key Tree -> Key Tree -> Bool #

(/=) :: Key Tree -> Key Tree -> Bool #

Ord (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

compare :: Key Tree -> Key Tree -> Ordering #

(<) :: Key Tree -> Key Tree -> Bool #

(<=) :: Key Tree -> Key Tree -> Bool #

(>) :: Key Tree -> Key Tree -> Bool #

(>=) :: Key Tree -> Key Tree -> Bool #

max :: Key Tree -> Key Tree -> Key Tree #

min :: Key Tree -> Key Tree -> Key Tree #

Read (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Show (Unique Tree) Source # 
Instance details

Defined in Pantry.Storage

Show (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key Tree -> ShowS #

show :: Key Tree -> String #

showList :: [Key Tree] -> ShowS #

ToJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

PersistFieldSql (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Tree) -> SqlType #

PersistField (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree = UniqueTree (Key Blob)
data EntityField Tree typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Tree typ where
newtype Key Tree Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend Tree Source # 
Instance details

Defined in Pantry.Storage

type HackageCabalId = Key HackageCabal Source #

data Version Source #

Instances
PersistFieldSql Version Source # 
Instance details

Defined in Pantry.Storage

PersistEntity Version Source # 
Instance details

Defined in Pantry.Storage

Associated Types

type PersistEntityBackend Version :: Type #

data Key Version :: Type #

data EntityField Version a :: Type #

data Unique Version :: Type #

PersistField Version Source # 
Instance details

Defined in Pantry.Storage

ToBackendKey SqlBackend Version Source # 
Instance details

Defined in Pantry.Storage

Eq (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Ord (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Read (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Show (Unique Version) Source # 
Instance details

Defined in Pantry.Storage

Show (Key Version) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key Version) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key Version) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key Version) Source # 
Instance details

Defined in Pantry.Storage

PersistFieldSql (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Version) -> SqlType #

PersistField (Key Version) Source # 
Instance details

Defined in Pantry.Storage

data Unique Version Source # 
Instance details

Defined in Pantry.Storage

data EntityField Version typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Version typ where
newtype Key Version Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend Version Source # 
Instance details

Defined in Pantry.Storage

data PackageName Source #

Instances
PersistFieldSql PackageName Source # 
Instance details

Defined in Pantry.Storage

PersistEntity PackageName Source # 
Instance details

Defined in Pantry.Storage

PersistField PackageName Source # 
Instance details

Defined in Pantry.Storage

ToBackendKey SqlBackend PackageName Source # 
Instance details

Defined in Pantry.Storage

Eq (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Ord (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Read (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Show (Unique PackageName) Source # 
Instance details

Defined in Pantry.Storage

Show (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

FromJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

ToHttpApiData (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

FromHttpApiData (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PathPiece (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PersistFieldSql (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

data Unique PackageName Source # 
Instance details

Defined in Pantry.Storage

data EntityField PackageName typ Source # 
Instance details

Defined in Pantry.Storage

newtype Key PackageName Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend PackageName Source # 
Instance details

Defined in Pantry.Storage

type BlobId = Key Blob Source #

data HackageTarballResult Source #

Information returned by getHackageTarball

Since: 0.1.0.0

Constructors

HackageTarballResult 

Fields

forceUpdateHackageIndex :: (HasPantryConfig env, HasLogFunc env) => Maybe Utf8Builder -> RIO env DidUpdateOccur Source #

Same as updateHackageIndex, but force the database update even if hackage security tells that there is no change. This can be useful in order to make sure the database is in sync with the locally downloaded tarball

Since: 0.1.0.0