This is a guide for code contribution to Pegasus. Before writing your code, please take a second reading this doc.
Clang-Format
We currently use clang-format-3.9 for C++ code formatting. Please install this tool and run before submitting a PR:
./scripts/format_files.sh
./rdsn/scripts/linux/run-clang-format.sh
CCache
Pegasus supports ccache to accelerate compilation. It significantly reduces the building time, by caching the intermediate results on your disk. We highly recommend this tool for Pegasus development.
sudo apt install ccache
ccache -M 5G # configure the cache size
Once you installed ccache, Pegasus's building process will automatically detect it without any manual configuration.
Continuous Integration
Pegasus runs a Github Actions workflow/TravisCI for each of the submitted pull-request. The CI process checks:
- If your PR title matches conventional commit
- If your code is well-formatted
- If your changes can pass all the tests. You can run `./run.sh test` on your local environment.
For more details about how we run Github Actions, please refer to this doc: Github Actions