Compare commits
26 Commits
master
...
fradrive/n
| Author | SHA1 | Date | |
|---|---|---|---|
| 378f38eece | |||
| 5fe9665150 | |||
| 96622d3a2b | |||
| d6662e3781 | |||
| 8d87c50a4a | |||
| bb76399531 | |||
| 1b8458c83b | |||
| 9b3b5c1a99 | |||
| ab8bbb5495 | |||
| 0154239133 | |||
| f50ff8ddca | |||
| 79d2c87405 | |||
| 18c41afe0f | |||
| ac1e272fb5 | |||
| c81bc149a9 | |||
| 8d5fb3c2b0 | |||
| 1f7808ddf1 | |||
| cacf2d291d | |||
| 36a53d3dae | |||
| 44c1d98cc0 | |||
| 61a74804f4 | |||
| 77e53812b4 | |||
| cbd134b330 | |||
| d6f936b270 | |||
| 31239454f5 | |||
| fc00b56b04 |
@ -3,6 +3,7 @@
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
-- Jobs to be executed as soon as possible in the background (so not to delay HTTP-responses, or triggered by cron-system without associated HTTP-Request)
|
||||
-- part of the *old* job system
|
||||
QueuedJob
|
||||
content Value -- JSON-encoded description of the work to be done (send an email to "test@example.org", find all recipients for a certain notifications and queue one new job each, distribute all submissions for a sheet to correctors, ...)
|
||||
creationInstance InstanceId -- multiple uni2work-instances access the same database, record which instance created this job for debugging purposes
|
||||
@ -15,6 +16,7 @@ QueuedJob
|
||||
-- Jobs are deleted from @QueuedJob@ after they are executed successfully and recorded in @CronLastExec@
|
||||
-- There is a Cron-system that, at set intervals, queries the database for work to be done in the background (i.e. if a lecturer has set a sheet's submissions to be automatically distributed and the submission deadline passed since the last check, then queue a new job to actually do the distribution)
|
||||
-- For the cron-system to determine whether a job needs to be done it needs to know if and when it was last (or ever) executed (i.e. a sheet's submissions should not be distributed twice)
|
||||
-- part of the *old* job system
|
||||
CronLastExec
|
||||
job Value -- JSON-encoded description of work done
|
||||
time UTCTime -- When was the job executed
|
||||
@ -22,6 +24,7 @@ CronLastExec
|
||||
UniqueCronLastExec job
|
||||
deriving Generic
|
||||
|
||||
-- part of the *old* job system
|
||||
TokenBucket
|
||||
ident TokenBucketIdent
|
||||
lastValue Int64
|
||||
|
||||
48
models/jobsystem.model
Normal file
48
models/jobsystem.model
Normal file
@ -0,0 +1,48 @@
|
||||
-- Metadata of jobs to be fetched by the scheduler and to be
|
||||
-- assigned to the workers
|
||||
-- part of the *new* job system
|
||||
JobMeta
|
||||
occurrence JobOccurrence -- When should the job be executed?
|
||||
-- (Possibly recurring)
|
||||
relativeInTime TimeRelative Maybe -- TODO find better name
|
||||
planExecutionAhead NominalDiffTime -- TODO find better name
|
||||
executionTimeEpsilon NominalDiffTime Maybe
|
||||
priority JobPrio
|
||||
ressources JobRessources
|
||||
status JobStatus
|
||||
lastStartSystem UTCTime Maybe -- when did a job scheduler last order
|
||||
-- a job worker to execute this job?
|
||||
-- when a job is to be executed now,
|
||||
-- lastStartWorker and lastFinished
|
||||
-- are unset
|
||||
lastStartWorker UTCTime Maybe -- when did a job worker last start
|
||||
-- executing this job?
|
||||
-- when no time is set, the job either
|
||||
-- was never executed yet or execution
|
||||
-- was just ordered (or something went
|
||||
-- very wrong within the jobsystem)
|
||||
lastFinished UTCTime Maybe -- when did a job worker last report
|
||||
-- successful execution?
|
||||
-- all "last..." fields should be set by the scheduler atomically!
|
||||
retryAfter NominalDiffTime Maybe -- if set, the scheduler checks on
|
||||
-- the job after this time and retries
|
||||
-- the job iff lastStartWorker is set,
|
||||
-- but lastFinished is unset
|
||||
-- Ensure that retryAfter is sufficient
|
||||
-- for this job and application, so better
|
||||
-- set to higher values until we know this
|
||||
-- job is definitely dead after execution
|
||||
-- (pun intended)
|
||||
isSystemJob Bool -- new system jobs are to be scheduled, old system jobs to be deleted on migration
|
||||
appVersion AppVersion
|
||||
deriving Eq Ord Show Generic
|
||||
|
||||
-- Actual job to be fetched and executed by the workers
|
||||
-- part of the *new* job system
|
||||
JobData
|
||||
meta JobMetaId
|
||||
content Value -- JSON representation of the job content
|
||||
-- (parsing as generic Aeson Value
|
||||
-- instead of Job for compatibility with
|
||||
-- legacy jobs)
|
||||
deriving Eq Ord Show Generic
|
||||
@ -186,6 +186,10 @@ dependencies:
|
||||
- haskell-src-meta
|
||||
- either
|
||||
- xlsx
|
||||
- jobsys
|
||||
- occurrence
|
||||
- segmented
|
||||
- haskell-nf
|
||||
other-extensions:
|
||||
- GeneralizedNewtypeDeriving
|
||||
- IncoherentInstances
|
||||
|
||||
@ -57,8 +57,12 @@ import qualified Data.UUID.V4 as UUID
|
||||
|
||||
import System.Directory
|
||||
|
||||
-- old job system
|
||||
import Jobs
|
||||
|
||||
-- new job system
|
||||
import JobSystem () -- TODO work in progress
|
||||
|
||||
import qualified Data.Text.Encoding as Text
|
||||
|
||||
import Yesod.Auth.Util.PasswordStore
|
||||
|
||||
42
src/Data/Jobsys/Instances.hs
Normal file
42
src/Data/Jobsys/Instances.hs
Normal file
@ -0,0 +1,42 @@
|
||||
-- SPDX-FileCopyrightText: 2023 Sarah Vaupel <sarah.vaupel@uniworx.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||
|
||||
module Data.Jobsys.Instances
|
||||
(
|
||||
) where
|
||||
|
||||
import ClassyPrelude
|
||||
|
||||
import Jobsys.Basics (TimeRelative(..), JobStatus(..))
|
||||
|
||||
import Model.Types.TH.PathPiece
|
||||
import Utils.PathPiece (camelToPathPiece', nullaryPathPiece, pathPieceJSON, pathPieceJSONKey)
|
||||
|
||||
import Data.Universe.Class (Finite, Universe)
|
||||
|
||||
-- TODO Refactor: Move to separate modules
|
||||
|
||||
|
||||
deriving instance Generic TimeRelative
|
||||
deriving anyclass instance Finite TimeRelative
|
||||
deriving anyclass instance Universe TimeRelative
|
||||
deriving anyclass instance NFData TimeRelative
|
||||
|
||||
nullaryPathPiece ''TimeRelative $ camelToPathPiece' 2
|
||||
pathPieceJSON ''TimeRelative
|
||||
pathPieceJSONKey ''TimeRelative
|
||||
derivePersistFieldPathPiece ''TimeRelative
|
||||
|
||||
|
||||
deriving instance Generic JobStatus
|
||||
deriving anyclass instance Finite JobStatus
|
||||
deriving anyclass instance Universe JobStatus
|
||||
deriving anyclass instance NFData JobStatus
|
||||
|
||||
nullaryPathPiece ''JobStatus $ camelToPathPiece' 2
|
||||
pathPieceJSON ''JobStatus
|
||||
pathPieceJSONKey ''JobStatus
|
||||
derivePersistFieldPathPiece ''JobStatus
|
||||
@ -1,4 +1,4 @@
|
||||
-- SPDX-FileCopyrightText: 2022 Sarah Vaupel <sarah.vaupel@ifi.lmu.de>
|
||||
-- SPDX-FileCopyrightText: 2022-2023 Sarah Vaupel <sarah.vaupel@uniworx.de>, Sarah Vaupel <sarah.vaupel@ifi.lmu.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@ -7,14 +7,45 @@
|
||||
module Data.SemVer.Instances
|
||||
() where
|
||||
|
||||
import ClassyPrelude
|
||||
import ClassyPrelude.Yesod
|
||||
|
||||
import qualified Data.SemVer as SemVer
|
||||
import qualified Data.SemVer.Constraint as SemVer (Constraint(..))
|
||||
import qualified Data.SemVer.Constraint as SemVer.Constraint
|
||||
|
||||
import Data.Either.Combinators (rightToMaybe)
|
||||
-- import qualified Data.Text as Text
|
||||
import Model.Types.TH.PathPiece
|
||||
import Web.HttpApiData
|
||||
|
||||
|
||||
instance PathPiece SemVer.Version where
|
||||
fromPathPiece = rightToMaybe . SemVer.fromText
|
||||
toPathPiece = SemVer.toText
|
||||
|
||||
-- instance PathPiece SemVer.Constraint where
|
||||
-- fromPathPiece t = case Text.unpack t of
|
||||
-- "*" -> Just SemVer.CAny
|
||||
-- '<' : t' -> SemVer.CLt <$> fromPathPiece t'
|
||||
-- '<':'=' : t' -> SemVer.CLtEq <$> fromPathPiece t'
|
||||
-- '>' : t' -> SemVer.CGt <$> fromPathPiece t'
|
||||
-- '>':'=' : t' -> SemVer.CGtEq <$> fromPathPiece t'
|
||||
-- _other
|
||||
-- | (t',t'') <- splitAt " || " t -> SemVer.COr <$> fromPathPiece t' <*> fromPathPiece t''
|
||||
-- | (t',t'') <- splitAt " " t -> SemVer.CAnd <$> fromPathPiece t' <*> fromPathPiece t''
|
||||
-- | otherwise -> SemVer.CEq <$> fromPathPiece t
|
||||
-- toPathPiece SemVer.CAny = "*"
|
||||
-- toPathPiece (SemVer.CLt v) = "<" <> toPathPiece v
|
||||
-- toPathPiece (SemVer.CLtEq v) = "<=" <> toPathPiece v
|
||||
-- toPathPiece (SemVer.CGt v) = ">" <> toPathPiece v
|
||||
-- toPathPiece (SemVer.CGtEq v) = ">=" <> toPathPiece v
|
||||
-- toPathPiece (SemVer.CEq v) = toPathPiece v
|
||||
-- toPathPiece (SemVer.CAnd a b) = toPathPiece a <> " " <> toPathPiece b
|
||||
-- toPathPiece (SemVer.COr a b) = toPathPiece a <> " || " <> toPathPiece b
|
||||
|
||||
derivePersistFieldPathPiece ''SemVer.Version
|
||||
|
||||
|
||||
instance ToHttpApiData SemVer.Version where
|
||||
toUrlPiece = SemVer.toText
|
||||
|
||||
|
||||
@ -232,6 +232,7 @@ import Data.MultiSet.Instances as Import ()
|
||||
import Control.Arrow.Instances as Import ()
|
||||
import Data.SemVer.Instances as Import ()
|
||||
import Control.Monad.Trans.Random.Instances as Import ()
|
||||
import Data.Jobsys.Instances as Import ()
|
||||
|
||||
import Crypto.Hash as Import (Digest, SHA3_256, SHA3_512)
|
||||
import Crypto.Random as Import (ChaChaDRG, Seed)
|
||||
@ -262,9 +263,10 @@ import Data.MultiSet as Import (MultiSet)
|
||||
|
||||
import Data.MonoTraversable.Keys as Import
|
||||
|
||||
|
||||
import Control.Monad.Trans.RWS (RWST)
|
||||
|
||||
import Data.Occurrence as Import (Occurrence)
|
||||
|
||||
|
||||
type MForm m = RWST (Maybe (Env, FileEnv), HandlerSite m, [Lang]) Enctype Ints m
|
||||
|
||||
|
||||
17
src/JobSystem.hs
Normal file
17
src/JobSystem.hs
Normal file
@ -0,0 +1,17 @@
|
||||
-- SPDX-FileCopyrightText: 2023 Sarah Vaupel <sarah.vaupel@uniworx.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
module JobSystem
|
||||
(
|
||||
) where
|
||||
|
||||
-- import Jobsys.JobSystem
|
||||
|
||||
|
||||
-- instance JobSchedulerWorld _world where
|
||||
-- type Priorities _world = Int
|
||||
-- type JobId _world = ()
|
||||
-- type Ressource _world = ()
|
||||
-- type Version _world = ()
|
||||
-- type WorkerId _world = ()
|
||||
@ -31,3 +31,4 @@ import Model.Types.Lms as Types
|
||||
import Model.Types.Avs as Types
|
||||
import Model.Types.Communication as Types
|
||||
import Model.Types.SystemMessage as Types
|
||||
import Model.Types.Jobsystem as Types
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
-- SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <sarah.vaupel@ifi.lmu.de>,Sarah Vaupel <vaupel.sarah@campus.lmu.de>,Steffen Jost <jost@tcs.ifi.lmu.de>
|
||||
-- SPDX-FileCopyrightText: 2022-2023 Sarah Vaupel <sarah.vaupel@uniworx.de>, Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <sarah.vaupel@ifi.lmu.de>,Sarah Vaupel <vaupel.sarah@campus.lmu.de>,Steffen Jost <jost@tcs.ifi.lmu.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@ -16,6 +16,8 @@ import Import.NoModel
|
||||
|
||||
import qualified Yesod.Auth.Util.PasswordStore as PWStore
|
||||
|
||||
import qualified Data.SemVer as SemVer
|
||||
|
||||
|
||||
type Count = Sum Integer
|
||||
type Points = Centi
|
||||
@ -67,3 +69,5 @@ type SessionFileReference = Digest SHA3_256
|
||||
|
||||
type QualificationName = CI Text
|
||||
type QualificationShorthand = CI Text
|
||||
|
||||
type AppVersion = SemVer.Version
|
||||
|
||||
62
src/Model/Types/Jobsystem.hs
Normal file
62
src/Model/Types/Jobsystem.hs
Normal file
@ -0,0 +1,62 @@
|
||||
module Model.Types.Jobsystem
|
||||
( JobOccurrence(..)
|
||||
, JobPrio(..)
|
||||
, JobRessource(..), JobRessources(..)
|
||||
, module Jobsys.Basics
|
||||
) where
|
||||
|
||||
import Import.NoModel
|
||||
|
||||
import Jobsys.Basics (TimeRelative, JobStatus)
|
||||
|
||||
import Model.Types.TH.PathPiece
|
||||
|
||||
|
||||
newtype JobOccurrence = JobOccurrence
|
||||
{ jobOccurrence :: Occurrence UTCTime () -- latter is specialtime; not used yet
|
||||
}
|
||||
deriving (Eq, Ord, Read, Show, Generic)
|
||||
deriving anyclass (NFData)
|
||||
|
||||
deriveJSON defaultOptions
|
||||
{ tagSingleConstructors = False
|
||||
, unwrapUnaryRecords = True
|
||||
} ''JobOccurrence
|
||||
derivePersistFieldJSON ''JobOccurrence
|
||||
|
||||
|
||||
-- | Priorities of jobs to be executed. Note that Top < ... < Least must hold, so be careful with constructor order!
|
||||
data JobPrio
|
||||
= JobPrioTop
|
||||
| JobPrioHigh
|
||||
| JobPrioMedium
|
||||
| JobPrioLow
|
||||
| JobPrioLeast
|
||||
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic)
|
||||
deriving anyclass (Universe, Finite, NFData)
|
||||
|
||||
nullaryPathPiece ''JobPrio $ camelToPathPiece' 2
|
||||
pathPieceJSON ''JobPrio
|
||||
derivePersistFieldPathPiece ''JobPrio
|
||||
|
||||
|
||||
data JobRessource
|
||||
= JobResCPU
|
||||
| JobResMemory
|
||||
| JobResPrinter
|
||||
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic)
|
||||
deriving anyclass (Universe, Finite, NFData)
|
||||
|
||||
nullaryPathPiece ''JobRessource $ camelToPathPiece' 2
|
||||
pathPieceJSON ''JobRessource
|
||||
pathPieceJSONKey ''JobRessource
|
||||
|
||||
newtype JobRessources = JobRessources { jobRessources :: Map JobRessource Double }
|
||||
deriving (Eq, Ord, Read, Show, Generic)
|
||||
deriving anyclass (NFData)
|
||||
|
||||
deriveJSON defaultOptions
|
||||
{ tagSingleConstructors = False
|
||||
, unwrapUnaryRecords = True
|
||||
} ''JobRessources
|
||||
derivePersistFieldJSON ''JobRessources
|
||||
@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <sarah.vaupel@ifi.lmu.de>
|
||||
# SPDX-FileCopyrightText: 2022-2023 Sarah Vaupel <sarah.vaupel@uniworx.de>, Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <sarah.vaupel@ifi.lmu.de>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@ -82,5 +82,10 @@ extra-deps:
|
||||
|
||||
- servant-quickcheck-0.0.10.0@sha256:1d5849d703c2487752f8fc7391cca7c998ee24f54ca0bb72d238bf99b64ac667,3755
|
||||
|
||||
- git: https://gitlab.uniworx.de/barth/jobsys.git
|
||||
commit: 9108b895c2fcb4c12e1caaea8e546aa52578c11f
|
||||
subdirs:
|
||||
- jobsys
|
||||
|
||||
resolver: lts-18.0
|
||||
allow-newer: true
|
||||
|
||||
18
stack.yaml
18
stack.yaml
@ -120,5 +120,23 @@ extra-deps:
|
||||
- saltine-0.2.0.0@sha256:2232a285ef326b0942bbcbfa6f465933a020f27e19552213e688fe371d66dddd,5198
|
||||
- persistent-postgresql-2.13.0.3@sha256:43384bf8ed9c931c673e6abb763c8811113d1b7004095faaae1eb42e2cd52d8f,3601
|
||||
|
||||
- git: https://gitlab.uniworx.de/barth/jobsys.git
|
||||
commit: d752d5fa85ed0ded823e2806e61ca8f13107f87d
|
||||
subdirs:
|
||||
- jobsys
|
||||
- git: https://gitlab.uniworx.de/barth/occurrence.git
|
||||
commit: c6f6bc486bc127937736cfb6acfe8be22900a2d4
|
||||
subdirs:
|
||||
- occurrence
|
||||
- git: https://gitlab.uniworx.de/barth/segmented.git
|
||||
commit: 08a421ba8ff119f24dcd8282a6011cd3f76c4117
|
||||
subdirs:
|
||||
- segmented
|
||||
|
||||
- git: https://github.com/savau/haskell-nf.git
|
||||
commit: 7f1a8715f41778a67655745ce43334328888020b
|
||||
subdirs:
|
||||
- haskell-nf
|
||||
|
||||
resolver: lts-18.0
|
||||
allow-newer: true
|
||||
|
||||
592
stack.yaml.lock
592
stack.yaml.lock
@ -5,539 +5,591 @@
|
||||
|
||||
packages:
|
||||
- completed:
|
||||
commit: 22fc3bb14841d8d50997aa47f1be3852e666f787
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/encoding.git
|
||||
name: encoding
|
||||
version: 0.8.2
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/encoding.git
|
||||
pantry-tree:
|
||||
size: 5723
|
||||
sha256: fec12328951021bb4d9326ae0b35f0c459e65f28442366efd4366cd1e18abe19
|
||||
commit: 22fc3bb14841d8d50997aa47f1be3852e666f787
|
||||
size: 5723
|
||||
version: 0.8.2
|
||||
original:
|
||||
commit: 22fc3bb14841d8d50997aa47f1be3852e666f787
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/encoding.git
|
||||
commit: 22fc3bb14841d8d50997aa47f1be3852e666f787
|
||||
- completed:
|
||||
commit: b7071df50bad3a251a544b984e4bf98fa09b8fae
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/memcached-binary.git
|
||||
name: memcached-binary
|
||||
version: 0.2.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/memcached-binary.git
|
||||
pantry-tree:
|
||||
size: 1277
|
||||
sha256: 0da0539b7b9a56d03a116dcd666bc1bbbef085659910420849484d1418aa0857
|
||||
commit: b7071df50bad3a251a544b984e4bf98fa09b8fae
|
||||
size: 1277
|
||||
version: 0.2.0
|
||||
original:
|
||||
commit: b7071df50bad3a251a544b984e4bf98fa09b8fae
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/memcached-binary.git
|
||||
commit: b7071df50bad3a251a544b984e4bf98fa09b8fae
|
||||
- completed:
|
||||
commit: cbea6159c2975d42f948525e03e12fc390da53c5
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/conduit-resumablesink.git
|
||||
name: conduit-resumablesink
|
||||
version: '0.3'
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/conduit-resumablesink.git
|
||||
pantry-tree:
|
||||
size: 394
|
||||
sha256: 0cccf4684bbd84f81d2d3d53dd81c46cb103b5322f1d8e89e9b222211281e1b7
|
||||
commit: cbea6159c2975d42f948525e03e12fc390da53c5
|
||||
size: 394
|
||||
version: '0.3'
|
||||
original:
|
||||
commit: cbea6159c2975d42f948525e03e12fc390da53c5
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/conduit-resumablesink.git
|
||||
commit: cbea6159c2975d42f948525e03e12fc390da53c5
|
||||
- completed:
|
||||
commit: 5aa1f3b009253b02c4822005ac59ee208a10a347
|
||||
git: https://github.com/jtdaugherty/HaskellNet.git
|
||||
name: HaskellNet
|
||||
version: 0.5.1
|
||||
git: https://github.com/jtdaugherty/HaskellNet.git
|
||||
pantry-tree:
|
||||
size: 4011
|
||||
sha256: 921b437ef18ccb04f889301c407263d6b5b72c5864803a000b1e61328988ce70
|
||||
commit: 5aa1f3b009253b02c4822005ac59ee208a10a347
|
||||
size: 4011
|
||||
version: 0.5.1
|
||||
original:
|
||||
commit: 5aa1f3b009253b02c4822005ac59ee208a10a347
|
||||
git: https://github.com/jtdaugherty/HaskellNet.git
|
||||
commit: 5aa1f3b009253b02c4822005ac59ee208a10a347
|
||||
- completed:
|
||||
commit: 40393c938111ac78232dc2c7eec5edb4a22d03e8
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/HaskellNet-SSL.git
|
||||
name: HaskellNet-SSL
|
||||
version: 0.3.4.1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/HaskellNet-SSL.git
|
||||
pantry-tree:
|
||||
size: 841
|
||||
sha256: 95dcec22fdb8af986e59f0f60aa76d4a48f34a546dca799bd571e1d183f773e0
|
||||
commit: 40393c938111ac78232dc2c7eec5edb4a22d03e8
|
||||
size: 841
|
||||
version: 0.3.4.1
|
||||
original:
|
||||
commit: 40393c938111ac78232dc2c7eec5edb4a22d03e8
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/HaskellNet-SSL.git
|
||||
commit: 40393c938111ac78232dc2c7eec5edb4a22d03e8
|
||||
- completed:
|
||||
commit: 01afaf599ba6f8a9d804c269e91d3190b249d3f0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/ldap-client.git
|
||||
name: ldap-client
|
||||
version: 0.4.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/ldap-client.git
|
||||
pantry-tree:
|
||||
size: 6176
|
||||
sha256: 3fa8f102427b437b2baaec15cf884e88b47a1621b1c3fd4d8919f0263fde8656
|
||||
commit: 01afaf599ba6f8a9d804c269e91d3190b249d3f0
|
||||
size: 6176
|
||||
version: 0.4.0
|
||||
original:
|
||||
commit: 01afaf599ba6f8a9d804c269e91d3190b249d3f0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/ldap-client.git
|
||||
commit: 01afaf599ba6f8a9d804c269e91d3190b249d3f0
|
||||
- completed:
|
||||
subdir: serversession
|
||||
commit: fda3a000f9039e35e76e28f8e88c4942fac9fd69
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
name: serversession
|
||||
version: 1.0.2
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
pantry-tree:
|
||||
size: 545
|
||||
sha256: 83ac78a987399db3da62f84bbd335fead11aadebd57251d0688127fca984db23
|
||||
commit: fda3a000f9039e35e76e28f8e88c4942fac9fd69
|
||||
original:
|
||||
size: 545
|
||||
subdir: serversession
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
version: 1.0.2
|
||||
original:
|
||||
commit: fda3a000f9039e35e76e28f8e88c4942fac9fd69
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
subdir: serversession
|
||||
- completed:
|
||||
subdir: serversession-backend-acid-state
|
||||
commit: fda3a000f9039e35e76e28f8e88c4942fac9fd69
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
name: serversession-backend-acid-state
|
||||
version: 1.0.4
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
pantry-tree:
|
||||
size: 544
|
||||
sha256: 4804260c6245c12e1728c78dd33bf16e95b7f2b69b38b6900a4e65b1ef3e04b7
|
||||
commit: fda3a000f9039e35e76e28f8e88c4942fac9fd69
|
||||
original:
|
||||
size: 544
|
||||
subdir: serversession-backend-acid-state
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
version: 1.0.4
|
||||
original:
|
||||
commit: fda3a000f9039e35e76e28f8e88c4942fac9fd69
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/serversession.git
|
||||
subdir: serversession-backend-acid-state
|
||||
- completed:
|
||||
commit: dc928c3a456074b8777603bea20e81937321777f
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/xss-sanitize.git
|
||||
name: xss-sanitize
|
||||
version: 0.3.6
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/xss-sanitize.git
|
||||
pantry-tree:
|
||||
size: 750
|
||||
sha256: f567a1c834448daaa164f2029fad164e6c8df2d4c92b51f811bae19cc0c95975
|
||||
commit: dc928c3a456074b8777603bea20e81937321777f
|
||||
size: 750
|
||||
version: 0.3.6
|
||||
original:
|
||||
commit: dc928c3a456074b8777603bea20e81937321777f
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/xss-sanitize.git
|
||||
commit: dc928c3a456074b8777603bea20e81937321777f
|
||||
- completed:
|
||||
subdir: colonnade
|
||||
commit: f8170266ab25b533576e96715bedffc5aa4f19fa
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/colonnade.git
|
||||
name: colonnade
|
||||
version: 1.2.0.2
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/colonnade.git
|
||||
pantry-tree:
|
||||
size: 481
|
||||
sha256: 392393652cc0f354d351482557b9385c8e6122e706359b030373656565f2e045
|
||||
commit: f8170266ab25b533576e96715bedffc5aa4f19fa
|
||||
original:
|
||||
size: 481
|
||||
subdir: colonnade
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/colonnade.git
|
||||
version: 1.2.0.2
|
||||
original:
|
||||
commit: f8170266ab25b533576e96715bedffc5aa4f19fa
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/colonnade.git
|
||||
subdir: colonnade
|
||||
- completed:
|
||||
commit: 42103ab247057c04c8ce7a83d9d4c160713a3df1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/minio-hs.git
|
||||
name: minio-hs
|
||||
version: 1.5.2
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/minio-hs.git
|
||||
pantry-tree:
|
||||
size: 4560
|
||||
sha256: c5faff15fa22a7a63f45cd903c9bd11ae03f422c26f24750f5c44cb4d0db70fc
|
||||
commit: 42103ab247057c04c8ce7a83d9d4c160713a3df1
|
||||
size: 4560
|
||||
version: 1.5.2
|
||||
original:
|
||||
commit: 42103ab247057c04c8ce7a83d9d4c160713a3df1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/minio-hs.git
|
||||
commit: 42103ab247057c04c8ce7a83d9d4c160713a3df1
|
||||
- completed:
|
||||
subdir: cryptoids-class
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
name: cryptoids-class
|
||||
version: 0.0.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
pantry-tree:
|
||||
size: 412
|
||||
sha256: 30466648d273ffb1d580b7961188d67a0bedb3703d6d5f8cca3c15a45295f203
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
original:
|
||||
size: 412
|
||||
subdir: cryptoids-class
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
- completed:
|
||||
subdir: cryptoids-types
|
||||
name: cryptoids-types
|
||||
version: 1.0.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
pantry-tree:
|
||||
size: 320
|
||||
sha256: 824ac5c55c2ad553bd401bb5a99731bbdccc828ecc5d71f174e9375c4e03c46e
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
original:
|
||||
subdir: cryptoids-types
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
- completed:
|
||||
subdir: cryptoids
|
||||
name: cryptoids
|
||||
version: 0.5.1.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
pantry-tree:
|
||||
size: 566
|
||||
sha256: b1f49dde76ff7e78b76e7f2f3b3f76c55e5e61555d1df5415ad3b6eb80dda2cb
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
original:
|
||||
subdir: cryptoids
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
- completed:
|
||||
subdir: filepath-crypto
|
||||
name: filepath-crypto
|
||||
version: 0.1.0.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
pantry-tree:
|
||||
size: 676
|
||||
sha256: 9c31a2ffb2b1c86f9ba34eb83529c7a5a7dc68a49f89813c9b553427474654d9
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
original:
|
||||
subdir: filepath-crypto
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
- completed:
|
||||
subdir: uuid-crypto
|
||||
name: uuid-crypto
|
||||
version: 1.4.0.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
pantry-tree:
|
||||
size: 417
|
||||
sha256: 852e59807df1f2cf4b5a3748c46fa149d15a78651c93addfe5fc31d2d94c47f4
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
original:
|
||||
subdir: uuid-crypto
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
- completed:
|
||||
subdir: gearhash
|
||||
name: gearhash
|
||||
version: 1.0.0
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
pantry-tree:
|
||||
size: 551
|
||||
sha256: 89c58554f6780bff2a2cab86e94d2f562eea34e8025a9925bfdc25b56c925d3e
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
original:
|
||||
subdir: gearhash
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
- completed:
|
||||
subdir: fastcdc
|
||||
name: fastcdc
|
||||
version: 0.0.0
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
original:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
subdir: cryptoids-class
|
||||
- completed:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
name: cryptoids-types
|
||||
pantry-tree:
|
||||
sha256: 824ac5c55c2ad553bd401bb5a99731bbdccc828ecc5d71f174e9375c4e03c46e
|
||||
size: 320
|
||||
subdir: cryptoids-types
|
||||
version: 1.0.0
|
||||
original:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
subdir: cryptoids-types
|
||||
- completed:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
name: cryptoids
|
||||
pantry-tree:
|
||||
sha256: b1f49dde76ff7e78b76e7f2f3b3f76c55e5e61555d1df5415ad3b6eb80dda2cb
|
||||
size: 566
|
||||
subdir: cryptoids
|
||||
version: 0.5.1.0
|
||||
original:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
subdir: cryptoids
|
||||
- completed:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
name: filepath-crypto
|
||||
pantry-tree:
|
||||
sha256: 9c31a2ffb2b1c86f9ba34eb83529c7a5a7dc68a49f89813c9b553427474654d9
|
||||
size: 676
|
||||
subdir: filepath-crypto
|
||||
version: 0.1.0.0
|
||||
original:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
subdir: filepath-crypto
|
||||
- completed:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
name: uuid-crypto
|
||||
pantry-tree:
|
||||
sha256: 852e59807df1f2cf4b5a3748c46fa149d15a78651c93addfe5fc31d2d94c47f4
|
||||
size: 417
|
||||
subdir: uuid-crypto
|
||||
version: 1.4.0.0
|
||||
original:
|
||||
commit: 130b0dcbf2b09ccdf387b50262f1efbbbf1819e3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptoids.git
|
||||
subdir: uuid-crypto
|
||||
- completed:
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
name: gearhash
|
||||
pantry-tree:
|
||||
sha256: 89c58554f6780bff2a2cab86e94d2f562eea34e8025a9925bfdc25b56c925d3e
|
||||
size: 551
|
||||
subdir: gearhash
|
||||
version: 1.0.0
|
||||
original:
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
subdir: gearhash
|
||||
- completed:
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
name: fastcdc
|
||||
pantry-tree:
|
||||
size: 292
|
||||
sha256: aa588b55c7c9c079e39569489a8089ec312f0538d02cf0e1fffe2f0e058566b8
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
original:
|
||||
size: 292
|
||||
subdir: fastcdc
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
version: 0.0.0
|
||||
original:
|
||||
commit: f216e3c0a1efa11a62fd4c9c2db38f7e2b7ac72d
|
||||
git: https://github.com/gkleen/FastCDC.git
|
||||
subdir: fastcdc
|
||||
- completed:
|
||||
commit: 843683d024f767de236f74d24a3348f69181a720
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/zip-stream.git
|
||||
name: zip-stream
|
||||
version: 0.2.0.1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/zip-stream.git
|
||||
pantry-tree:
|
||||
size: 812
|
||||
sha256: 0da8bc38d73034962d2e2d1a7586b6dee848a629319fce9cbbf578348c61118c
|
||||
commit: 843683d024f767de236f74d24a3348f69181a720
|
||||
size: 812
|
||||
version: 0.2.0.1
|
||||
original:
|
||||
commit: 843683d024f767de236f74d24a3348f69181a720
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/zip-stream.git
|
||||
commit: 843683d024f767de236f74d24a3348f69181a720
|
||||
- completed:
|
||||
subdir: yesod-core
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-core
|
||||
version: 1.6.20.2
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 5954
|
||||
sha256: 08c8da10b32c8d9f784238fd87232bf90b752e82f81ef2c52c62210f9aadda9a
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 5954
|
||||
subdir: yesod-core
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.20.2
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-core
|
||||
- completed:
|
||||
subdir: yesod-static
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-static
|
||||
version: 1.6.1.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 2949
|
||||
sha256: 32c1608243a5309005ce11e2aa379ac1d6f8c380c529785eb510770118f3da06
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 2949
|
||||
subdir: yesod-static
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.1.0
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-static
|
||||
- completed:
|
||||
subdir: yesod-persistent
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-persistent
|
||||
version: 1.6.0.7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 497
|
||||
sha256: 3778ef2964e1a3890afc22cc9124eacb40e64b62bed4983a85d3b99897f54c5c
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 497
|
||||
subdir: yesod-persistent
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.0.7
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-persistent
|
||||
- completed:
|
||||
subdir: yesod-newsfeed
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-newsfeed
|
||||
version: 1.7.0.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 488
|
||||
sha256: 53ebad62655863a657dcf749ffd3de46f6af90dd71f55bc4d50805ac48ddb099
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 488
|
||||
subdir: yesod-newsfeed
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.7.0.0
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-newsfeed
|
||||
- completed:
|
||||
subdir: yesod-form
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-form
|
||||
version: 1.7.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 1914
|
||||
sha256: 260b7f16a8e1d58da137eb91aeed3a11ccbe59ba3e614457a635b9dc3e71426f
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 1914
|
||||
subdir: yesod-form
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.7.0
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-form
|
||||
- completed:
|
||||
subdir: yesod-form-multi
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-form-multi
|
||||
version: 1.7.0.2
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 328
|
||||
sha256: b21fc50db43733dfe6e285345856610ba4feb83329e9cf953bf8047ba18ecbd6
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 328
|
||||
subdir: yesod-form-multi
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.7.0.2
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-form-multi
|
||||
- completed:
|
||||
subdir: yesod-auth
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-auth
|
||||
version: 1.6.10.3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 1212
|
||||
sha256: d335b940a207f8155f421b7146746a72d20db6ad54412154f2c829a59bf21e08
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 1212
|
||||
subdir: yesod-auth
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.10.3
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-auth
|
||||
- completed:
|
||||
subdir: yesod-auth-oauth
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-auth-oauth
|
||||
version: 1.6.0.3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 321
|
||||
sha256: 39d2f7d5d1abb3a2953858c5f23880e60ecfcdad0549ddc2570204f9c47649f4
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 321
|
||||
subdir: yesod-auth-oauth
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.0.3
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-auth-oauth
|
||||
- completed:
|
||||
subdir: yesod-sitemap
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-sitemap
|
||||
version: 1.6.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 314
|
||||
sha256: 971f48af7011ff7816872d067e5de9cadafdd371bdf209170b77df36001abd27
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 314
|
||||
subdir: yesod-sitemap
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.0
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-sitemap
|
||||
- completed:
|
||||
subdir: yesod-test
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-test
|
||||
version: 1.6.12
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 563
|
||||
sha256: 3d5022e8e3f8e77abcf075c42cf49efaa26f4951159bbb5ab50b69fdfeacb7c1
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 563
|
||||
subdir: yesod-test
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.12
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-test
|
||||
- completed:
|
||||
subdir: yesod-bin
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-bin
|
||||
version: 1.6.1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 1295
|
||||
sha256: 422d7816965b79826c6c24582d76dadbacd1bfb3e9a8f31208867cd788f2a5b8
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 1295
|
||||
subdir: yesod-bin
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.1
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-bin
|
||||
- completed:
|
||||
subdir: yesod
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod
|
||||
version: 1.6.1.1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 666
|
||||
sha256: cb53ef3f2036185d2b4752d6fbc5d78470b4504e646e7eb4dd2397f2599daf42
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 666
|
||||
subdir: yesod
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.1.1
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod
|
||||
- completed:
|
||||
subdir: yesod-eventsource
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-eventsource
|
||||
version: 1.6.0.1
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 324
|
||||
sha256: 6d393201852cd024e377159ba836398e24d191563e08165430113d3c1384aff2
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 324
|
||||
subdir: yesod-eventsource
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 1.6.0.1
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-eventsource
|
||||
- completed:
|
||||
subdir: yesod-websockets
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
name: yesod-websockets
|
||||
version: 0.3.0.3
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
pantry-tree:
|
||||
size: 485
|
||||
sha256: 02df6117e9b74a77879ea750130ba2d8ad8d3c99e14ca678320cb578984301e5
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
original:
|
||||
size: 485
|
||||
subdir: yesod-websockets
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
version: 0.3.0.3
|
||||
original:
|
||||
commit: aa671eb41fdad360f2f7cb844f8de03479efe3f7
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/yesod.git
|
||||
subdir: yesod-websockets
|
||||
- completed:
|
||||
commit: 71a630edaf5f22c464e24fac8d9d310f4055ea1f
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptonite.git
|
||||
name: cryptonite
|
||||
version: '0.29'
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptonite.git
|
||||
pantry-tree:
|
||||
size: 25056
|
||||
sha256: 19e49259fa5e3c257495d72b3c7c3c49537aeafd508c780c2430ddca2ef71a91
|
||||
commit: 71a630edaf5f22c464e24fac8d9d310f4055ea1f
|
||||
size: 25056
|
||||
version: '0.29'
|
||||
original:
|
||||
commit: 71a630edaf5f22c464e24fac8d9d310f4055ea1f
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/cryptonite.git
|
||||
commit: 71a630edaf5f22c464e24fac8d9d310f4055ea1f
|
||||
- completed:
|
||||
commit: e18dd125c5ea26fa4e88bed079b61d8c1365ee37
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/esqueleto.git
|
||||
name: esqueleto
|
||||
version: 3.5.4.0
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/esqueleto.git
|
||||
pantry-tree:
|
||||
size: 5633
|
||||
sha256: 8a93dc98eb4529ff64aa5bcdaa3c00dcdf0378033ad675864e2b0fc3d869d947
|
||||
commit: e18dd125c5ea26fa4e88bed079b61d8c1365ee37
|
||||
size: 5633
|
||||
version: 3.5.4.0
|
||||
original:
|
||||
commit: e18dd125c5ea26fa4e88bed079b61d8c1365ee37
|
||||
git: https://gitlab.ifi.lmu.de/uni2work/haskell/esqueleto.git
|
||||
commit: e18dd125c5ea26fa4e88bed079b61d8c1365ee37
|
||||
- completed:
|
||||
hackage: classy-prelude-yesod-1.5.0@sha256:8f7e183bdfd6d2ea9674284c4f285294ab086aff60d9be4e5d7d2f3c1a2b05b7,1330
|
||||
pantry-tree:
|
||||
size: 330
|
||||
sha256: ae84d4cc0e1daf985db6cdcf2ac92319531b8e60f547183cc46480d00aafbe20
|
||||
size: 330
|
||||
original:
|
||||
hackage: classy-prelude-yesod-1.5.0@sha256:8f7e183bdfd6d2ea9674284c4f285294ab086aff60d9be4e5d7d2f3c1a2b05b7,1330
|
||||
- completed:
|
||||
hackage: acid-state-0.16.0.1@sha256:d43f6ee0b23338758156c500290c4405d769abefeb98e9bc112780dae09ece6f,6207
|
||||
pantry-tree:
|
||||
size: 13678
|
||||
sha256: d57bcb2ad5e01fe7424abbcf9e58cf943027b5c4a8496d93625c57b6e1272274
|
||||
size: 13678
|
||||
original:
|
||||
hackage: acid-state-0.16.0.1@sha256:d43f6ee0b23338758156c500290c4405d769abefeb98e9bc112780dae09ece6f,6207
|
||||
- completed:
|
||||
hackage: normaldistribution-1.1.0.3@sha256:2615b784c4112cbf6ffa0e2b55b76790290a9b9dff18a05d8c89aa374b213477,2160
|
||||
pantry-tree:
|
||||
size: 269
|
||||
sha256: 856818862d12df8b030fa9cfef2c4ffa604d06f0eb057498db245dfffcd60e3c
|
||||
size: 269
|
||||
original:
|
||||
hackage: normaldistribution-1.1.0.3@sha256:2615b784c4112cbf6ffa0e2b55b76790290a9b9dff18a05d8c89aa374b213477,2160
|
||||
- completed:
|
||||
hackage: pkcs7-1.0.0.1@sha256:b26e5181868667abbde3ce17f9a61cf705eb695da073cdf82e1f9dfd6cc11176,3594
|
||||
pantry-tree:
|
||||
size: 316
|
||||
sha256: ab3c2d2880179a945ab3122c51d1657ab4a7a628292b646e047cd32b0751a80c
|
||||
size: 316
|
||||
original:
|
||||
hackage: pkcs7-1.0.0.1@sha256:b26e5181868667abbde3ce17f9a61cf705eb695da073cdf82e1f9dfd6cc11176,3594
|
||||
- completed:
|
||||
hackage: system-locale-0.3.0.0@sha256:13b3982403d8ac8cc6138e68802be8d8e7cf7ebc4cbc7e47e99e3c0dd1be066a,1529
|
||||
pantry-tree:
|
||||
size: 446
|
||||
sha256: 3b22af3e6315835bf614a0d30381ec7e47aca147b59ba601aeaa26f1fdc19373
|
||||
size: 446
|
||||
original:
|
||||
hackage: system-locale-0.3.0.0@sha256:13b3982403d8ac8cc6138e68802be8d8e7cf7ebc4cbc7e47e99e3c0dd1be066a,1529
|
||||
- completed:
|
||||
hackage: token-bucket-0.1.0.1@sha256:d8e85f2fc373939975e7ace7907baee177531ab6e43df94e330a2357e64a2d11,1899
|
||||
pantry-tree:
|
||||
size: 399
|
||||
sha256: b0b4a08ea1bf76bd108310f64d7f80e0f30b61ddc3d71f6cab7bdce329d2c1fa
|
||||
size: 399
|
||||
original:
|
||||
hackage: token-bucket-0.1.0.1@sha256:d8e85f2fc373939975e7ace7907baee177531ab6e43df94e330a2357e64a2d11,1899
|
||||
- completed:
|
||||
hackage: tz-0.1.3.5@sha256:fb17ca50a7d943e511c0ca70342dc83f66aa2532de2745632f1f5f9b1ad783c4,5086
|
||||
pantry-tree:
|
||||
size: 1179
|
||||
sha256: 6482698ea1b1a93bd684fca35836b35e8cdf53fe51b0fa6b215afa7da1f983a6
|
||||
size: 1179
|
||||
original:
|
||||
hackage: tz-0.1.3.5@sha256:fb17ca50a7d943e511c0ca70342dc83f66aa2532de2745632f1f5f9b1ad783c4,5086
|
||||
- completed:
|
||||
hackage: unidecode-0.1.0.4@sha256:99581ee1ea334a4596a09ae3642e007808457c66893b587e965b31f15cbf8c4d,1144
|
||||
pantry-tree:
|
||||
size: 492
|
||||
sha256: 4959068a0caf410dd4b8046f0b0138e3cf6471abb0cc865c9993db3b2930d283
|
||||
size: 492
|
||||
original:
|
||||
hackage: unidecode-0.1.0.4@sha256:99581ee1ea334a4596a09ae3642e007808457c66893b587e965b31f15cbf8c4d,1144
|
||||
- completed:
|
||||
hackage: hlint-test-0.1.0.0@sha256:e427c0593433205fc629fb05b74c6b1deb1de72d1571f26142de008f0d5ee7a9,1814
|
||||
pantry-tree:
|
||||
size: 442
|
||||
sha256: 347eac6c8a3c02fc0101444d6526b57b3c27785809149b12f90d8db57c721fea
|
||||
size: 442
|
||||
original:
|
||||
hackage: hlint-test-0.1.0.0@sha256:e427c0593433205fc629fb05b74c6b1deb1de72d1571f26142de008f0d5ee7a9,1814
|
||||
- completed:
|
||||
hackage: servant-quickcheck-0.0.10.0@sha256:1d5849d703c2487752f8fc7391cca7c998ee24f54ca0bb72d238bf99b64ac667,3755
|
||||
pantry-tree:
|
||||
size: 976
|
||||
sha256: 37dab60111c71d011fc4964e9a8b4b05ac544bc0ba8155e895518680066c2adb
|
||||
size: 976
|
||||
original:
|
||||
hackage: servant-quickcheck-0.0.10.0@sha256:1d5849d703c2487752f8fc7391cca7c998ee24f54ca0bb72d238bf99b64ac667,3755
|
||||
- completed:
|
||||
hackage: servant-flatten-0.2@sha256:276896f7c5cdec5b8f8493f6205fded0cc602d050b58fdb09a6d7c85c3bb0837,1234
|
||||
pantry-tree:
|
||||
size: 325
|
||||
sha256: 04f12c7bef2c3f9a25d94eb9489752ed498db8e243069fe95838dbb51df1dcb3
|
||||
size: 325
|
||||
original:
|
||||
hackage: servant-flatten-0.2@sha256:276896f7c5cdec5b8f8493f6205fded0cc602d050b58fdb09a6d7c85c3bb0837,1234
|
||||
- completed:
|
||||
hackage: network-arbitrary-0.7.0.0@sha256:0cd381c80ae20c16048936edcdb018b1d9fbe2b6ac8c44e908df403a5c6d7cd5,2520
|
||||
pantry-tree:
|
||||
size: 912
|
||||
sha256: a40b62eddfb12cfec753a10836a4ef5fe8ec94d7478e6957e1fe5729017928fb
|
||||
size: 912
|
||||
original:
|
||||
hackage: network-arbitrary-0.7.0.0@sha256:0cd381c80ae20c16048936edcdb018b1d9fbe2b6ac8c44e908df403a5c6d7cd5,2520
|
||||
- completed:
|
||||
hackage: saltine-0.2.0.0@sha256:2232a285ef326b0942bbcbfa6f465933a020f27e19552213e688fe371d66dddd,5198
|
||||
pantry-tree:
|
||||
size: 5016
|
||||
sha256: fdf4397f4b1ed7975f38d0b463eb6c9d206d0c85d157c41c19983e80b2005763
|
||||
size: 5016
|
||||
original:
|
||||
hackage: saltine-0.2.0.0@sha256:2232a285ef326b0942bbcbfa6f465933a020f27e19552213e688fe371d66dddd,5198
|
||||
- completed:
|
||||
hackage: persistent-postgresql-2.13.0.3@sha256:43384bf8ed9c931c673e6abb763c8811113d1b7004095faaae1eb42e2cd52d8f,3601
|
||||
pantry-tree:
|
||||
size: 1059
|
||||
sha256: 2d647a17372e42bc54331cfb35f5a55a71e6854dac8299b7ed6a1c69ae12734d
|
||||
size: 1059
|
||||
original:
|
||||
hackage: persistent-postgresql-2.13.0.3@sha256:43384bf8ed9c931c673e6abb763c8811113d1b7004095faaae1eb42e2cd52d8f,3601
|
||||
- completed:
|
||||
commit: d752d5fa85ed0ded823e2806e61ca8f13107f87d
|
||||
git: https://gitlab.uniworx.de/barth/jobsys.git
|
||||
name: jobsys
|
||||
pantry-tree:
|
||||
sha256: 33eb8afadd65d44bc57448175f726e5535f0d61ad37aa404444931e4b5694303
|
||||
size: 600
|
||||
subdir: jobsys
|
||||
version: 0.1.4
|
||||
original:
|
||||
commit: d752d5fa85ed0ded823e2806e61ca8f13107f87d
|
||||
git: https://gitlab.uniworx.de/barth/jobsys.git
|
||||
subdir: jobsys
|
||||
- completed:
|
||||
commit: c6f6bc486bc127937736cfb6acfe8be22900a2d4
|
||||
git: https://gitlab.uniworx.de/barth/occurrence.git
|
||||
name: occurrence
|
||||
pantry-tree:
|
||||
sha256: 421846b9044969eca1f29bbafaf38c39cc879396a3a0e396197ba5632ab8d6ab
|
||||
size: 360
|
||||
subdir: occurrence
|
||||
version: 0.2.0
|
||||
original:
|
||||
commit: c6f6bc486bc127937736cfb6acfe8be22900a2d4
|
||||
git: https://gitlab.uniworx.de/barth/occurrence.git
|
||||
subdir: occurrence
|
||||
- completed:
|
||||
commit: 08a421ba8ff119f24dcd8282a6011cd3f76c4117
|
||||
git: https://gitlab.uniworx.de/barth/segmented.git
|
||||
name: segmented
|
||||
pantry-tree:
|
||||
sha256: 8d76b7b5bef18beb9cdb3a4e623f6579a6e99ef203a83d545abbbccc9439c430
|
||||
size: 236
|
||||
subdir: segmented
|
||||
version: 0.1.0
|
||||
original:
|
||||
commit: 08a421ba8ff119f24dcd8282a6011cd3f76c4117
|
||||
git: https://gitlab.uniworx.de/barth/segmented.git
|
||||
subdir: segmented
|
||||
- completed:
|
||||
commit: 7f1a8715f41778a67655745ce43334328888020b
|
||||
git: https://github.com/savau/haskell-nf.git
|
||||
name: haskell-nf
|
||||
pantry-tree:
|
||||
sha256: 01808a6584d7310d1df4ba90c728d10b35646ffcb711ab6f12b27ed9fbbb311f
|
||||
size: 314
|
||||
subdir: haskell-nf
|
||||
version: 0.3.1
|
||||
original:
|
||||
commit: 7f1a8715f41778a67655745ce43334328888020b
|
||||
git: https://github.com/savau/haskell-nf.git
|
||||
subdir: haskell-nf
|
||||
snapshots:
|
||||
- completed:
|
||||
sha256: c632012da648385b9fa3c29f4e0afd56ead299f1c5528ee789058be410e883c0
|
||||
size: 585393
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/0.yaml
|
||||
sha256: c632012da648385b9fa3c29f4e0afd56ead299f1c5528ee789058be410e883c0
|
||||
original: lts-18.0
|
||||
|
||||
Reference in New Issue
Block a user