Hi,

Thanks Sylvain and Emilio for providing insight into the history of
the (E)LTS CI pipelines/workflow, explaining that current state is
mostly a consequence of historic state and not the ideal end goal, and
for expressing agreement on key points how to update/streamline it.

It would be nice though to hear more people chime in now, so that if I
go ahead and implement some improvements, it is likely to be useful
and not be blocked later and turn out to be wasted effort.

On Fri, 29 Nov 2024 at 09:46, Otto Kekäläinen <o...@debian.org> wrote:
>
> Hi!
>
> > As the initial author of the fork, I contributed some improvements that I
> > thought would be accepted upstream. However, I didn't think other changes 
> > (such
> > as hacks to support jessie) would be accepted, as some of those hacks had 
> > been
> > removed previously. If the salsa-ci maintainers agree to include some of 
> > those
> > changes, I'd be happy to clean them up and submit them. But we'll still 
> > need the
> > fork unless the salsa-ci project starts to build images for jessie ELTS
> > including freexian repositories, which I'm not sure is going to happen.
>
> I think it is better we all contribute to one pipeline as there is
> only a handful of us volunteers around, at least currently. Thus,
> personally as Salsa CI contributor, I am OK if we now going forward
> keep in Salsa CI postpone dropping support for releases that are
> currently there, i.e. keep Bullseye until 2031-06-30. Resurrecting old
> releases is probably too hard.
>
> Also with my MariaDB packager hat on, it is much easier to do
> security/maintenance updates quickly for 3-8 different Debian and
> Ubuntu releases if there is a minimal amount of process/infrastructure
> changes required per release.
>
> > However, for LTS, we have made changes recently to use the salsa-ci bullseye
> > images, dropping them from our fork. The recipes et al can still be used 
> > from
> > the lts-team/pipeline project though.
>
> We did? Maybe that is easy to still resurrect if it wasn't long time
> ago. Bullseye isn't even ELTS but just LTS now, and I just did two
> months ago 
> https://salsa.debian.org/mariadb-team/mariadb-10.5/-/merge_requests/18
> and all testing was running on Salsa CI as base + per-package
> customizations.
>
> > > 5. Are you aware that the RELEASE does not need to be set manually at
> > > all? You can just keep the existing debian/salsa-ci.yml in the package
> > > and once you add a new changelog entry for stretch/buster/bullseye all
> > > the jobs in the CI pipeline will automatically build and test using
> > > the release in debian/changelog (only exception being Lintian, which
> > > currently always runs the Sid version)?
> >
> > I wasn't aware of that when I did the pipeline fork, that's the reason I 
> > added
> > release-specific recipes. That magic isn't going to work when a changelog 
> > entry
> > contains UNRELEASED though, which is very common. I recently saw some 
> > changelog
> > that had bookworm-security-UNRELEASED or similar, and I didn't think it was 
> > for
> > this reason. However if one uses UNRELEASED, and sid is assumed and the 
> > pipeline
> > breaks in unexpected ways (or worse, passes when it should fail) then 
> > that's a
> > bad assumption, and wouldn't have happened by explicitly setting the 
> > release in
> > the CI config file, or by using a release-specific recipe. Just like we set
> > "branch-name = bullseye" in gbp.conf, instead of relying on guessing the 
> > release
> > from d/changelog.
>
> You are right, when the first upload to a non-unstable is done and the
> most recent entry has UNRELEASED and all entries before it has
> 'unstable', there is no way for the autodetection to know that
> UNRELEASED actually means something else. Using
> 'bookworm-security-UNRELEASED' seems like a good way to solve it.
>
> > To me, the only reason to rely on that automagic is if we drop salsa-ci.yml
> > entirely and use a script to set the CI conf file to
> > `recipes/debian.yml@salsa-ci-team/pipeline' or similar. But then, since 
> > there's
> > no config file in the repository, one cannot tweak things to e.g. ignore one
> > lintian tag, or disable the blhc job, or whatever, so again I don't see the 
> > benefit.
>
> I would recommend to have the salsa-ci.yml file in the package
> explicitly. It is much easier to customize it and fix stuff if the CI
> pipeline is broken. If the CI pipeline is defined centrally, it is
> both invisible to contributors and forks, and it is impossible to fix
> if CI is failng due to CI issue, and then the package will be stuck
> with failing CI and the whole point with CI becomes moot. Also the CI
> config `recipes/debian.yml@salsa-ci-team/pipeline` would apply to all
> branches, and for example run on all pristine-tar branch pushes. It is
> much better to just have a CI file on each branch that controls
> exactly what that branch in that package does for CI.

Reply via email to