Subject: Re: [bug#43494] [PATCH 4/4] services: guix: Add guix-build-coordinator-queue-builds-service-type.

From: Ludovic Courtès <[email-masked]>
Date: Fri, 18 Sep 2020 22:31:14 +0200

Christopher Baines <[email-masked]> skribis:

> * gnu/services/guix.scm (<guix-build-coordinator-queue-builds-configuration>):
> New record type.
> (guix-build-coordinator-queue-builds-configuration,
> guix-build-coordinator-queue-builds-configuration?,
> guix-build-coordinator-queue-builds-configuration-package,
> guix-build-coordinator-queue-builds-configuration-user,
> guix-build-coordinator-queue-builds-coordinator,
> guix-build-coordinator-queue-builds-configuration-systems,
> guix-build-coordinator-queue-builds-configuration-system-and-targets,
> guix-build-coordinator-queue-builds-configuration-guix-data-service,
> guix-build-coordinator-queue-builds-configuration-processed-commits-file,
> guix-build-coordinator-queue-builds-shepherd-services,
> guix-build-coordinator-queue-builds-activation,
> guix-build-coordinator-queue-builds-account): New procedures.
> (guix-build-coordinator-queue-builds-service-type): New variable.

[...]

> +@defvar {Scheme Variable} guix-build-coordinator-queue-builds-service-type
> +Service type for the
> +guix-build-coordinator-queue-builds-from-guix-data-service script.  Its

Oh! :-)

‘guix-build-queue’ maybe?  Because after all, it can queue builds coming
from anywhere, not just from the Data Service, right?

It’d be nice to add a sentence or two explaining how the “queue” fits in
the big picture (I’m not quite sure :-)).

> +@item @code{systems-and-targets} (default: @code{#f})
> +An association list of system and target pairs for which to fetch
> +derivations to build.

Cross-compilation target triplets are a notion that’s not available at
the derivation level; it only exists for packages.

Are we mixing things here?

> +@item @code{guix-data-service} (default: @code{"https://data.guix.gnu.org"})
> +The Guix Data Service instance from which to query to find out about
> +derivations to build.

Ah so the queue pulls from the Data Service.  Got it!

> +@item @code{processed-commits-file} (default: @code{"/var/lib/guix-build-coordinator-queue-builds/processed-commits"})
> +A file to record which commits have been processed, to avoid needlessly
> +processing them again if the service is restarted.

Maybe in /var/cache by default, no?

> +  (processed-commits-file
> +   guix-build-coordinator-queue-builds-configuration-processed-commits-file
> +   (default "/var/lib/guix-build-coordinator-queue-builds/processed-commits")))

Maybe “state-file”?  In addition to saving space :-), it’d leave room
for additional bits of state.

That’s all, thank you!

Ludo’.