<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.Code, li.Code, div.Code
        {mso-style-name:Code;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:9.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
.MsoPapDefault
        {mso-style-type:export-only;
        margin-top:6.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:0cm;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:12.0pt">I rather agree with Tamar here.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">Not everyone can press the “commit to master” button.  (They were previously called “people with commit rights” but now I’m not sure what the appropriate name is.)  For those who do have such access, I think
 we should trust them to pull the trigger only when appropriate.  Yes, there will be errors of judgement sometimes – I have been guilty of such myself – but particularly with our new CI checks, these errors seldom harm others for long, and can be corrected
 by a subsequent commit.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">By contrast, the frustration that Tamar describes can be quite demoralising, when (entirely without anyone intending this to happen) some small commit is unreasonably delayed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">We rely very strongly on people’s willingness to contribute, and should strive at every opportunity to remove barriers to doing so.   I suggest we just trust people’s judgement, backed by a CI validatation
 check.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">Simon<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> ghc-devs <ghc-devs-bounces@haskell.org>
<b>On Behalf Of </b>Phyx<br>
<b>Sent:</b> 26 January 2019 19:43<br>
<b>To:</b> Matthew Pickering <matthewtpickering@gmail.com><br>
<b>Cc:</b> GHC developers <ghc-devs@haskell.org><br>
<b>Subject:</b> Re: [GitLab] Introducing Marge-bot<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
> I also don't think one should be allowed to approve their own<br>
> PR. If it is trivial enough to justify a self-accept then someone else<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
> should also be able to trivially accept it. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
<o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
I disagree whole heartedly, as someone who's had to wait weeks for trivial patches to get reviews no thanks.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
We should have a  formal definition of what is allowed to get committed as trivial much like a lot of open source<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
projects do and go from there.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
<o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
I prefer a practical workflow, not just one that works for areas of the compiler where you have many people working,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
It's a very frustrating experience otherwise.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
<o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
Tamar.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
<o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
On Wed, Jan 23, 2019 at 9:29 AM Matthew Pickering <<a href="mailto:matthewtpickering@gmail.com">matthewtpickering@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal" style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
It seems that in order for marge-bot to work best we need to<br>
tighten up our policy towards merging so that it is only Marge<br>
who performs the merges. I think Marge gets confused if people<br>
push to master under her feet which means rebasing again and duplicating work.<br>
<br>
Can we disable the "Merge when pipeline succeeds button" in order to<br>
facilitate this?<br>
<br>
I also don't think one should be allowed to approve their own<br>
PR. If it is trivial enough to justify a self-accept then someone else<br>
should also be able to trivially accept it.<br>
<br>
Therefore I believe the correct workflow is:<br>
<br>
1. Make a MR and assign it to someone if you want their specific review.<br>
2. When the MR has been approved, the approver assigns the MR to marge.<br>
3. Marge then performs the merge in her own time.<br>
<br>
Cheers,<br>
<br>
Matt<br>
<br>
On Tue, Jan 22, 2019 at 8:31 PM Ben Gamari <<a href="mailto:ben@well-typed.com" target="_blank">ben@well-typed.com</a>> wrote:<br>
><br>
> Hi everyone,<br>
><br>
> As you might have noticed there is a new face on GitLab: Meet<br>
> @marge-bot.<br>
><br>
> Marge will be helping us with the pain of merging merge requests:<br>
> Currently the typical workflow to merge an accepted MR involves the<br>
> following:<br>
><br>
>  1. Rebase the MR on top of the current `master` branch<br>
>  2. Click on the "Merge when pipeline succeeds" button<br>
>  3. Wait.<br>
>  4. If another MR is merged before yours, return to step (1)<br>
><br>
> Given the volume of patches that we have, this process gets tiresome<br>
> quite quickly. Upstream knows [1] about this issue and is actively<br>
> working towards a solution which will likely be ready in a few months.<br>
><br>
> In the meantime, Marge automates this currently-manual process. With<br>
> Marge merging a patch involves just two steps:<br>
><br>
>  1. Ensure that the MR has at least one approval. This should happen in<br>
>     the course of normal review but ping @bgamari, @alpmestan, @osa1, or<br>
>     @tdammers if this was forgotten.<br>
><br>
>  2. Use the "Assignee" field in the sidebar on the right side of the MR<br>
>     to assign it to @marge-bot.<br>
><br>
> Once Marge notices your MR she will dutifully watch over it, rebasing it<br>
> as necessary until it is merged. If something goes awry, she will leave<br>
> a (hopefully) helpful message and assign the MR back to you.<br>
><br>
> So far Marge has been working out reasonably well and seems to be an<br>
> improvement over the status quo. However, she still has some quirks so<br>
> let me know if you think she is behaving erratically or otherwise have<br>
> questions.<br>
><br>
> Cheers,<br>
><br>
> - Ben<br>
> _______________________________________________<br>
> ghc-devs mailing list<br>
> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
> <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7Cc4c02ffbc7084916e7e208d683c68d08%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636841286138065701&sdata=ybQClPJNmWzmiD3Yur5VyfjN%2BCTNWtMDR1%2F928aUn60%3D&reserved=0" target="_blank">
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7Cc4c02ffbc7084916e7e208d683c68d08%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636841286138075705&sdata=sJcidhcUoDS2pdvvCM7OXebzN7Bz2j9Sj3PpgAIoZcg%3D&reserved=0" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</body>
</html>