Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-17 Thread Bas Nieuwenhuizen
On Tue, Dec 17, 2019 at 11:09 PM Marek Olšák  wrote:
>
> Hi Eric,
>
> Does it mean people no longer need push access, because Marge can merge 
> anything?
>
> So any random person can create a merge request and immediately assign it to 
> Marge to merge it?

Per https://docs.gitlab.com/ee/user/permissions.html, only people with
Developer access (which is pretty much what we also use for push
access) can assign merge requests.
>
> Marek
>
> On Fri, Dec 13, 2019 at 4:35 PM Eric Anholt  wrote:
>>
>> I finally got back around to experimenting with the gitlab merge bot,
>> and it turns out that the day I spent a few weeks back I had actually
>> given up 5 minutes before the finish line.
>>
>> Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.
>> How you interact with marge:
>>
>> - Collect your reviews
>> - Put reviewed-by tags in your commits
>> - When you would have clicked "Merge when pipeline succeeds" (or,
>> worse, rebase and then merge when pipeline succeeds), instead edit the
>> assignee of the MR (top right panel of the UI) and assign to Marge Bot
>> - Marge will eventually take your MR, rebase it and let the pipeline run.
>> - If the pipeline passes, Marge will merge it
>> - If the pipeline fails, Marge will note it in the logs and unassign
>> herself (so your next push with a "fix" won't get auto-merged until
>> you decide to again).
>>
>> In the commit logs of the commits that Marge rebased (they'll always
>> be rebased), you'll get:
>>
>> Part-of: 
>> 
>>
>> In the final commit of that MR, you'll get:
>>
>> Tested-by: Marge Bot
>> 
>>
>> I feel like this is a major improvement to our workflow, in terms of
>> linking commits directly to their discussions without indirecting
>> through google.
>>
>> Note that one Marge instance will only process one MR at a time, so we
>> could end up backed up.  There's a mode that will form merge trains,
>> but I don't understand that mode enough yet to trust it. I think for
>> Mesa at this point this is going to be fine, as we should still be
>> able to push tens of MRs through per day.  As we scale up, we may find
>> that we need a separate Marge for piglit and other projects, which I
>> should be able to set up reasonably at this point.
>>
>> Once we settle in with Marge and learn to trust our robot overlords,
>> I'll update the contributor docs to direct people to Marge instead of
>> the "merge when pipeline succeeds" button.  I'm also hoping that once
>> our commit logs are full of links to discussions, we can drop the
>> mandatory squashing of r-b tags into commit messages and thus make our
>> process even easier for new contributors.
>> ___
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-17 Thread Marek Olšák
Hi Eric,

Does it mean people no longer need push access, because Marge can merge
anything?

So any random person can create a merge request and immediately assign it
to Marge to merge it?

Marek

On Fri, Dec 13, 2019 at 4:35 PM Eric Anholt  wrote:

> I finally got back around to experimenting with the gitlab merge bot,
> and it turns out that the day I spent a few weeks back I had actually
> given up 5 minutes before the finish line.
>
> Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.
> How you interact with marge:
>
> - Collect your reviews
> - Put reviewed-by tags in your commits
> - When you would have clicked "Merge when pipeline succeeds" (or,
> worse, rebase and then merge when pipeline succeeds), instead edit the
> assignee of the MR (top right panel of the UI) and assign to Marge Bot
> - Marge will eventually take your MR, rebase it and let the pipeline run.
> - If the pipeline passes, Marge will merge it
> - If the pipeline fails, Marge will note it in the logs and unassign
> herself (so your next push with a "fix" won't get auto-merged until
> you decide to again).
>
> In the commit logs of the commits that Marge rebased (they'll always
> be rebased), you'll get:
>
> Part-of: <
> https://gitlab.freedesktop.org/anholt/gitlab-experiments/merge_requests/3>
>
> In the final commit of that MR, you'll get:
>
> Tested-by: Marge Bot
>  >
>
> I feel like this is a major improvement to our workflow, in terms of
> linking commits directly to their discussions without indirecting
> through google.
>
> Note that one Marge instance will only process one MR at a time, so we
> could end up backed up.  There's a mode that will form merge trains,
> but I don't understand that mode enough yet to trust it. I think for
> Mesa at this point this is going to be fine, as we should still be
> able to push tens of MRs through per day.  As we scale up, we may find
> that we need a separate Marge for piglit and other projects, which I
> should be able to set up reasonably at this point.
>
> Once we settle in with Marge and learn to trust our robot overlords,
> I'll update the contributor docs to direct people to Marge instead of
> the "merge when pipeline succeeds" button.  I'm also hoping that once
> our commit logs are full of links to discussions, we can drop the
> mandatory squashing of r-b tags into commit messages and thus make our
> process even easier for new contributors.
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-17 Thread Eric Anholt
On Tue, Dec 17, 2019 at 9:53 AM Juan A. Suarez Romero
 wrote:
>
> On Fri, 2019-12-13 at 13:35 -0800, Eric Anholt wrote:
> > I finally got back around to experimenting with the gitlab merge bot,
> > and it turns out that the day I spent a few weeks back I had actually
> > given up 5 minutes before the finish line.
> >
> > Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.
> > How you interact with marge:
> >
> > - Collect your reviews
> > - Put reviewed-by tags in your commits
>
> I don't know if this is possible, but another cool improvement would be using
> the approvals feature to replace reviewed-by: a MR should be approved by at
> least one person, and Marge could add this information in the commit as a
> "Reviewed-by" tag. This way, we ensure all MR are reviewed, and we don't need 
> to
> update the MR manually just to ensure a reviewed-by is added.

