"Squash and merge" on GitHub

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Sat Apr 2 06:45:58 PDT 2016


On Saturday, April 02, 2016 01:18:47 Andrei Alexandrescu via Digitalmars-d 
wrote:
> On 4/2/16 12:36 AM, Jack Stouffer wrote:
> > On Saturday, 2 April 2016 at 03:58:27 UTC, Daniel Murphy wrote:
> >> On 2/04/2016 7:28 AM, Vladimir Panteleev wrote:
> >>> 4. We should use the autotester's auto-merge feature anyway.
> >>
> >> Can we disable both and force everyone to use the autotester?
> >
> > Yes, you can take away everyone but the auto-tester's merge rights.
>
> Actually that might be a good setup. We'd need an escape hatch for a
> small circle, and control over the autotester. Also we'd need to make
> the autotester work with all repos. -- Andrei

While it sounds like a good idea in theory, I question that it's worth it.
Almost always, committers are already merging using the autotester, so I
don't think that we actually have a problem here. And there are definitely
cases where you _need_ to merge stuff without the autotester (primarily
because you end up with commits in different repos that depend on each other
to avoid breaking the build). The "small circle" with full commit access
would presumably solve that problem, but then you'd be stuck waiting for
them whenever there was a set of PRs in that boat, which risks creating
another bottleneck. In practice, in may not be a problem (especially since
PRs like that are fairly rare, and they usually involve folks who would
probably be in the small circle anyway), but since we don't really have a
problem with folks skipping the autotester, I'm not sure that it's worth
going through the trouble.

Another thing to consider is that - as Vladimir points out - currently the
autotester commits with the commiter's account and not with a separate one,
and that's not just an implementation issue. It's also an accountability
issue. Right now, because of how the autotester does the merge, you can see
who did it in the commit log. But if the autotester does the commit with its
own account, how do you then figure out who did the merge? Would we have to
have a separate log in the autotester to tell us? Do you have to know which
PR it went with to see the comment in github? Right now, if a committer
starts misbehaving, you can easily see that in the commit logs, and it's
easy to see their name in the messages that github sends when a merge is
done. We lose that if the autotester merges with its own account.

So, I'm inclined to think that while forcing the restriction on merging via
the autotester might be a good idea on the surface, it's actually a bad idea
when you get down to the details. And enforcing it via social policy has
worked well overall thus far.

- Jonathan M Davis



More information about the Digitalmars-d mailing list