packages feed

yaya-test-0.3.1.3: yaya-test.cabal

cabal-version:  3.0

name:        yaya-test
version:     0.3.1.3
synopsis:    Test suites for `yaya`.
description: This package should not be depended on by anything.
author:      Greg Pfeil <greg@technomadic.org>
maintainer:  Greg Pfeil <greg@technomadic.org>
copyright:   2017 Greg Pfeil
homepage:    https://github.com/sellout/yaya#readme
bug-reports: https://github.com/sellout/yaya/issues
category:    Recursion
build-type:  Simple
license:     AGPL-3.0-or-later
license-files:
  LICENSE
tested-with:
  GHC == {
--  GHCup   Nixpkgs
    8.6.1,
    8.8.1,  8.8.4,
    8.10.1,
    9.0.1,
    9.2.1,
    9.4.1,  9.4.8,
    9.6.1,
            9.8.1
  }

source-repository head
  type: git
  location: https://github.com/sellout/yaya

-- This mimics the GHC2021 extension
-- (https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html?highlight=doandifthenelse#extension-GHC2021),
-- but supporting compilers back to GHC 7.10. If the oldest supported compiler
-- is GHC 9.2, then this stanza can be removed and `import: GHC2021` can be
-- replaced by `default-language: GHC2021`.
common GHC2021
  default-language: Haskell2010
  default-extensions:
    BangPatterns
    BinaryLiterals
    ConstraintKinds
    DeriveDataTypeable
    DeriveGeneric
    -- DeriveLift -- uncomment if the oldest supported version is GHC 8.10.1+
    DeriveTraversable
    DerivingStrategies
    DoAndIfThenElse
    EmptyCase
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    GADTSyntax
    GeneralizedNewtypeDeriving
    HexFloatLiterals
    -- ImportQualifiedPost -- uncomment if the oldest supported version is GHC 8.10.1+
    InstanceSigs
    LambdaCase
    MagicHash
    MonadComprehensions
    MonomorphismRestriction
    MultiParamTypeClasses
    NamedFieldPuns
    NamedWildCards
    NumericUnderscores
    PolyKinds
    PostfixOperators
    RankNTypes
    ScopedTypeVariables
    StandaloneDeriving
    -- StandaloneKindSignatures -- uncomment if the oldest supported version is GHC 8.10.1+
    TupleSections
    TypeApplications
    TypeOperators
    UnicodeSyntax
    NoExplicitNamespaces

common defaults
  import: GHC2021
  build-depends:
    base ^>= {4.12.0, 4.13.0, 4.14.0, 4.15.0, 4.16.0, 4.17.0, 4.18.0, 4.19.0},
  ghc-options:
    -Weverything
    -- Type inference good.
    -Wno-missing-local-signatures
    -- Warns even when `Unsafe` is explicit, not inferred. See
    -- https://gitlab.haskell.org/ghc/ghc/-/issues/16689
    -Wno-unsafe
    -- TODO: prune these warnings
    -Wno-all-missed-specialisations
    -fpackage-trust
    -trust base
  if impl(ghc < 8.8.1)
    ghc-options:
      -- This used to warn even when `Safe` was explicit.
      -Wno-safe
  if impl(ghc >= 8.10.1)
    ghc-options:
      -- If we didn’t allow inferred-safe imports, nothing would be `Safe`.
      -Wno-inferred-safe-imports
      -- We support GHC versions without qualified-post.
      -Wno-prepositive-qualified-module
      -- `-trust` triggers this warning when applied to transitive dependencies.
      -Wno-unused-packages
  if impl(ghc >= 9.2.1)
    ghc-options:
      -- We support GHC versions without kind signatures.
      -Wno-missing-kind-signatures
  if impl(ghc >= 9.8.1)
    ghc-options:
      -- We support GHC versions without kind signatures.
      -Wno-missing-poly-kind-signatures
      -- Inference good.
      -Wno-missing-role-annotations
  default-extensions:
    DefaultSignatures
    ExplicitNamespaces
    FunctionalDependencies
    LiberalTypeSynonyms
    -- replace with `LexicalNegation` if the oldest supported version is GHC 9.0.1+
    NegativeLiterals
    PackageImports
    ParallelListComp
    -- QualifiedDo - uncomment if the oldest supported version is GHC 9.0.1+
    RecursiveDo
    -- RequiredTypeArguments - uncomment if the oldest supported version is GHC 9.10.1+
    RoleAnnotations
    StrictData
    TemplateHaskellQuotes
    TransformListComp
    NoGeneralizedNewtypeDeriving
    NoImplicitPrelude
    NoMonomorphismRestriction
    NoPatternGuards
    NoTypeApplications

test-suite yaya-test
  import: defaults
  type: exitcode-stdio-1.0
  hs-source-dirs:
    test
  main-is: test.hs
  other-modules:
    Test.Fold
    Test.Fold.Common
    Test.Fold.Native
    Test.Retrofit
  build-depends:
    deriving-compat,
    hedgehog,
    yaya >= 0.5.0,
    yaya-hedgehog >= 0.2.0,
  ghc-options:
    -rtsopts
    -threaded
    -trust adjunctions
    -trust array
    -trust base-orphans
    -trust binary
    -trust bytestring
    -trust containers
    -trust distributive
    -trust exceptions
    -trust ghc-prim
    -trust profunctors
    -trust semigroupoids
    -trust stm
    -trust text
    -trust transformers-compat
    -with-rtsopts=-N
  if impl(ghc < 9.6)
    ghc-options:
      -trust foldable1-classes-compat