Documentation for version v0.10.2 is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
Thank you for taking the time out to contribute to project Antrea!
This guide will walk you through the process of making your first commit and how to effectively get it merged upstream.
To get started, let's ensure you have completed the following prerequisites for contributing to project Antrea:
Now that you're setup, skip ahead to learn how to contribute.
We welcome contributions from everyone but we can only accept them if you sign our Contributor License Agreement (CLA). If you would like to contribute and you have not signed it, our CLA-bot will walk you through the process when you open a Pull Request. For questions about the CLA process, see the FAQ or submit a question through the GitHub issue tracker.
At minimum, you need the following accounts for effective participation:
There are multiple ways in which you can contribute, either by contributing code in the form of new features or bug-fixes or non-code contributions like helping with code reviews, triaging of bugs, documentation updates, filing new issues or writing blogs/manuals etc.
In order to help you get your hands "dirty", there is a list of starter issues from which you can choose.
Developers work in their own forked copy of the repository and when ready, submit pull requests to have their changes considered and merged into the project's repository.
Forkbutton on Antrea's GitHub repository.
git clone https://github.com/$user/antreaAdd a remote upstream to track upstream Antrea repository.
git remote add upstream https://github.com/vmware-tanzu/antreaNever push to upstream master
git remote set-url --push upstream no_push
git checkout -b branchName
git add <modifiedFile> git commit
git checkout branchName git fetch upstream git rebase upstream/master
git push -f $remoteBranchName branchName
Compare & Pull Requestbutton next to your
Once you have opened a Pull Request (PR), reviewers will be assigned to your PR and they may provide review comments which you need to address. Commit changes made in response to review comments to the same branch on your fork. Once a PR is ready to merge, squash any fix review feedback, typo and merged sorts of commits.
To make it easier for reviewers to review your PR, consider the following:
make golangci-fix; if the linters flag an issue that cannot be fixed automatically, an error message will be displayed so you can address the issue.
If your PR fixes a bug or implements a new feature, add the appropriate test cases to our automated test suite to guarantee enough coverage. A PR that makes significant code changes without contributing new test cases will be flagged by reviewers and will not be accepted.
To build the Antrea Docker image together with all Antrea bits, you can simply do:
The second step will compile the Antrea code in a
golang container, and build
Ubuntu 20.04 Docker image that includes all the generated binaries.
must be installed on your local machine in advance.
Alternatively, you can build the Antrea code in your local Go environment. The
Antrea project uses the Go modules support which was introduced in Go 1.11. It
facilitates dependency tracking and no longer requires projects to live inside
To develop locally, you can follow these steps:
For more information about the tests we run as part of CI, please refer to ci/README.md.
git checkout -b revertName
git fetch upstream git rebase upstream/master
git revert SHA
git push $remoteRevertName revertName
Compare & Pull Requestbutton next to your
We use labels and workflows (some manual, some automated with GitHub Actions) to help us manage triage, prioritize, and track issue progress. For a detailed discussion, see docs/issue-management.md.
Help is always appreciated. If you find something that needs fixing, please file an issue here. Please ensure that the issue is self explanatory and has enough information for an assignee to get started.
Before picking up a task, go through the existing issues and make sure that your change is not already being worked on. If it does not exist, please create a new issue and discuss it with other members.
For simple contributions to Antrea, please ensure that this minimum set of labels are included on your issue:
kind/design. For an overview of the different types of issues that can be submitted, see Issue and PR Kinds. The kind of issue will determine the issue workflow.
All other labels will be assigned during issue triage.
Once an issue has been submitted, the CI (GitHub actions) or a human will
automatically review the submitted issue or PR to ensure that it has all relevant
information. If information is lacking or there is another problem with the
submitted issue, an appropriate
triage/<?> label will be applied.
After an issue has been triaged, the maintainers can prioritize the issue with
Once an issue has been submitted, categorized, triaged, and prioritized it
is marked as
ready-to-work. A ready-to-work issue should have labels
indicating assigned areas, prioritization, and should not have any remaining
kind label to describe the kind of issue or PR you are submitting. Valid
kind/api-change-- for api changes
kind/bug-- for filing a bug
kind/cleanup-- for code cleanup and organization
kind/deprecation-- for deprecating a feature
kind/design-- for proposing a design or architectural change
kind/documentation-- for updating documentation
kind/failing-test-- for reporting a failed test (may create with automation in future)
kind/feature-- for proposing a feature
kind/support-- to request support. You may also get support by using our Slack channel for interactive help. If you have not set up the appropriate accounts, please follow the instructions in accounts setup.
For more details on how we manage issues, please read our Issue Management doc.