[ 
https://issues.apache.org/jira/browse/JDO-792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17302730#comment-17302730
 ] 

Tobias Bouschen commented on JDO-792:
-------------------------------------

After discussing the topic, the decision was made to not include "Require 
branch to be up-to-date" as a requirement as it could caused large overhead 
while only providing a very minor upside.

The rule to require reviews was not adapted as well due to the same reasoning.

> Create branch protection for master branch
> ------------------------------------------
>
>                 Key: JDO-792
>                 URL: https://issues.apache.org/jira/browse/JDO-792
>             Project: JDO
>          Issue Type: Task
>            Reporter: Tobias Bouschen
>            Assignee: Tobias Bouschen
>            Priority: Minor
>
> In order to enforce certain restrictions for specific branches, GitHub 
> provides the concept of 'branch protection'. Such restrictions can take many 
> forms, for example enforcing a linear history or requiring specific GitHub 
> actions to pass before allowing a pull-request to merged on the branch.
> I would suggest also creating such restrictions for the master branch of both 
> the main JDO and the JDO site repository. My suggested rules are as follows:
>  * *Require a linear history* – This will disallow merge commits on the 
> branch. As a result
>  ** pushes to the protected branch containing a merge commit will be rejected 
> by the repository. This will most likely only apply to GitHub and not GitBox, 
> so pushing a merge commit to a protected branch through GitBox will most 
> likely break the mirror. I would recommend against it.
>  ** the option "Create a merge commit" to merge a pull request for this 
> branch is disabled.
>  ** pull-requests for this branch containing a merge commit can only be 
> merged using the "Squash and merge" option to remove this merge commit in the 
> process.
>  * *Require status checks before merging* – This will require the selected 
> status checks (i.e. GitHub actions) to pass before the pull requests for this 
> branch can be merged.
>  * *Require branches to be up-to-date* – This will require a PR to always be 
> up-to-date with its base branch. This is a sub-option of "Require status 
> checks" and is meant as a way to enforce that the checks are always run on 
> the current version of the base branch. This ensures that a combination of 
> new commits on the master and the commits of the pull request create a build 
> failure which is not visible with either of the two separately.
> As requiring branches to be up-to-date creates the most overhead when there 
> are frequent other activities on the repository, this requirement should be 
> considered carefully. Especially with long-running checks, always having to 
> rebase pull-requests on the current master before being able to merge them 
> can be cumbersome.
> Another possible option would be requiring approvals (of members with write 
> access) before a pull request can be merged. I did not suggest this by 
> default as this rule is binding since none of us have administrative 
> privileges on the repository. As a result, it would be impossible to create a 
> pull requests for a trivial fix and merge it without any approval. (This 
> restriction does not apply to direct pushes to the branch.)
> Lastly, as merge commits are not desired and are generally disallowed by the 
> branch protection rule, I would suggest to completely disable the option to 
> create a merge commit when merging a pull request.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to