Compare commits

...
This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.

26 Commits

Author SHA1 Message Date
378f38eece chore(jobsystem): rename priority to JobPrio to avoid name clashes 2023-12-06 01:57:05 +00:00
5fe9665150 chore: add SemVer instances 2023-12-06 01:51:47 +00:00
96622d3a2b chore(jobsystem): switch to UTCTime instead of LocalTime 2023-12-06 01:22:32 +00:00
d6662e3781 chore: bump jobsystem dependencies 2023-12-06 01:19:28 +00:00
8d87c50a4a chore(jobsystem): add TimeRelative and JobStatus instances 2023-12-03 02:00:12 +00:00
bb76399531 chore(stack): update jobsys 2023-12-03 01:53:18 +00:00
1b8458c83b chore(stack): update jobsys 2023-12-02 16:03:40 +00:00
9b3b5c1a99 chore(jobsystem): add more model fields 2023-12-02 16:03:29 +00:00
ab8bbb5495 chore(stack): update jobsys 2023-12-01 01:04:29 +00:00
0154239133 chore(stack): update jobsys 2023-11-30 02:35:31 +00:00
f50ff8ddca Merge branch 'fradrive/new-jobsystem' of gitlab.uniworx.de:fradrive/fradrive into fradrive/new-jobsystem 2023-11-30 00:23:13 +00:00
79d2c87405 Revert "chore(lms): split qualification-check-hour setting into two"
This reverts commit 8d5fb3c2b0
2023-11-30 00:23:05 +00:00
18c41afe0f Merge branch 'fradrive/new-jobsystem' of gitlab.uniworx.de:fradrive/fradrive into fradrive/new-jobsystem 2023-11-30 00:21:32 +00:00
ac1e272fb5 chore(jobsystem): add ressource model representation 2023-11-30 00:19:47 +00:00
c81bc149a9 chore(model): add model table for jobs 2023-11-30 00:19:09 +00:00
8d5fb3c2b0 chore(lms): split qualification-check-hour setting into two 2023-11-23 11:43:21 +01:00
1f7808ddf1 reimplement JobOccurrence as newtype; add JSON and PersistField instances 2023-11-21 21:37:11 +00:00
cacf2d291d bump jobsys dependencies 2023-11-21 21:31:30 +00:00
36a53d3dae chore(jobsystem): add dependencies, work on first model defs 2023-11-02 20:49:05 +00:00
44c1d98cc0 chore(stack): update jobsys 2023-10-30 21:52:49 +00:00
61a74804f4 chore: add jobsys as dependency in package.yaml 2023-10-30 01:34:10 +00:00
77e53812b4 chore(stack): update jobsys 2023-10-30 01:33:43 +00:00
cbd134b330 chore(jobsystem): import Jobsys 2023-10-30 01:32:59 +00:00
d6f936b270 chore: add jobsys dependency 2023-10-23 23:58:38 +00:00
31239454f5 fix: fix build 2023-10-23 23:36:12 +00:00
fc00b56b04 chore(jobsystem): add module stub for new jobsystem main entry point 2023-10-23 23:32:00 +00:00
14 changed files with 568 additions and 275 deletions

View File

@ -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
View 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

View File

@ -186,6 +186,10 @@ dependencies:
- haskell-src-meta
- either
- xlsx
- jobsys
- occurrence
- segmented
- haskell-nf
other-extensions:
- GeneralizedNewtypeDeriving
- IncoherentInstances

View File

@ -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

View 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

View File

@ -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

View File

@ -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
View 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 = ()

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View File

@ -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