This is so that our PR's don't suddenly start failing when the restyled.io service bumps is `fourmolu` version.
## TODO
I wasn't actually able to install version `0.10.1.0`; both of these attempts failed:
stack install fourmolu-0.10.1.0
and
cabal install fourmolu-0.10.1.0
Closes#936.
With this change, `stack build` should be invoked as normal, but to run tests one should invoke the new script, which will place compilation artifacts in a separate directory so as to not stomp on the previous `stack build` artifacts.
## Demo
```
stack build
./scripts/run-tests.sh
stack build
```
All perform incremental compilation rather than from-scratch.
Restyled.io uses fourmolu version `0.10.1.0`. It is not clear how it could be pegged to `0.4.0.0`. The latest I was able to install on my machine with `cabal install` was `0.9.0.0`.
fixes#888
- note how to install Fourmolu and run it from shell
- refactor the conventions to use subsections for easier readability
- simplify restyled arguments for Fourmolu 0.4
- allow HLS to use Cabal instead of Stack
- Cabal works fine, and I do not see any advantage to using Stack
- someone using Stack should test this does not switch him to Cabal ⚠️
- ignore `cabal.project.local` so I can put there `ghc-options: -haddock`
- this flag could lead to errors before GHC 9, but it gives me [docs on hover](https://haskell-language-server.readthedocs.io/en/latest/features.html)
This change configures the mergify bot so that:
- PR are validated with the tip of the project before merge
to prevent incompatible PRs to be merged at once which could
break the CI.
- PR maintainer uses a consistent smart squash workflow