crem/package.yaml

165 lines
5.8 KiB
YAML
Raw Normal View History

2023-02-06 14:31:35 +03:00
name: crem
2023-01-04 19:30:57 +03:00
version: 0.1.0.0
author: Marco Perone
maintainer: marco.perone@tweag.io
copyright: 2022 Tweag I/O
license: OtherLicense
2023-02-13 18:16:29 +03:00
description:
"`crem` stands for **c**ompositional **r**epresentable **e**xecutable
**m**achines.
It allows creating state machines (Mealy machines in fact), compose them to
build bigger machines out of smaller ones and then run them and draw their
flow and their state space."
2023-01-04 19:30:57 +03:00
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
2023-01-05 13:09:07 +03:00
default-extensions:
2023-01-05 20:01:15 +03:00
- 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
2023-01-05 20:01:15 +03:00
- PackageImports # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/package_qualified_imports.html#extension-PackageImports
2023-01-04 19:30:57 +03:00
# Options inspired by: https://medium.com/mercury-bank/enable-all-the-warnings-a0517bc081c3
2023-01-04 19:30:57 +03:00
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
2023-01-05 20:01:15 +03:00
- -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
2023-01-05 20:01:15 +03:00
- -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
2023-01-04 19:30:57 +03:00
# - -Wno-orphans
# TODO: do we still need these?
# - -fwrite-ide-info
# - -hiedir=.hie
dependencies:
2023-01-05 13:09:07 +03:00
- base
2023-01-05 20:01:15 +03:00
library:
source-dirs: src
2023-01-10 19:42:41 +03:00
dependencies:
- profunctors
2023-01-11 18:22:51 +03:00
- singletons-base
- text
2023-02-06 14:31:35 +03:00
# Disable adding Paths_crem to other-modules, because it does not conform to our style guide.
# https://github.com/sol/hpack#handling-of-paths_-modules
when:
- condition: false
2023-02-06 14:31:35 +03:00
other-modules: Paths_crem
2023-01-05 20:01:15 +03:00
2023-02-13 13:04:46 +03:00
internal-libraries:
crem-examples:
source-dirs: examples
dependencies:
- crem
- profunctors
- singletons-base
2023-02-13 18:16:29 +03:00
# Disable adding Paths_crem 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_crem
2023-02-13 13:04:46 +03:00
2023-01-05 20:01:15 +03:00
tests:
2023-02-06 14:31:35 +03:00
crem-spec:
2023-01-05 20:01:15 +03:00
main: Spec.hs
source-dirs: spec
dependencies:
2023-02-06 14:31:35 +03:00
- crem
2023-02-13 13:04:46 +03:00
- crem-examples
2023-01-05 20:01:15 +03:00
- hspec
- profunctors
2023-01-11 18:22:51 +03:00
- singletons-base
when:
- condition: false
2023-02-06 14:31:35 +03:00
other-modules: Paths_crem
2023-01-11 18:22:51 +03:00
2023-02-06 14:31:35 +03:00
crem-doctests:
2023-01-11 18:22:51 +03:00
source-dirs: doctest
main: Main.hs
ghc-options:
- -threaded
- -Wno-unused-packages
dependencies:
2023-02-06 14:31:35 +03:00
- crem
2023-01-11 18:22:51 +03:00
- doctest-parallel
when:
- condition: false
2023-02-06 14:31:35 +03:00
other-modules: Paths_crem
2023-02-01 19:31:26 +03:00
executables:
hobbit-game:
source-dirs: hobbit-game
main: Main.hs
dependencies:
2023-02-06 14:31:35 +03:00
- crem
2023-02-13 13:04:46 +03:00
- crem-examples
2023-02-06 14:31:35 +03:00
# Disable adding Paths_crem to other-modules, because it does not conform to our style guide.
# https://github.com/sol/hpack#handling-of-paths_-modules
when:
- condition: false
2023-02-06 14:31:35 +03:00
other-modules: Paths_crem