-
Notifications
You must be signed in to change notification settings - Fork 36
PullRequestProcedure
The following procedure for merging branches into the GitHub master branch via pull requests (PRs) is currently in place:
-
PRs must be approved by at least one core developer (and no other core developer must have requested changes). To do so, click on the "Files changed" tab on the PR page and then on "Review changes". Please review thoroughly as for any kind of belated change we need to open a new PR.
-
PRs must be successfully tested by Travis in four different configurations. The jobs are started automatically at each push to a branch that belongs to a PR, regardless of the source repository (does not need to be SGpp/SGpp).
-
PRs must be successfully tested by Jenkins. This means that the job
SGpp-meta-testing
(which automatically starts/depends on all other jobs) must succeed. These jobs are executed on an SGpp/SGpp branch calledtesting
, which must point to the same commit as the branch of the PR.SGpp-meta-testing
is started automatically at each push totesting
.This means that before merging, core developers have to execute
git push -f origin HEAD:testing
while being on the branch which is to be merged (or you can replace HEAD with the name of the branch to be merged). The testing branch exists only for this workflow; please don't commit directly to it.
As students cannot push to the SGpp repo, their advisor needs to do the force-push for them. This also serves security purposes as we don't want everybody on the Internet to be able to execute arbitrary code on our machines. However, the advisor should check their students' codes either way, so this shouldn't be much of a problem.
These three conditions for merging PRs are enforced automatically. Travis and Jenkins take approx. 60mins to complete. Only one PR at a time can be tested.
If there are additional commits after successful reviews or Jenkins/Travis tests, then the reviews or the Jenkins/Travis tests need to be done again. A PR can only be merged if the latest version is reviewed and tested.
[Mail to the SGpp Mailing list on 2019/03/20 by @valentjn]