<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 7/30/25 9:15 PM, Ben Cooksley wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CA+XidOEyyharCqOuwt0hyfW2MVttxxOQQO9S=0VggrtR-mU7Uw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">On Thu, Jul 31, 2025 at 4:52 AM Harald Sitter
<<a href="mailto:sitter@kde.org" moz-do-not-send="true"
class="moz-txt-link-freetext">sitter@kde.org</a>> wrote:</div>
<div class="gmail_quote gmail_quote_container">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On
Wed, Jul 30, 2025 at 1:25 PM Ben Cooksley <<a
href="mailto:bcooksley@kde.org" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">bcooksley@kde.org</a>>
wrote:<br>
><br>
> On Wed, Jul 30, 2025 at 7:18 PM Vlad Zahorodnii <<a
href="mailto:vlad.zahorodnii@kde.org" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">vlad.zahorodnii@kde.org</a>>
wrote:<br>
>><br>
>> On 7/30/25 9:58 AM, Harald Sitter wrote:<br>
>> > Hey<br>
>> ><br>
>> > So, I need to vent a bit. I am super unhappy
with the manual CI<br>
>> > trigger stuff. Half the time I forget. When I
don't forget I want to<br>
>> > press all the buttons, but I can't because of
the prestage, I usually<br>
>> > sit there for 5 seconds, nothing happens
because the prestage takes<br>
>> > more than 5 seconds, I get distracted and do
something else ... and<br>
>> > forget I wanted to land something at all.<br>
><br>
><br>
> I was working on some merge requests for
sysadmin/repo-metadata just a few hours ago, which only
contains basic linting jobs.<br>
> They were picked up and fully processed in the space of
~30 seconds - total of 6 different linter jobs (so 6
containers spawned in total).<br>
><br>
> All seems quite reasonable for processing turnaround.<br>
><br>
>><br>
>> ><br>
>> > More and more I find myself not caring and
merging without pre-merge<br>
>> > CI. Between the manual triggers, failing
appium tests, and conflicting<br>
>> > merges I just can't be bothered with the CI.
Surely that can't be the<br>
>> > goal here.<br>
>> ><br>
>> > Can we get back a CI that helps?<br>
>><br>
>> Hi,<br>
>><br>
>> Just in case, the automatic CI got disabled because
kwin had too many<br>
>> pipelines and it takes about 10-15 minutes for a
single pipeline to<br>
>> complete.<br>
>><br>
>> There was a long and somewhat heated discussion
about it. We asked to<br>
>> disable automatic CI for kwin specifically, so when
you push to a work<br>
>> branch that is not ready to be merged yet, no CI
resources are wasted.<br>
>> However, instead, automatic CI got disabled for all
Plasma projects.<br>
>> Sorry! :(<br>
><br>
><br>
> Plasma in general was set to manual for all merge
requests because the commentary in that thread made it
appear that the workflows were more Plasma than just KWin.
There are also issues with Appium tests in Plasma Desktop /
Workspace which mean pipelines take an extremely long amount
of time to complete/fail (something on the order of 40-50
minutes if memory serves)<br>
><br>
> The overuse of CI resources by Plasma could in part be
mitigated by marking merge requests that are not ready to
merge as draft, which seems to be a Gitlab feature that is
not in use at all at least if I take a cursory look at
current pending KWin MRs. We already set CI into manual mode
for draft merge requests as a global rule, as well as for
work branches.<br>
<br>
What confuses me right now is whether this is just plasma
being an<br>
active project or gitlab having poor behavior. It occurs to
me that<br>
the former would be solved by giving plasma dedicated plasma
resources<br>
to use, while the latter is a matter of hiring someone to
engineer the<br>
problem(s) with gitlab away.<br>
Both solvable problems though.<br>
</blockquote>
<div><br>
</div>
<div>If memory serves correctly the general view from that
thread could be summarised as:</div>
<div>1) Work branches were basically used to immediately open
merge requests in the majority of cases, so running CI on
pushes to work branches was simply a waste as CI would be
(re-)run on the merge request.</div>
</div>
</div>
</blockquote>
<p>That part seems pretty uncontroversial.<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CA+XidOEyyharCqOuwt0hyfW2MVttxxOQQO9S=0VggrtR-mU7Uw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote gmail_quote_container">
<div>2) Merge requests were used as part of an iterative
development workflow, and as such CI runs on merge requests
were in many cases also useless because the MR was not yet
ready to be merged and was still under active development.</div>
<div><br>
</div>
<div>Because merge requests that aren't actually ready for
final review and then merging cannot currently be
distinguished from merge requests that are not at all ready
and are just collecting comments, the only way to solve for
(2) is to switch CI to manual on merge requests. </div>
<div><br>
</div>
<div>Gitlab already has a mechanism for differentiating
between those two types of merge requests (marking as draft)
however it is not used by Plasma (or at least wasn't on the
two pages of KWin reviews I quickly skimmed)</div>
<div><br>
</div>
<div>So this isn't really Gitlab's fault, it is how Plasma has
opted to use Gitlab.</div>
</div>
</div>
</blockquote>
<p>That's not something that's unique to Plasma in any way.
Sometimes you make a merge request and it quickly gets approved
and merged, sometime it takes a few iterations until consensus is
reached. That's how it works for any reasonably active project
where it's not just one guy pushing straight to master.<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CA+XidOEyyharCqOuwt0hyfW2MVttxxOQQO9S=0VggrtR-mU7Uw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote gmail_quote_container">
<div>If you were to adopt the draft flag on merge requests
that are in that iterative phase and not intended to be
merged then we could look at adjusting how it works.</div>
<div><br>
</div>
<div>Note that this won't do anything to solve broken tests,
or tests that take too long - that is something only Plasma
developers can correct.</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Ben</div>
</div>
</div>
</blockquote>
</body>
</html>