Contributing

Guidelines for contributors

Check the contribution guidelines: https://github.com/RequestNetwork/requestNetwork/blob/development/CONTRIBUTING.md

Join the Request Hub on Slack.

Visit our github to view the issues or create a new one.

Monorepo

The repository of the protocol is a monorepo, using yarn workspaces and lerna. It holds every package composing the typescript implementation of the protocol, as well as the specifications.

Building and Running

Build all packages

  1. git clone https://github.com/RequestNetwork/requestNetwork.git

  2. yarn run build

Sometimes it helps to run yarn run build:tsc to fix typescript build problems.

Lint all packages

  1. git clone https://github.com/RequestNetwork/requestNetwork.git

  2. yarn run lint

  3. yarn run packageJsonLint

Run all the tests

  1. git clone https://github.com/RequestNetwork/requestNetwork.git

  2. Console 1: Run IPFS

    1. Install and setup an IPFS node

    2. ipfs daemon

  3. Console 2: Run ganache

    1. cd packages/ethereum-storage

    2. yarn run ganache

  4. Console 3: deploy the contracts and run the tests

    1. cd packages/ethereum-storage

    2. yarn run deploy

    3. cd ../

    4. yarn run test

CircleCI Build

We use CircleCI to build the projects of the monorepo: https://circleci.com/gh/RequestNetwork/requestNetwork

Readings

Good readings for anyone interested in developing on the protocol: