-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathCONTRIBUTING.ms
More file actions
90 lines (59 loc) · 3.15 KB
/
CONTRIBUTING.ms
File metadata and controls
90 lines (59 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# Contributing
Thanks for your interest in contributing to the Aave Governance V3! Please take a moment to review this document **before submitting a pull request.**
## Rules
1. Significant changes to the Protocol must be reviewed before a Pull Request is created. Create a [Feature Request](https://github.com/aave-dao/aave-governance-v3/issues) first to discuss your ideas.
2. Contributors must be humans, not bots.
3. First time contributions must not contain only spelling or grammatical fixes.
## Basic guide
This guide is intended to help you get started with contributing. By following these steps, you will understand the development process and workflow.
1. [Forking the repository](#forking-the-repository)
2. [Installing Foundry](#installing-foundry)
4. [Installing dependencies](#installing-dependencies)
5. [Running the test suite](#running-the-test-suite)
7. [Submitting a pull request](#submitting-a-pull-request)
---
### Forking the repository
To start contributing to the project, [fork it](https://github.com/aave-dao/aave-governance-v3/fork) to your private github account.
Once that is done, you can clone your forked repository to your local machine.
```bash
# https
git clone https://github.com/<user>/aave-governance-v3.git
# ssh
git clone git@github.com:<user>/aave-governance-v3.git
```
To stay up to date with the main repository, you can add it as a remote.
```bash
# https
git remote add upstream https://github.com/aave-dao/aave-governance-v3.git
# ssh
git remote add upstream git@github.com:aave-dao/aave-governance-v3.git
```
---
### Installing foundry
Aave Governance V3 is a [Foundry](https://github.com/foundry-rs/foundry) project.
Install foundry using the following command:
```bash
curl -L https://foundry.paradigm.xyz | bash
```
---
### Installing dependencies
For generating the changelog, linting and testing, we rely on some additional node packages. You can install them by running:
```bash
npm install
```
---
### Running the test suite
For running the default test suite you can use the following command:
```bash
forge test
```
---
### Submitting a pull request
When you're ready to submit a pull request, you can follow these naming conventions:
- Pull request titles use the [Imperative Mood](https://en.wikipedia.org/wiki/Imperative_mood) (e.g., `Add something`, `Fix something`).
- [Changesets](#versioning) 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 test` will 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`
---