<!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>