The Nerpa team welcomes contributions from the community. Before you start working with Nerpa, please read our Developer Certificate of Origin. All contributions to this repository must be signed as described on this page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch.
Contributor guidelines help us stay on top of things. These contributing guidelines were heavily modeled after Puppet's [Contributing Guidelines. Both DDlog and P4 are fast-moving technologies, available on increasing numbers of platforms. We want to keep it as easy as possible to contribute changes that make things work for you.
We mostly use github tools for managing the project. Bugs and questions should be filed as github issues. Improvements should be submitted as pull requests.
When submitting bugs, please clearly describe it, including steps to reproduce any bugs. Please provide version and operating system information for major components (DDlog, P4, etc). Trivial changes do not need an issue -- feel free to make a pull request.
- Make sure you have a Github account.
- Submit a GitHub issue if a relevant one does not exist.
- For the repository using the "fork" button on github using these instructions. The main step is the following:
git remote add upstream https://github.com/vmware/nerpa.git
Here is a step-by-step guide to submitting contributions:
- Create a new branch for each fix, with a descriptive name:
git checkout -b your_branch_name
git add <files that changed>
git commit -s -m "Description of commit"
Each logically independent change should have a separate commit with an informative message. The-s
option helps you to add the Developer Certificate of Origin.git fetch upstream
git rebase upstream/master
- Resolve any conflicts. As you find and fix conflicts,
git add
the merged files. At the end, you may need to usegit rebase --continue
orgit rebase --skip
. - Test and analyze the merged version.
git push -f origin your_branch_name
- Create a pull request to merge your new branch into
main
, using the Web UI. - Wait for approval; make any requested changes; and squash + merge one commit.
- Delete your branch after merge:
git branch -D your_branch_name