[llvm-dev] [cfe-dev] [GitHub] RFC: Enforcing no merge commit policy

JF Bastien via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 19 12:48:10 PDT 2019



> On Mar 19, 2019, at 12:14 PM, Roman Lebedev via cfe-dev <cfe-dev at lists.llvm.org> wrote:
> 
> On Tue, Mar 19, 2019 at 10:00 PM Tom Stellard via cfe-dev
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>> 
>> Hi,
>> 
>> I would like to follow up on the previous thread[1], where there was a consensus
>> to disallow merge commits in the llvm github repository, and start a discussion
>> about how we should enforce this policy.
>> 
>> Unfortunately, GitHub does not provide a convenient way to fully enforce this policy.
>> We can enforce it for pull requests, but not for direct pushes to the master branch,
>> so we will have to come up with our own solution if we want to completely prevent
>> merge commits.  I've spent some time looking into this and here are a few
>> options that I've come up with (If you are a GitHub expert and have other
>> suggestions, please let us know):
>> 
>> 1. Have either a status check or use the "Rebase and Merge" policy for pull requests
>> to disallow merge commits.  Disable direct pushes to the master branch and update the
>> git-llvm script to create a pull request when a developer does `git llvm push` and
>> then have it automatically merged if there are no merge commits.
>> 
>> 2. Enforce no merge commits for pull requests, but sill allow developers to push directly
>> to master without checking for merge requests.  This is essentially a best effort
>> approach where we avoid having to implement our own custom work-flow for committing,
>> while accepting the possibility that someone might accidentally push a merge commit.
>> 
>> 3. Disable direct pushes to master, don't update the git-llvm script and require all
>> developers to use pull requests, where this policy will be enforced.
>> 
>> Which option do you prefer?
> All these options include at least partial usage of/switch to github pr's.
> I don't think that was discussed before. (FWIW i'm opposed to that.)
> 
> Is there a fourth option - ask github whether they could make an exception
> for LLVM to use server-side hooks? They are available in github enterprise.

It sounds like GitHub folks are very eager to help the LLVM project:
https://twitter.com/natfriedman/status/1086470665832607746 <https://twitter.com/natfriedman/status/1086470665832607746>

Server-side hooks seem like a good solution for what’s being discussed. We should ask GitHub about it.



>> -Tom
> Roman.
> 
>> [1] http://lists.llvm.org/pipermail/llvm-dev/2019-January/129723.html <http://lists.llvm.org/pipermail/llvm-dev/2019-January/129723.html>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190319/46e74ae0/attachment.html>


More information about the llvm-dev mailing list