On 23 Feb 2021, at 22:51, Johannes Schauer Marin Rodrigues <jo...@debian.org> 
wrote:
> 
> Hi Roger,
> 
> Quoting Roger Leigh (2021-02-23 22:41:32)
>> On 22 Feb 2021, at 12:00, Johannes Schauer Marin Rodrigues 
>> <jo...@debian.org> wrote:
>>> 
>>>>> Michael, your change in qemu introduced this problem. Schroot is currently
>>>>> orphaned. Since you are responsible for this change in qemu, could you 
>>>>> make an
>>>>> NMU of schroot with above fix? Thanks!
>>>> 
>>>> Oww.. orphan.. that's pity.
>>> 
>>> Indeed. On the plus side, it means we can just NMU things without waiting 
>>> for
>>> maintainer action. ;)
>> 
>> You can always open a MR against the upstream GitLab repo (branch
>> schroot-1.6) for any modifications you make to the code (not the Debian
>> packaging).  https://gitlab.com/codelibre/schroot
>> <https://gitlab.com/codelibre/schroot <https://gitlab.com/codelibre/schroot>>
> 
> cool to hear from you again! And nice to see that there are new commits in the
> upstream git repo. :)
> 
> Also feel free to ping me once there is a new schroot upstream version that
> needs packaging.

I was having a think about this last night.  To be completely realistic, 
schroot maintenance is very low on my list of my priorities.  Work on it is 
sporadic at best.  My interest in it is also fairly low.  I’ve moved on to 
other things.

I don’t think that something which is not maintained or well supported should 
be used as a critical part of the Debian build infrastructure, and honestly, | 
think you should take steps to remove it entirely.  It was a nice tool, it 
served its purpose, but it is dated and limited, and has been completely 
eclipsed by Docker.  If you can switch over to using Docker, I think you should 
make an active effort to do so.

I would also make the same case for sbuild and buildd.  They are also 
thoroughly obsolete and could be removed.

Now that you have GitLab on salsa, how much work would it be to:

* create a “package-build” group owned by the current buildd admins.
* hook up all the current build slaves as “runners” owned by that group.  
* create a “build-image” project which will use GitLab CI to build a minimal 
docker image for each architecture as separate jobs (can be stored in the 
gitlab docker registry).  Have it regenerate the image weekly.  Have branches 
for stable/testing/unstable.
* create a “build” project which will do the package build.  Use GitLab CI, 
with the container images from the previous job, install build-deps, do the 
build and upload.

The latter can be parameterised and triggered for a given suite/package/version 
with a webhook.

That would be several orders of magnitude simpler and more maintainable than 
sbuild and buildd.  Just a handful of lines in a .gitlab-ci.yml and supporting 
shell script.  If you can do that, I think that would be a much better strategy 
for the future.  The existing tools are over 25 years old and long past due for 
complete replacement.  schroot was an means to extend their life back in 2005.  
The current GitLab CI capabilities make most of their functionality redundant, 
and it would make sense to take advantage of that where possible.  It will 
handle job scheduling, build log storage and browsing, everything that buildd 
currently does.  No need for a separate database to track the archive state.  
Simply have the archive call a webhook when a new source package is uploaded 
and trigger a full build.  It would also remove polling from the equation and 
have every action be an immediately schedulable push action.  GitLab CI can 
make full use of all the connected runners, including parallelisation.

Please feel free to forward to anyone else who might be relevant like 
buildd-tools or archive people.


Kind regards,
Roger

Reply via email to