Subsquid mono-repo is managed by rush. The setup is pretty standard for rush projects. All information from rush docs is applicable here.
Subsquid repository contains a number of large test data files, which are stored as git LFS objects.
It can make sense to skip downloading those files by setting
GIT_LFS_SKIP_SMUDGE environment variable.
GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:subsquid/squid.gitInstall rush(1) globally from npm.
npm install -g @microsoft/rushAlternatively one can use a provided starter script instead of rush(1).
node common/scripts/install-run-rush.js <regular rush command>rush installrush buildRunning tests requires a recent version of docker.
# Run unit tests
rush test
# Run tests requiring git-lfs files
rush data-test
# Run end to end test suite
rush e2eAll pull requests should be made from a fork. To create a pull request
# 1. Create a new branch to incorporate your changes
git checkout -b new_awesome_feature
# 2. Make and commit your changes
# 3. Create and commit a change file describing your modifications
rush change -b <the target branch you are basing your changes on>
git add common/changes
git commit -m "changes"After that send a PR from new_awesome_feature to the target branch.