packages feed

faktory-1.2.0.0: faktory.cabal

cabal-version:   1.18
name:            faktory
version:         1.2.0.0
license:         MIT
license-file:    LICENSE
copyright:       2018 Freckle Education
maintainer:      engineering@freckle.com
author:          Freckle Engineering
homepage:        https://github.com/freckle/faktory_worker_haskell#readme
bug-reports:     https://github.com/freckle/faktory_worker_haskell/issues
synopsis:        Faktory Worker for Haskell
description:
    Haskell client and worker process for the Faktory background job server.
    .
    == Architecture overview
    .
    @
    |                        +--------------------+
    |                        |                    |
    |                        |     Faktory        |
    |                        |     Server         |
    |         +---------->>>>|                    +>>>>--------+
    |         |              |                    |            |
    |         |              |                    |            |
    |         |              +--------------------+            |
    | +-----------------+                            +-------------------+
    | |                 |                            |                   |
    | |    Client       |                            |     Worker        |
    | |    pushes       |                            |     pulls         |
    | |     jobs        |                            |      jobs         |
    | |                 |                            |                   |
    | |                 |                            |                   |
    | +-----------------+                            +-------------------+
    @
    .
    * `Client` - an API any process can use to push jobs to the Faktory server.
    * `Worker` - a process that pulls jobs from Faktory and executes them.
    * `Server` - the Faktory daemon which stores background jobs in queues to be processed by Workers.
    .
    This package contains only the `Client` and `Worker`.

category:        Network
build-type:      Simple
extra-doc-files:
    CHANGELOG.md
    README.lhs

source-repository head
    type:     git
    location: https://github.com/freckle/faktory_worker_haskell

library
    exposed-modules:
        Faktory.Client
        Faktory.Connection
        Faktory.Ent.Batch
        Faktory.Ent.Batch.Status
        Faktory.Ent.Tracking
        Faktory.Job
        Faktory.Job.Custom
        Faktory.JobFailure
        Faktory.JobOptions
        Faktory.JobState
        Faktory.Pool
        Faktory.Prelude
        Faktory.Producer
        Faktory.Protocol
        Faktory.Settings
        Faktory.Settings.Queue
        Faktory.Worker
        Network.Connection.Compat

    hs-source-dirs:     library
    other-modules:      Paths_faktory
    default-language:   Haskell2010
    default-extensions:
        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
        LambdaCase MultiParamTypeClasses NoImplicitPrelude
        NoMonomorphismRestriction OverloadedStrings RankNTypes
        RecordWildCards ScopedTypeVariables StandaloneDeriving
        TypeApplications TypeFamilies

    ghc-options:
        -Weverything -Wno-missing-exported-signatures
        -Wno-missed-specialisations -Wno-all-missed-specialisations
        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-missing-import-lists

    build-depends:
        aeson >=2.2.1.0,
        aeson-casing >=0.2.0.0,
        base >=4 && <5,
        bytestring >=0.11.5.3,
        crypton >=1.1,
        crypton-connection >=0.4.6,
        data-default >=0.7.1.1,
        errors >=2.3.0,
        megaparsec >=9.3.1,
        microlens >=0.4.13.1,
        mtl >=2.2.2,
        network >=3.1.4.0,
        ram >=0.22.0,
        random >=1.2.1.1,
        resource-pool >=0.3.0,
        safe-exceptions >=0.1.7.4,
        scanner >=0.3.1,
        semigroups >=0.19.1,
        text >=2.0.2,
        time >=1.12.2,
        unix >=2.7.3,
        unliftio >=0.2.25.0,
        unordered-containers >=0.2.19.1

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=9.8)
        ghc-options: -Wno-missing-role-annotations

executable faktory-example-consumer
    main-is:            Main.hs
    hs-source-dirs:     examples/consumer
    other-modules:      Paths_faktory
    default-language:   Haskell2010
    default-extensions:
        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
        LambdaCase MultiParamTypeClasses NoImplicitPrelude
        NoMonomorphismRestriction OverloadedStrings RankNTypes
        RecordWildCards ScopedTypeVariables StandaloneDeriving
        TypeApplications TypeFamilies

    ghc-options:
        -Weverything -Wno-missing-exported-signatures
        -Wno-missed-specialisations -Wno-all-missed-specialisations
        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-missing-import-lists

    build-depends:
        aeson >=2.2.1.0,
        base >=4 && <5,
        faktory,
        safe-exceptions >=0.1.7.4

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=9.8)
        ghc-options: -Wno-missing-role-annotations

executable faktory-example-producer
    main-is:            Main.hs
    hs-source-dirs:     examples/producer
    other-modules:      Paths_faktory
    default-language:   Haskell2010
    default-extensions:
        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
        LambdaCase MultiParamTypeClasses NoImplicitPrelude
        NoMonomorphismRestriction OverloadedStrings RankNTypes
        RecordWildCards ScopedTypeVariables StandaloneDeriving
        TypeApplications TypeFamilies

    ghc-options:
        -Weverything -Wno-missing-exported-signatures
        -Wno-missed-specialisations -Wno-all-missed-specialisations
        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-missing-import-lists

    build-depends:
        aeson >=2.2.1.0,
        base >=4 && <5,
        faktory,
        safe-exceptions >=0.1.7.4

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=9.8)
        ghc-options: -Wno-missing-role-annotations

test-suite hspec
    type:               exitcode-stdio-1.0
    main-is:            Spec.hs
    hs-source-dirs:     tests
    other-modules:
        Faktory.ConnectionSpec
        Faktory.Ent.BatchSpec
        Faktory.Ent.TrackingSpec
        Faktory.JobOptionsSpec
        Faktory.JobSpec
        Faktory.Test
        FaktorySpec
        Paths_faktory

    default-language:   Haskell2010
    default-extensions:
        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
        LambdaCase MultiParamTypeClasses NoImplicitPrelude
        NoMonomorphismRestriction OverloadedStrings RankNTypes
        RecordWildCards ScopedTypeVariables StandaloneDeriving
        TypeApplications TypeFamilies

    ghc-options:
        -Weverything -Wno-missing-exported-signatures
        -Wno-missed-specialisations -Wno-all-missed-specialisations
        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-missing-import-lists -rtsopts

    build-depends:
        aeson >=2.2.1.0,
        aeson-qq >=0.8.4,
        async >=2.2.5,
        base >=4 && <5,
        faktory,
        hspec >=2.10.10,
        mtl >=2.2.2,
        time >=1.12.2

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=9.8)
        ghc-options: -Wno-missing-role-annotations

test-suite readme
    type:               exitcode-stdio-1.0
    main-is:            README.lhs
    build-tool-depends: markdown-unlit:markdown-unlit
    hs-source-dirs:     ./
    other-modules:      Paths_faktory
    default-language:   Haskell2010
    default-extensions:
        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
        LambdaCase MultiParamTypeClasses NoImplicitPrelude
        NoMonomorphismRestriction OverloadedStrings RankNTypes
        RecordWildCards ScopedTypeVariables StandaloneDeriving
        TypeApplications TypeFamilies

    ghc-options:
        -Weverything -Wno-missing-exported-signatures
        -Wno-missed-specialisations -Wno-all-missed-specialisations
        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-missing-import-lists -pgmL
        markdown-unlit

    build-depends:
        aeson >=2.2.1.0,
        base >=4 && <5,
        faktory

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=9.8)
        ghc-options: -Wno-missing-role-annotations