dgit/debusine integration
The main obstacle to me doing most of my uploads via Debusine is that I already do most of my uploads using dgit, and the two aren't currently very compatible. I'd like to figure out how to improve this.
A brief pitch: debusine.debian.net (wiki documentation) has workflows that allow it to upload a package to Debian for you after it has passed various QA steps. By default these are similar to the ones you'd find in a Salsa CI pipeline, but Debusine is interested in larger-scale tasks than those that make sense as CI for a single repository. The main advantage of uploading via Debusine today is that you can optionally have it run autopkgtests of all your reverse-dependencies. With debusine-client >= 0.10.0
and dput-ng
, you can do this mostly transparently using dput
(although enabling optional features still takes some hacking). Later this year, it should be possible for Debusine to host package repositories, at which point it will be a relatively short step to being able to stage multi-package sets of changes such as library transitions in Debusine.
However, an upload to Debusine is usually at most a conditional upload to Debian, because QA (especially complex cross-package QA) might fail. It therefore doesn't feel sensible to tag a release using dgit and just upload it via debusine.debian.net rather than ftp-master. Of course it's possible to use dgit build-source
to build a source package, use dput
to upload it to debusine.debian.net for QA, and then separately use dgit push-source
once QA passes, but that's kind of clunky. Debusine workflows can stop and wait for various kinds of input; can we use that to do better somehow?
I briefly considered hooking into dgit --damp-run push-source
somehow to make an upload to debusine.debian.net. That would simplify a couple of steps, but it would still leave us with the real push being completely separate, which isn't ideal.
I think ideally we'd figure out how to make this work in conjunction with tag2upload. Conceptually, I'd like to be able to say "I think I'm ready to upload this package to Debian, but I want to run it through larger-scale tests before I do so"; and I'd like those steps to be similar if I'm uploading to a Debusine-hosted repository, or ELTS, or anything like that. There doesn't seem any reason we couldn't use a modern approach for getting source code into the system and have something like git-debpush
be the interface to it, if we can figure out how the conditional-upload nature would work (maybe it would wait and monitor the results of testing, or maybe you'd push a signed tag to some kind of staging area, or some other design I haven't thought of).
Can we discuss how that sort of thing might work and what would need to change on either side? We're fairly flexible about the exact details.
/cc @iwj @spwhitton