The following is targeting developers who want to set up this repository locally to contribute, test or just play around.
- Node.js 16.X
- npm 8.X
Installing the correct versions of node and npm can also be done by installing volta. Volta will automatically get those versions from the root package.json file.
It is also beneficial to have a rough understanding of the monorepo tools that we use in this project.
# checkout repo
git clone --recursive https://github.com/bosonprotocol/core-components.git
# install deps
cd core-components
npm ciRequires:
- Docker compose >= v2
- Docker engine >= v20
If you want to run a local e2e setup with a deployed subgraph and contracts, run in the root of this monorepo
npm run build
npm run e2e:servicesThis will start a dockerized IPFS node, Graph node, PostgresDB and hardhat node and deploy all required contracts and subgraph.
For details have a look at the e2e/docker-compose.yml file.
In the root of this monorepo run
# lint all
npm run lint
# lint all serially
npm run lint -- --concurrency=1
# lint single package with all dependent packages
npm run lint -- --scope="@bosonprotocol/core-sdk"
# lint single package without dependent packages
npm run lint -- --scope="@bosonprotocol/core-sdk" --no-depsIn the root of this monorepo run
# test all packages in parallel
npm run test
# test all packages serially
npm run test -- --concurrency=1
# test single package with all dependent packages
npm run test -- --scope="@bosonprotocol/core-sdk"
# test single package without dependent packages
npm run test -- --scope="@bosonprotocol/core-sdk" --no-depsIn the root of this monorepo run
# starts all e2e services, deploys contracts and subgraph, and runs e2e tests
npm run e2e:suite
# OR
# only runs e2e tests. useful if you have the e2e services already running
npm run e2e:testIn the root of this monorepo run
# build all
npm run build
# build all serially
npm run build -- --concurrency=1
# build single package with all dependent packages
npm run build -- --scope="@bosonprotocol/core-sdk"
# build single package without dependent packages
npm run build -- --scope="@bosonprotocol/core-sdk" --no-deps