This codebase is a Lerna monorepo.
For a list of all modules in this repository, see packages.
See Contributing.
To install all packages run
npm install
npm run test
We use docker-compose to setup the services used in tests, Namely:
- ganache: for a local ethereum testnet
- ipfs: for a local ipfs node
- mongodb: for a local mongo DB
Make sure you have docker
and docker-compose
installed before running the tests
- Copy the global eslint config to the package
- Make sure the linked packages are published
Unstable releases are automatic, from CD:
- On every commit to main an unstable release is pushed. An unstable release is a release with a tag of the form: vA.B.C-unstable.X. Everytime a PR is merged, X is incremented.
- If "skip-ci" is present in the commit message, the aforementioned behavior is skipped
Stable releases are triggered by a dev locally
- Make sure you are familiar with Semantic Versioning
- Run
npm install
andnpm build
in the root level directory - Run
npm run publish:stable:patch
for a patch version incrementnpm run publish:stable:minor
for a minor version incrementnpm run publish:stable:major
for a major version increment
- Current version is v0.1.0
- A PR is made to fix bug A. When it's merged a release is made: v0.1.0-unstable-0
- A PR is made to add feature B. When it's merged a release is made: v0.1.0-unstable-1
- A PR is made to add feature C. When it's merged a release is made: v0.1.0-unstable-2
- Dev runs
npm run publish:stable:patch
. Current version is v0.1.0 - A PR is made to fix bug D. When it's merged a release is made: v0.1.1-unstable-0
- etc...
To run the tests in the repository, you will need docker
and docker-compose
installed.
For instructions on installing docker, please refere to: https://www.docker.com/get-started
You may find it useful to prune all docker data:
docker system prune
You might need to refresh a package to get the testing locally to reflect the testing on the CI pipeline.
To do this for example on package did-method:
npx lerna clean
npm i
cd packages/did-method
npm run build && npx lerna link
cd ../..
npm run test
You can also refresh the entire project by running
npm run install:clean
It is similar to running these commands
lerna clean
npm i
lerna bootstrap
Sometimes you might need to reset jest for running tests
npx jest --clearCache