Approvers is a gitlab EE feature, while freedesktop.org uses the
open-source gitlab CE.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-17 Thread Juan A. Suarez Romero
On Fri, 2019-12-13 at 13:35 -0800, Eric Anholt wrote:
> I finally got back around to experimenting with the gitlab merge bot,
> and it turns out that the day I spent a few weeks back I had actually
> given up 5 minutes before the finish line.
> 
> Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.
> How you interact with marge:
> 
> - Collect your reviews
> - Put reviewed-by tags in your commits

I don't know if this is possible, but another cool improvement would be using
the approvals feature to replace reviewed-by: a MR should be approved by at
least one person, and Marge could add this information in the commit as a
"Reviewed-by" tag. This way, we ensure all MR are reviewed, and we don't need to
update the MR manually just to ensure a reviewed-by is added.


> - When you would have clicked "Merge when pipeline succeeds" (or,
> worse, rebase and then merge when pipeline succeeds), instead edit the
> assignee of the MR (top right panel of the UI) and assign to Marge Bot
> - Marge will eventually take your MR, rebase it and let the pipeline run.
> - If the pipeline passes, Marge will merge it
> - If the pipeline fails, Marge will note it in the logs and unassign
> herself (so your next push with a "fix" won't get auto-merged until
> you decide to again).
> 
> In the commit logs of the commits that Marge rebased (they'll always
> be rebased), you'll get:
> 
> Part-of: 
> 
> 
> In the final commit of that MR, you'll get:
> 
> Tested-by: Marge Bot
> 
> 
> I feel like this is a major improvement to our workflow, in terms of
> linking commits directly to their discussions without indirecting
> through google.
> 
> Note that one Marge instance will only process one MR at a time, so we
> could end up backed up.  There's a mode that will form merge trains,
> but I don't understand that mode enough yet to trust it. I think for
> Mesa at this point this is going to be fine, as we should still be
> able to push tens of MRs through per day.  As we scale up, we may find
> that we need a separate Marge for piglit and other projects, which I
> should be able to set up reasonably at this point.
> 
> Once we settle in with Marge and learn to trust our robot overlords,
> I'll update the contributor docs to direct people to Marge instead of
> the "merge when pipeline succeeds" button.  I'm also hoping that once
> our commit logs are full of links to discussions, we can drop the
> mandatory squashing of r-b tags into commit messages and thus make our
> process even easier for new contributors.
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-16 Thread Michel Dänzer
On 2019-12-13 10:35 p.m., Eric Anholt wrote:
> I finally got back around to experimenting with the gitlab merge bot,
> and it turns out that the day I spent a few weeks back I had actually
> given up 5 minutes before the finish line.
> 
> Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.
> How you interact with marge:
> 
> - Collect your reviews
> - Put reviewed-by tags in your commits
> - When you would have clicked "Merge when pipeline succeeds" (or,
> worse, rebase and then merge when pipeline succeeds), instead edit the
> assignee of the MR (top right panel of the UI) and assign to Marge Bot
> - Marge will eventually take your MR, rebase it and let the pipeline run.
> - If the pipeline passes, Marge will merge it
> - If the pipeline fails, Marge will note it in the logs and unassign
> herself (so your next push with a "fix" won't get auto-merged until
> you decide to again).
> 
> In the commit logs of the commits that Marge rebased (they'll always
> be rebased), you'll get:
> 
> Part-of: 
> 
> 
> In the final commit of that MR, you'll get:
> 
> Tested-by: Marge Bot
> 
> 
> I feel like this is a major improvement to our workflow, in terms of
> linking commits directly to their discussions without indirecting
> through google.

Thanks for setting this up! I think it'll make merging MRs a lot less
painful, and as a bonus make the pipeline finish more quickly on average
(by avoiding useless pipeline runs).


> Note that one Marge instance will only process one MR at a time, so we
> could end up backed up.  There's a mode that will form merge trains,
> but I don't understand that mode enough yet to trust it. I think for
> Mesa at this point this is going to be fine, as we should still be
> able to push tens of MRs through per day.

Yeah, I think we're a pretty long way from that becoming an issue.
Looking at https://gitlab.freedesktop.org/mesa/mesa/pipelines/charts ,
we've had a pretty constant rate of ~10-15 MRs being merged on average
per day this year, and currently the pipeline takes ~20 minutes on
average, allowing up to ~70 MRs to be merged per day.


-- 
Earthling Michel Dänzer   |   https://redhat.com
Libre software enthusiast | Mesa and X developer
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-13 Thread Dylan Baker
Quoting Eric Anholt (2019-12-13 13:35:56)
> Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.
> How you interact with marge:

This is awesome, thanks for hooking this up Eric!

Dylan


signature.asc
Description: signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Merge bot ("Marge") enabled

2019-12-13 Thread Eric Anholt
On Fri, Dec 13, 2019 at 1:35 PM Eric Anholt  wrote:
>
> I finally got back around to experimenting with the gitlab merge bot,
> and it turns out that the day I spent a few weeks back I had actually
> given up 5 minutes before the finish line.
>
> Marge is now enabled for mesa/mesa, piglit, and parallel-deqp-runner.

First surprise!  Two of these repos had "pipelines must pass in order
to merge" unset in their settings, so Marge skipped the tests on her
first merge.  I've now set that (and also the fancy new "enable delete
source branch after merge" setting!) in those repositories.

Hopefully this doesn't break some other workflow.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev