Skip to content

Latest commit

 

History

History
57 lines (38 loc) · 2.01 KB

File metadata and controls

57 lines (38 loc) · 2.01 KB

Thank you for your contribution to sel! While there is no Contributor License Agreement (CLA) to sign, we do need you to read the following instructions before you contribute.

Code of Conduct

We need you to read, acknowledge, and abide by our Code of Conduct.

Pull Requests

When making a PR, ensure that you have a Github issue that explains the context for your changes.

Code Style

C FFI

  • The CApiFFI convention must be used at all times.
  • The datatypes from Foreign must be used when getting results from C, like CInt in favour of Int. Example:
    • foreign export ccall sodium_init :: IO Int

    • foreign import capi "sodium.h sodium_init" c_sodium_init :: IO CInt

Formatting and linting

We have a git hook in place to ensure the following formatting and linting tools are being used:

  • All Haskell source files are formatted with fourmolu v0.17.0.0;
  • All Haskell source files are linted with hlint v3.8, as per the .hlint.yaml configuration file.
  • The Cabal file is formatted with cabal-gild v1.5.0.1

To ensure that you are using the git hook, run the following, once:

git config core.hooksPath .githooks

You can also use the provided Makefile by running make init.

Questions

Open a thread in the Questions discussion board. That way, you can get help from everyone in the community.

Issues & Bugs

Open an issue and tell us what you can about your problem.