Skip to content

Latest commit

 

History

History
38 lines (22 loc) · 2.27 KB

DEVELOPMENT.md

File metadata and controls

38 lines (22 loc) · 2.27 KB

Development recommendations

Most of our developers use using Visual Studio Code. In that case, you just have to open the project, and install the recommended extensions. Before continuing, make sure you've read:

Setting up the project

Native dependencies

The included adapter/kafka project requires development headers of the rdkafka library:

  • on macOS sudo brew install librdkafka
  • on fedora sudo dnf install librdkafka-devel
  • on debian sudo apt-get install librdkafka-dev

Git submodules

This project uses git submodules (notably for examples/library/). You can run git submodule update --init --recursive once after checkout, or git config --global submodule.recurse true to globally enable submodules.

Integration tests

See also https://github.com/higherkindness/mu-scala-haskell-integration-tests

Visual Studio Code extensions

To make our lives easier while developing in Haskell, we use a set of recommended extensions. The first time you open the project, the editor should suggest to install all those you do not have:

  • Haskell, the best thing that happened to Haskell for editors/IDEs! ❤️
  • editorconfig, to have consistency between different editors and envs 🐀

Styling 💅🏼

We loosely follow Kowainik's Haskell Style Guide. In order to automate styling, we use stylish-haskell, for which we provide a .stylish-haskell.yaml configuration file.

We don't provide any git hook or tool that enforces our style. By default the provided .vscode/settings.json file runs styling on every save. However, before you propose any PR please make sure to run stylish-haskell yourself, and to follow our style guide mentioned above to the extent possible. 😊

Happy hacking! 👏🏼