Contributors Guide
May 2, 2019 ยท View on GitHub
Bug Reports
Please open an issue to report about found bugs in Sealchain.
The more detailed your report, the faster it can be resolved and will ensure it is resolved in the right way.
Code
If you would like to contribute code to fix a bug, add a new feature, or otherwise improve Sealchain, pull requests are most welcome. It is a good idea to submit an issue to discuss the change before plowing into writing code.
Please make sure your contributions adhere to our coding guidelines:
- Code must adhere to the Serokell Haskell Style Guide.
- Code must be documented with Haddock.
- We are using GitFlow
branching model, so pull requests need to be based on and opened against the
developbranch. - Please refer to this guide to write a good Git commit message.
Please note that Sealchain uses a custom prelude Universum instead of the default one.
Development Tricks
Common tasks for development are kept in Makefiles, one per package and one for the whole project.
Run make help to get assistance on custom commands.
As an example, you can run make ghcid-test in the wallet package to get a test-running ghcid process running.
Code Quality
Sealchain uses HLint as a code quality tool.
You can install it using stack install hlint command.
To check Sealchain code run this script (from the sealchain root directory):
$ ./scripts/haskell/lint.sh
Code Style
Sealchain uses stylish-haskell tool to prettify Haskell code.
Please note that there is .stylish-haskell.yaml in the root of the repository. This
configuration file requires stylish-haskell version 0.8.1.0 or newer.
You can install it using stack install stylish-haskell command.
We also use editorconfig to maintain consistent indentation and maximum line length.
You can download a plugin for almost any common editor.
Testing
To run tests for Sealchain code use this command (from the sealchain root directory):
$ stack test