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