Hi Otto,

On 18/11/2024 04:27, Otto Kekäläinen wrote:
Hi!

I was reading https://lts-team.pages.debian.net/git-workflow-lts.html
and have a couple of questions:

1. Why use `debian/.gitlab-ci.yml` instead of `debian/salsa-ci.yml`?

As Sylvain mentioned, that's for historical reasons, as an old script (not used anymore) used to create repositories from scratch, and added that file. Now we prefer to fork the maintainer repository instead, so if that uses debian/salsa-ci.yml, we'll do so too. We could rename things to salsa-ci.yml for existing repos, but I think there's little benefit to justify spending time on that.

The documentation should be updated though, as it mentions salsa-ci.yml in one place, then .gitlab-ci.yml in another.

2. Why run `git checkout -b upstream` and not `git checkout -b
upstream/latest` as per DEP-14?

I don't mind either way, especially if gbp.conf points to the right branch. Which brings us to...

3. Why do you delete `debian/gbp.conf` and then pass all gbp configs
manually each time? Would it not be much easier to replace the
`debian/gbp.conf` with one that includes `debian-branch =
debian/stretch` etc lines?

Agreed. I tend to do that, and wasn't aware that that document suggested to drop that file.

4. Why do you maintain a fork of Salsa CI at
https://salsa.debian.org/lts-team/pipeline? Why not submit all
pipeline improvements upstream to Salsa CI and instead of
https://salsa.debian.org/lts-team/pipeline/raw/master/recipes/buster.yml
use https://salsa.debian.org/salsa-ci/pipeline/raw/master/recipes/buster.yml?

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.

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.

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.

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.

Cheers,
Emilio

Reply via email to