To start developing on AvalancheGo, you'll need a few things installed.
- Golang version >= 1.20.12
- gcc
- g++
- Do not open up a GitHub issue if it relates to a security vulnerability in AvalancheGo, and instead refer to our security policy.
- Changes from the community that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of
avalanchego
will generally not be accepted.
- Check that the issue you're filing doesn't already exist by searching under issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description with as much relevant information as possible.
- If you want to start a discussion about the development of a new feature or the modification of an existing one, start a thread under GitHub discussions.
- Post a thread about your idea and why it should be added to AvalancheGo.
- Don't start working on a pull request until you've received positive feedback from the maintainers.
- Open a new GitHub pull request containing your changes.
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
- The PR should be opened against the
master
branch. - If your PR isn't ready to be reviewed just yet, you can open it as a draft to collect early feedback on your changes.
- Once the PR is ready for review, mark it as ready-for-review and request review from one of the maintainers.
- Any changes to protobuf message types require that protobuf files are regenerated.
./scripts/protobuf_codegen.sh
- To add or remove an interface that needs a corresponding mock generated, add it to the mock file here. You can regenerate the mocks by running the following script.
./scripts/mock.gen.sh
- Build the avalanchego binary
./scripts/build.sh
- Run unit tests
./scripts/build_test.sh
- Run the linter
./scripts/lint.sh
- Pull requests will generally not be approved or merged unless they pass CI.
- Ask any question about AvalancheGo under GitHub discussions.
- Please check out the
avalanche-docs
repository here.