To submit a patch, fork the repo and work within a topic branch of your fork.
-
Bootstrap your dev environment
script/bootstrap
-
Set up a remote tracking branch
git checkout -b <branch_name> # Initial push with `-u` option sets remote tracking branch. git push -u origin <branch_name>
-
Ensure your branch is up-to-date:
git fetch --prune upstream git rebase upstream/master git push -f
-
Submit a Pull Request
- Participate in code review
- Participate in code comments
-
You can run tests locally via:
script/test
Use git rebase upstream/master to update your branch.
- You must force-push after rebasing.
- We never force-push to master.
The primary reason for this is to maintain a clean, linear history via "fast-forward" merges to master. A clean, linear history in master makes it easier to troubleshoot regressions and follow the timeline.