github.com/ava-labs/avalanchego@v1.11.11/CONTRIBUTING.md (about)

     1  # How to Contribute to Avalanche
     2  
     3  ## Setup
     4  
     5  To start developing on AvalancheGo, you'll need a few things installed.
     6  
     7  - Golang version >= 1.21.12
     8  - gcc
     9  - g++
    10  
    11  ## Issues
    12  
    13  ### Security
    14  
    15  - Do not open up a GitHub issue if it relates to a security vulnerability in AvalancheGo, and instead refer to our [security policy](./SECURITY.md).
    16  
    17  ### Did you fix whitespace, format code, or make a purely cosmetic patch?
    18  
    19  - 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.
    20  
    21  ### Making an Issue
    22  
    23  - Check that the issue you're filing doesn't already exist by searching under [issues](https://github.com/ava-labs/avalanchego/issues).
    24  - If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/ava-labs/avalanchego/issues/new/choose). Be sure to include a *title and clear description* with as much relevant information as possible.
    25  
    26  ## Features
    27  
    28  - 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](https://github.com/ava-labs/avalanchego/discussions/categories/ideas).
    29  - Post a thread about your idea and why it should be added to AvalancheGo.
    30  - Don't start working on a pull request until you've received positive feedback from the maintainers.
    31  
    32  ## Pull Request Guidelines
    33  
    34  - Open a new GitHub pull request containing your changes.
    35  - Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
    36  - The PR should be opened against the `master` branch.
    37  - 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.
    38  - Once the PR is ready for review, mark it as ready-for-review and request review from one of the maintainers.
    39  
    40  ### Autogenerated code
    41  
    42  - Any changes to protobuf message types require that protobuf files are regenerated.
    43  
    44  ```sh
    45  ./scripts/protobuf_codegen.sh
    46  ```
    47  
    48  - To add or remove an interface that needs a corresponding mock generated, add it to the mock file [here](./scripts/mocks.mockgen.txt). You can regenerate the mocks by running the following script.
    49  
    50  ```sh
    51  ./scripts/mock.gen.sh
    52  ```
    53  
    54  ### Testing
    55  
    56  #### Local
    57  
    58  - Build the avalanchego binary
    59  
    60  ```sh
    61  ./scripts/build.sh
    62  ```
    63  
    64  - Run unit tests
    65  
    66  ```sh
    67  ./scripts/build_test.sh
    68  ```
    69  
    70  - Run the linter
    71  
    72  ```sh
    73  ./scripts/lint.sh
    74  ```
    75  
    76  ### Continuous Integration (CI)
    77  
    78  - Pull requests will generally not be approved or merged unless they pass CI.
    79  
    80  ## Other
    81  
    82  ### Do you have questions about the source code?
    83  
    84  - Ask any question about AvalancheGo under GitHub [discussions](https://github.com/ava-labs/avalanchego/discussions/categories/q-a).
    85  
    86  ### Do you want to contribute to the Avalanche documentation?
    87  
    88  - Please check out the `avalanche-docs` repository [here](https://github.com/ava-labs/avalanche-docs).