Skip to content

PullRequestProcedure

Michael Rehme edited this page Jun 17, 2021 · 1 revision

Pull Request Procedure for Merging into Master

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 called testing, which must point to the same commit as the branch of the PR. SGpp-meta-testing is started automatically at each push to testing.

    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]

Clone this wiki locally