| 154 | = Patch submission via Gerrit = |
| 155 | |
| 156 | The OpenVPN project has an instance of the [https://gerrit-review.googlesource.com/ Gerrit code review tool], hosted at https://gerrit.openvpn.net/. This is intended to aid in the submission and review of bigger patches or patch series (i.e. patches that do depend on each other). Gerrit allows to |
| 157 | |
| 158 | * Track review comments on a patch |
| 159 | * Review changes between different revisions of a patch |
| 160 | * Get test builds for patches |
| 161 | |
| 162 | The use of Gerrit is encouraged over using [https://github.com/OpenVPN/openvpn/pulls GitHub Pull-Requests]. The main difference is that our development workflow is currently patch orientated. Even when you submit a patch series, each patch needs to stand on its own, and produce a working build. Each patch will be merged individually. Gerrit supports this model, while Pull Requests like in !GitHub or similar products are more branch-oriented. |
| 163 | |
| 164 | Note that we currently do directly merge the patches via the Gerrit tool. Instead they are still submitted to the mailing list for the final step of the workflow as described above. We have written a small script that facilitates sending a patch reviewed through Gerrit to the list. You can find [https://github.com/OpenVPN/openvpn/blob/master/dev-tools/gerrit-send-mail.py gerrit-send-mail.py] in the `dev-tools` directory in the Git repository. That script will take care of adding ''Acked-By'' lines automatically based on the Gerrit reviews. Anyone can submit a patch to the mailing list once it is reviewed and approved. But of course we encourage the patch author to take care of it themselves. |
| 165 | |
| 166 | For more information and tips about using Gerrit see GerritBestPractises. |
| 167 | |