packages feed

pgmq-effectful-0.4.0.0: pgmq-effectful.cabal

cabal-version:   3.4
name:            pgmq-effectful
version:         0.4.0.0
synopsis:        Effectful effects for PGMQ (PostgreSQL Message Queue)
description:
  Effectful effects and interpreters for pgmq-hs, a Haskell client
  library for PGMQ (PostgreSQL Message Queue). Includes OpenTelemetry
  instrumentation for tracing pgmq operations.

homepage:        https://github.com/shinzui/pgmq-hs
license:         MIT
license-file:    LICENSE
author:          Nadeem Bitar
maintainer:      Nadeem Bitar
category:        Database
build-type:      Simple
extra-doc-files: CHANGELOG.md

common warnings
  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
    -Wincomplete-record-updates -Wredundant-constraints
    -fhide-source-paths -Wmissing-export-lists -Wpartial-fields
    -Wmissing-deriving-strategies

library
  import:             warnings
  exposed-modules:
    Pgmq.Effectful
    Pgmq.Effectful.Effect
    Pgmq.Effectful.Interpreter
    Pgmq.Effectful.Interpreter.Traced
    Pgmq.Effectful.Telemetry
    Pgmq.Effectful.Traced

  default-extensions:
    DataKinds
    DuplicateRecordFields
    GADTs
    GeneralisedNewtypeDeriving
    ImportQualifiedPost
    LambdaCase
    NoFieldSelectors
    OverloadedRecordDot
    OverloadedStrings
    TypeFamilies
    TypeOperators

  build-depends:
    , aeson                                  >=2.0   && <2.3
    , base                                   >=4.18  && <5
    , bytestring                             >=0.11  && <0.13
    , case-insensitive                       >=1.2   && <1.3
    , effectful-core                         ^>=2.5  || ^>=2.6
    , hasql                                  ^>=1.10
    , hasql-pool                             ^>=1.4
    , hs-opentelemetry-api                   >=1.0   && <2
    , hs-opentelemetry-semantic-conventions  >=1.40  && <2
    , http-types                             >=0.12  && <0.13
    , pgmq-core                              >=0.4   && <0.5
    , pgmq-hasql                             >=0.4   && <0.5
    , text                                   >=2.0   && <2.2
    , unliftio                               >=0.2   && <0.3
    , unordered-containers                   >=0.2   && <0.3
    , vector                                 ^>=0.13

  hs-source-dirs:     src
  default-language:   GHC2024

test-suite pgmq-effectful-test
  import:             warnings
  default-language:   GHC2024
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            Main.hs
  ghc-options:        -threaded -rtsopts -with-rtsopts=-N
  other-modules:
    ClassificationSpec
    EphemeralDb
    PlainInterpreterSpec
    TracedInterpreterSpec

  default-extensions:
    DataKinds
    ImportQualifiedPost
    LambdaCase
    OverloadedRecordDot
    OverloadedStrings
    TypeOperators

  build-depends:
    , aeson                                  >=2.0   && <2.3
    , base                                   >=4.18  && <5
    , effectful-core                         ^>=2.5  || ^>=2.6
    , ephemeral-pg                           >=0.2.1
    , hasql                                  ^>=1.10
    , hasql-pool                             ^>=1.4
    , hs-opentelemetry-api                   >=1.0   && <2
    , hs-opentelemetry-exporter-in-memory    >=1.0   && <2
    , hs-opentelemetry-propagator-w3c        >=1.0   && <2
    , hs-opentelemetry-sdk                   >=1.0   && <2
    , hs-opentelemetry-semantic-conventions  >=1.40  && <2
    , pg-migrate
    , pgmq-core                              >=0.4   && <0.5
    , pgmq-effectful
    , pgmq-migration                         >=0.4   && <0.5
    , random                                 ^>=1.2
    , tasty                                  ^>=1.5
    , tasty-hunit                            ^>=0.10
    , text                                   >=2.0   && <2.2
    , unordered-containers                   >=0.2   && <0.3
    , vector                                 ^>=0.13