crem/package.yaml

118 lines
4.6 KiB
YAML

name: crm
version: 0.1.0.0
author: Marco Perone
maintainer: marco.perone@tweag.io
copyright: 2022 Tweag I/O
license: OtherLicense
when:
- condition: impl(ghc >= 9.2)
then:
# https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/control.html?highlight=ghc2021#extension-GHC2021
language: GHC2021
ghc-options:
# https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-kind-signatures
- -Wno-missing-kind-signatures
else:
default-extensions:
- BangPatterns
- BinaryLiterals
- ConstrainedClassMethods
- ConstraintKinds
- DeriveDataTypeable
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveLift
- DeriveTraversable
- DoAndIfThenElse
- EmptyCase
- EmptyDataDecls
- EmptyDataDeriving
- ExistentialQuantification
- ExplicitForAll
- FlexibleContexts
- FlexibleInstances
- ForeignFunctionInterface
- GADTSyntax
- GeneralisedNewtypeDeriving
- HexFloatLiterals
- ImplicitPrelude
- ImportQualifiedPost
- InstanceSigs
- KindSignatures
- MonomorphismRestriction
- MultiParamTypeClasses
- NamedFieldPuns
- NamedWildCards
- NumericUnderscores
- PatternGuards
- PolyKinds
- PostfixOperators
- RankNTypes
- RelaxedPolyRec
- ScopedTypeVariables
- StandaloneDeriving
- StandaloneKindSignatures
- StarIsType
- TraditionalRecordSyntax
- TupleSections
- TypeApplications
- TypeOperators
- TypeSynonymInstances
default-extensions:
- DerivingStrategies # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/deriving_strategies.html#extension-DerivingStrategies
- LambdaCase # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/lambda_case.html#extension-LambdaCase
- OverloadedStrings # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/overloaded_strings.html#extension-OverloadedStrings
- PackageImports # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/package_qualified_imports.html#extension-PackageImports
# Options inspired by: https://medium.com/mercury-bank/enable-all-the-warnings-a0517bc081c3
ghc-options:
# Enable every warning GHC supports
- -Weverything # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Weverything
# Turn every warning into an error
- -Werror # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Werror
# Turn off the warnings we don't care about.
- -Wno-safe # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wsafe
- -Wno-unsafe # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wunsafe
- -Wno-missing-safe-haskell-mode # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wmissing-safe-haskell-mode
- -Wno-implicit-prelude # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wimplicit-prelude
- -Wno-missing-export-lists # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-export-lists
- -Wno-missing-home-modules # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-home-modules
- -Wno-missing-import-lists # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-import-lists
# - -Wno-unused-type-patterns
- -Wno-all-missed-specialisations # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wall-missed-specialisations
# - -Wno-orphans
# TODO: do we still need these?
# - -fwrite-ide-info
# - -hiedir=.hie
dependencies:
- base
- singletons-base
- text
library:
source-dirs: src
dependencies:
- profunctors
# Disable adding Paths_crm to other-modules, because it does not conform to our style guide.
# https://github.com/sol/hpack#handling-of-paths_-modules
when:
- condition: false
other-modules: Paths_crm
tests:
crm-spec:
main: Spec.hs
source-dirs: spec
dependencies:
- crm
- hspec
when:
- condition: false
other-modules: Paths_crm