Hi,

> >> >> i think the barrier is likely to be "i didnt know you could do that?"
> >> >> rather than "how do i use that?"
> >> >
> >> > Salsa CI is and has always been opt-in.
> >>
> >> oops - i meant the oppposite, ie make people have to opt out of having
> >> it run, rather than have to enable it
> >
> > A human needs to verify that the pipeline passes when it is activated,
> > fix disable it or fix things if the CI isn't green. It does not make
> > sense to activate it unattended, as it would risk causing a lot of
> > failing pipelines and useless noise and a culture where people loose
> > respect for "pipeline greenness".
>
> I dont really understand this point -- is it based on some empirical evidence?

Yes, I don't have any hard evidence to back up a claim about culture
or "respect for greenness", but I hold this view strongly based on
experiences on working in software development both as an engineer and
manager in several very large projects and operations, and
unfortunately have witnessed more than once CI systems loosing their
usefulness and becoming time sinks after respect eroded and people got
used to failing pipelines. I also have the opposite experience from
projects/businesses that did value pipeline greenness highly, and saw
how much less bugs they had and how much faster any new regressions
were fixed in an environment where greenness was respected.

> my opinion is that
> - other than the first "enabling", every pipeline runs unattended
> - people are not going to gain any "respect" for "pipeline greenness" by 
> hiding the pipeline
> - commits that fail the pipeline are still bad if the pipeline didnt run, so 
> why hide that information?
> - if you want people to "respect the pipeline" you want more noise on such 
> bad commits, not less?

CI is a feedback system. Having unattained runs that fail for a long
time is worse than having a situation where a person starts working on
a project, realizes there is no CI, and then activates it before doing
other changes, and potentially uses the feedback to fix some initial
issues or scope down the CI to exclude failures that are unreasonable
for them to fix. If you start off with a CI that has been failing for
a long time, you are kind of forced to do a lot of detective work
regarding the pipeline to check why it was failing yesterday, a month
ago and a year ago and then piece together what the sources of the
regressions were and how to fix it. It is mentally also much harder to
decrease the scope of what testing the CI did if somebody else enabled
it in full earlier, as you need quite a lot of evidence to have the
confidence to disable some jobs. If you are the person activating the
CI in the first place, you will be much faster in fixing it and have
better confidence in doing the right engineering decisions to make it
green.

Also, enabling Salsa CI is very easy: just put commit the template
debian/salsa-ci.yml on a dev branch and push. If it works right away
you can then just merge that commit on debian/latest, and you are
done. The actual time consuming part if fixing the detected failures,
and that is not accelerated by enabling Salsa CI Debian-wide - in fact
the work of getting a CI green is more likely slowed down if the
person who enabled it and the person who is responsible for fixing it
are different people.

Reply via email to