Skip to content

Latest commit

 

History

History
67 lines (44 loc) · 2.5 KB

CONTRIBUTING.md

File metadata and controls

67 lines (44 loc) · 2.5 KB

Contributors Guide

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 develop branch.
  • 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