Skip to content
This repository has been archived by the owner on Aug 18, 2020. It is now read-only.

Latest commit

 

History

History
82 lines (54 loc) · 3.27 KB

CONTRIBUTING.md

File metadata and controls

82 lines (54 loc) · 3.27 KB

Contributors Guide

Discussion

Developer discussion can be found on the official Telegram channel here. This channel is intended as a developer/contribution channel. It should not be used for customer support requests, comedy/memes, or price talk. Feel free to discuss current issues, future possibilities, and visions for how you think Cardano should progress.

Bug Reports

Please open an issue to report about found bugs in Cardano SL.

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 Cardano SL, 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 Cardano SL 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

Cardano SL uses HLint as a code quality tool.

You can install it using stack install hlint command.

To check Cardano SL code run this script (from the cardano-sl root directory):

$ ./scripts/haskell/lint.sh

Code Style

Cardano SL 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.

Documentation

Cardano SL Documentation is published at cardanodocs.com.

Please note that we have a separate repository for documentation. So if you would like to help with documentation, please submit a pull request with your changes/additions.

Testing

To run tests for Cardano SL code use this command (from the cardano-sl root directory):

$ stack test