GNU bug report logs - #43494
[PATCH 0/4] Add package and services for the Guix Build Coordinator

Previous Next

Package: guix-patches;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Fri, 18 Sep 2020 18:35:01 UTC

Severity: normal

Tags: patch

Done: Christopher Baines <mail <at> cbaines.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Christopher Baines <mail <at> cbaines.net>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 43494 <at> debbugs.gnu.org
Subject: [bug#43494] [PATCH 2/4] services: guix: Add guix-build-coordinator-service-type.
Date: Sat, 19 Sep 2020 10:13:58 +0100
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Christopher Baines <mail <at> cbaines.net> skribis:
>
>> * gnu/services/guix.scm (<guix-build-coordinator-configuration>): New record
>> type.
>> (guix-build-coordinator-configuration, guix-build-coordinator-configuration?,
>> guix-build-coordinator-configuration-package,
>> guix-build-coordinator-configuration-user,
>> guix-build-coordinator-configuration-group,
>> guix-build-coordinator-configuration-datastore-uri-string,
>> guix-build-coordinator-configuration-agent-communication-uri-string,
>> guix-build-coordinator-configuration-client-communication-uri-string,
>> guix-build-coordinator-configuration-allocation-strategy,
>> guix-build-coordinator-configuration-hooks,
>> guix-build-coordinator-configuration-guile,
>> make-guix-build-coordinator-start-script,
>> guix-build-coordinator-shepherd-services, guix-build-coordinator-activation,
>> guix-build-coordinator-account): New procedures.
>> (guix-build-coordinator-service-type): New variable.
>> * gnu/tests/guix.scm (%test-guix-build-coordinator): New variable.
>> * doc/guix.texi (Guix Services): Document it.
>
> Yay!
>
>> +@subsubheading Guix Build Coordinator
>> +The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build
>> +Coordinator} aids in building derivations.  The Guix Daemon is still
>                      ^
> Maybe something like: “in distributing derivation builds among machines
> running an @dfn{agent}”.
>
> Also, s/Guix Daemon/build daemon/ or similar.
>
> (In general I’m in favor of avoiding “brands” in documentation and
> concept names.)
>
> Maybe add a “@quotation Note” stating that it’s work in progress and
> subject to change.

I've made these changes now.

>> +(define* (make-guix-build-coordinator-start-script database-uri-string
>> +                                                   allocation-strategy
>> +                                                   pid-file
>> +                                                   guix-build-coordinator-package
>> +                                                   #:key
>> +                                                   agent-communication-uri-string
>> +                                                   client-communication-uri-string
>> +                                                   (hooks '())
>> +                                                   (guile guile-3.0))
>> +  (program-file
>> +   "start-guix-build-coordinator"
>> +   (with-extensions (cons guix-build-coordinator-package
>> +                          ;; This is a poorly constructed Guile load path,
>> +                          ;; since it contains things that aren't Guile
>> +                          ;; libraries, but it means that the Guile libraries
>> +                          ;; needed for the Guix Build Coordinator don't need
>> +                          ;; to be individually specified here.
>> +                          (map second (package-inputs
>> +                                       guix-build-coordinator-package)))
>
> Perhaps there should eventually be a ‘guix-build-coordinator’ command in
> the package itself?

There actually is, one thing I've had in mind for a while now though is
to use a scheme script constructed by the Guix service to run the
coordinator.

For guix.cbaines.net, I'm using the script, but with the hooks passed in
on the command line, the command is rather long, and it means that
backtraces don't work well with the hooks.

I'm unsure how well this has worked out, I didn't anticipate the issues
with the Guile load path, and because of the formatting stripping, both
the code and backtraces will be unreadable anyway... but it is useful in
allowing G-expressions to be used as part of the configuration.

> One thing we discussed on IRC is the name and ways to set up one’s
> monitor so that
> guix-build-coordinator-configuration-client-communication-uri-string
> fits on one line.  :-)
>
> An idea that came to mind was “(Guix) dispatch(er)”, which is
> synonymous.  You could use the (guix dispatch …) name space.
> Food for thought!  (No rush, of course!)

Indeed, I think that's a strong candidate :)
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 4 years and 307 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.