We respect and encourage contributions of any kind. If you love poker or Haskell, there's plenty of ways to contribute and enjoy both.
To report bugs, please use the issue tracker.
We especially appreciate pull requests and are friendly to newcomers, experienced or otherwise.
For proposing API changes and enhancement ideas, it's a good idea to discuss it as an issue first, and then follow the guidelines below.
We use the following tools in the library to help with testing and style:
- tasty-discover as a runner for the tasty test framework.
- ormolu to automate code formatting consistency.
- hlint for code linting, and
- cabal-docspec as a doctest runner.
They can be installed with:
cabal install tasty-discover ormolu hlint --overwrite-policy=always
Note that, if you use haskell-language-server
, you may already have ormolu
and hlint
installed which are the default linters for Haskell.
cabal-docspec
is not on hackage but can be installed as follows:
git clone https://github.com/phadej/cabal-extras
cd cabal-extras/cabal-docspec
cabal install cabal-docspec:exe:cabal-docspec --allow-newer --overwrite-policy=always
As a base library, a poker-base
has to be kept neat, tidy, documented and tested. To that end, please ensure that the library:
- builds with
cabal build && cabal test
with no warnings. Feel free to add file pragmas or edit thepoker-base.cabal
if you think the warning should be ignored. - passes
ormolu --cabal-default-extensions --mode check $(git ls-files '*.hs')
. - passes
hlint .
- passes
cabal v2-build && cabal-docspec --check-properties
If you are requesting a change that adds new functionality or affects behaviour, please:
- check and add doctests
- add tasty unit tests, including QuickCheck properties.
- include haddocks that will be useful for other users.
- update the change log for non-trivial changes.
If anything is not working for you... don't waste your time! Open an issue and ask the authors!