guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The Guix Build Coordinator in 2021


From: Ludovic Courtès
Subject: Re: The Guix Build Coordinator in 2021
Date: Wed, 10 Feb 2021 23:29:47 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Hi!

Mathieu Othacehe <othacehe@gnu.org> skribis:

> We are now in a situation where our continuous integration system,
> while performing better and better is getting out of hand. Here are the
> different software I'm keeping track of:
>
> * Cuirass, deployed on ci.guix.gnu.org
> * The Guix Build Coordinator, deployed on guix.cbaines.net
> * The Guix Data Service, deployed on data.guix.gnu.org
> * Patchwork, deployed on patchwork.cbaines.net

I can see why one would think things are getting out of hands, or at
least that we have prolific developers.  :-)

Still, these four things play different roles: the Coordinator “just”
build things in a distributed fashion, the Data Service evaluates
channels and stores metadata, while Patchwork does patchy things.

Cuirass is in-between because it evaluates things, distributes builds,
and stores metadata.  It made sense to bundle functionalities like this,
because that’s the subset we’re interested in (build stuff, distribute
builds, provide some metadata useful for QA).

The Coordinator/Data Service split is a nice separation of concerns IMO.
Each is good at doing its job; the combination isn’t quite comparable to
Cuirass because it’s more generic, but similar information and actions
are available.

> All those services have databases, using different DBMS on different
> servers. Those databases are sometimes overlapping, in the same way as
> some of the features of those software.

Maybe it’s OK to have multiple databases?  The daemon has one too.  :-)
It can be seen as an implementation detail.

(Plus, I’m told that microservices are hype.)

> In particular I feel that what's implemented in the Guix Build
> Coordinator can be seen as a subset of Cuirass functionalities. As you
> know, I'm reluctant to the idea of connecting Cuirass to the Guix Build
> Coordinator, because most of Cuirass PostgreSQL database content would
> be duplicated in the SQLite database of the GBC.

Does it really need to be duplicated though?  Maybe Cuirass could keep
links to Coordinator builds, just like it doesn’t duplicate the store
database.

> On the other hand, maintaining those two software in separate ways seems
> like a huge waste of time given the very limited number of people
> contributing the maintenance of the CI system.
>
> Furthermore, some of the features we are implementing here, should be
> part of the "guix-daemon" itself, which makes me think that we should
> not place too much effort in their development.

Yeah, but we need to go incremental IMO.  The daemon rewrite is a bit of
a jump, which is why it hasn’t gone anywhere yet.  In the meantime, I
think it’s OK to daemon-like functionality elsewhere; perhaps that’ll be
reused eventually in the daemon.

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]