Thanks for your interest in contributing to the Aave protocol! Please take a moment to review this document before submitting a pull request.
- Significant changes to the Protocol must be reviewed before a Pull Request is created. Create a Feature Request first to discuss your ideas.
- Contributors must be humans, not bots.
- First time contributions must not contain only spelling or grammatical fixes.
This guide is intended to help you get started with contributing. By following these steps, you will understand the development process and workflow.
- Forking the repository
- Installing Foundry
- Installing dependencies
- Running the test suite
- Submitting a pull request
- Versioning
To start contributing to the project, fork it to your private github account.
Once that is done, you can clone your forked repository to your local machine.
# https
git clone https://github.com/<user>/aave-v3-origin.git
# ssh
git clone git@github.com:<user>/aave-v3-origin.gitTo stay up to date with the main repository, you can add it as a remote.
# https
git remote add upstream https://github.com/aave-dao/aave-v3-origin.git
# ssh
git remote add upstream git@github.com:aave-dao/aave-v3-origin.gitAave-v3-origin is a Foundry project.
Install foundry using the following command:
curl -L https://foundry.paradigm.xyz | bashFor generating the changelog, linting and testing, we rely on some additional node pckages. You can install them by running:
npm installFor running the default test suite you can use the following command:
forge testIn addition the the default test suite, you can run the enigma fuzzing suite.
When you're ready to submit a pull request, you can follow these naming conventions:
- Pull request titles use the Imperative Mood (e.g.,
Add something,Fix something). - Changesets use past tense verbs (e.g.,
Added something,Fixed something).
When you submit a pull request, GitHub will automatically lint, build, and test your changes. If you see an ❌, it's most likely a bug in your code. Please, inspect the logs through the GitHub UI to find the cause.
- Pull requests must always cover all the changes made with tests. If you're adding a new feature, you must also add a test for it. If you're fixing a bug, you must add a test that reproduces the bug. Pull requests that cause a regression in test coverage will not be accepted.
- Pull requests that touch code functionality should always include updated gas snapshots. Running
forge testwill update the snapshots for you. - Make sure that your updates are fitting within the existing code margin. You can check by running
forge build --sizes
When adding new features or fixing bugs, we'll need to bump the package version. We use Changesets to do this.
Each changeset defines which package should be published and whether the change should be a minor/patch release, as well as providing release notes that will be added to the changelog upon release.
To create a new changeset, run npm run changeset. This will run the Changesets CLI, prompting you for details about the change. You’ll be able to edit the file after it’s created — don’t worry about getting everything perfect up front.
Note: As this repository is targeting Aave V3 no major releases are allowed in this repository.