streamly-0.9.0: docs/Developer/ci-tests.md
# Continuous integration tests
This file documents the required CI test matrix so that we do not accidentally
remove or miss any tests when making changes to CI configs:
## Mono repo
We host "streamly" and "streamly-core" packages in the same repo. This
creates a problem for the sdist build for the "streamly" package because
it depends on the "streamly-core" package. In the "streamly" sdist build
we use a cabal.project file to pick up "streamly-core" from github
master branch HEAD. If we make changes to both the packages at the same
time we won't be able to do this.
We use one sdist build for "streamly" package and one for "streamly-core". The
sdist build for "streamly" might fail because of the reason described above.
## For prime GHC version:
Distribution:
* build "streamly" from source distribution WITHOUT a cabal.project file
* build "streamly-core" from source distribution WITHOUT a cabal.project file
Performance:
* `--flag inspection` + `--flag fusion-plugin`
* Run `benchmark/bench-runner --quick --raw`
* Run `test/test-runner`
* -Werror (for lib, test, bench)
Lint:
* -Werror (for lib, test, bench) (Need a Werror with default flags)
* hlint
Doctests:
* Run cabal-docspec
Coverage:
* `coverage` build
Debug:
* --flag debug
Windows:
* Windows + stack
MacOS:
* MacOS + stack
## Other GHC versions
GHC head:
* `--flag inspection` + `--flag fusion-plugin` tests to catch any
issues early.
* Ideally we should also be running perf tests and compare
against the prime version.
Other GHC versions:
* build lib, test, bench, docs, run tests, on Linux platform, using
cabal build
## GHCJS
GHCJS:
* Latest version ghcjs build (lib, test, bench), run tests