On 7/30/25 1:15 PM, Ben Cooksley wrote:
If memory serves correctly the general view from that thread could be summarised as: 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. 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.

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.

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)

So this isn't really Gitlab's fault, it is how Plasma has opted to use Gitlab.

Every merge request (everywhere, not just in Plasma) is submitted in a state where the author believes it's ready for merging. The purpose of review is for others to challenge that belief and offer suggestions for improvement. Hence iteration, and avoiding that is impossible for all but the smallest and most trivial merge requests.

You only see this process using a lot of resources in Plasma because Plasma is the largest and most active project in KDE. As I recall, there were similar complaints about Krita and Kstars, which are also large and active projects.

Implicitly punishing projects for success and popularity is a rather perverse incentive, I hope you'll agree!



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.

I think we're all mostly in agreement that running the pipeline n times for n pushes in large and active merge requests is something that doesn't make a lot of sense.

The question is how to improve upon this without throwing the baby out with the bathwater.

Using the Draft flag for such merge requests once it becomes clear that they won't merge immediately is one option. Perhaps there are others, like running pipelines automatically only upon MR submission, and thereafter requiring a fully green pipeline as a prerequisite for merging and starting a pipeline automatically when someone clicks "Set to auto-merge". Lots of options here; we can brainstorm.



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.

There's plenty of blame to go around. We can and should improve this.

From another quarter, an improvement I can envision is not re-running the pipeline on a commit that came from a merge request that already ran the pipeline right before merging. This is wasted work in 100% of cases.


Nate

Reply via email to