Subject: Re: [PATCH] ci: avoid unnecessary builds

From: Derrick Stolee <[email-masked]>
Date: Mon, 7 Nov 2022 16:59:12 -0500

On 11/7/22 4:03 PM, Ævar Arnfjörð Bjarmason wrote:
> 
> On Mon, Nov 07 2022, Derrick Stolee wrote:
> 
>> On 11/7/22 2:53 PM, Taylor Blau wrote:

>>> I wonder how we should treat Ævar's concerns in this thread. I suspect
>>> that the vast majority of workflows wouldn't be affected, but I don't
>>> want to completely break Ævar's workflow, either ;-).
>>>
>>> Some kind of configuration mechanism like I proposed might be nice.
>>> Thoughts?
>>
>> Taking a look at that sub-thread, I have two thoughts:
>>
>> 1. I don't think supporting a "multiple pushes of WIP work"
>>    scenario is a good use of "free" resources. If you want to
>>    test multiple versions of something, then use multiple
>>    branches (and I think Johannes's patch allows concurrent
>>    builds for distinct branch names).
> 
> The setting Taylor proposed in
> https://lore.kernel.org/git/[email-masked]/ is off by
> default, i.e. it would behave the same way as what Johannes is
> proposing, just give you (well, me) an opt-out from the default, without
> patching main.yml on every branch.
> 
> So it seems like a win-win, why force others to change their workflow?
> Sure, I could push multiple branches, but you could also manually cancel
> your outstanding jobs before re-pushing...
> 
> I agree that cancelling the outstanding job is a better default, and if
> we had to pick one or the other I'd say "sure", but if we can have
> both...

>> Either of these points may have an incorrect assumption, so
>> I'm prepared to be wrong.
> 
> I *think* you're wrong about #2, but I'm not sure either.

At the very least, the configurable option requires fetching the
repo and checking out at least one file. I don't know how much it
actually saves one way or another.
 
> I don't think you can be wrong about #1, "others should change their
> workflow to fit a new worldview" is more of a value-judgment :)

True, but I think that the workflow you are trying to keep valid
is also indistinguishable to the typical flow of force-pushing
during incremental rewrites, so preserving your workflow will
continue to add costs to that behavior.

My value judgement is that experts can adapt their workflows as
situations change for the better of the group.

If the cost of doing the config option version is minimal over
the global concurrency issue, then I say we should go that route.
I just expect it to take up more resources than the strategy
proposed in the initial patch.

I wonder how we could determine this. Should we run a few CI
jobs with some force-pushes in either approach (config turned
off) so we know that cost?

Thanks,
-Stolee