[PATCH 0/2] Add the Build Farm Front-End

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Christopher Baines
Owner
unassigned
Submitted by
Christopher Baines
Severity
normal
C
C
Christopher Baines wrote on 4 Sep 2023 14:29
(address . guix-patches@gnu.org)
874jkadsto.fsf@cbaines.net
This is the package and service for the Build Farm Front-End, intended
to replace the Guix Build Coordinator queue builds script, and also
provide a web interface for build farms.


Christopher Baines (2):
gnu: Add bffe.
services: guix: Add bffe-service-type.

doc/guix.texi | 59 +++++++++++++
gnu/packages/package-management.scm | 51 +++++++++++
gnu/services/guix.scm | 131 +++++++++++++++++++++++++++-
gnu/tests/guix.scm | 81 ++++++++++++++++-
4 files changed, 320 insertions(+), 2 deletions(-)


base-commit: 8d70ff3a49f7cdf0eab93b3a1c54ec2f016afc4a
--
2.41.0
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmT1zdNfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9Xdfxg//fPYe1MJv4RaxHlXrxhMv8LhcLc0yLVov
oAiocG08YKqmSjmn92koJ/c6nDCoyHO+b0ggG7PSOx3el+3fXri2cVAe6hMjJuFr
r5rtISCZac9qWe8HyaSeB4+ulnM1TKuAna4Njwt9dcnrBzMiQKWT6Dw29muAQwfB
mLXrCwzuymi3SK6ZGx+mDCVpx6RE7yaoJYQg1JtmrJ8e4DnPsQ+QgtguxphmwN8T
Io2rMKi1NtQmGe8TzqZkQSdrvxSuGLpVQEYI5NzTMrpMEtgE9z++UmN/eIZKGysX
te8F9Q4QFAXih+qOJ7GvIpzjNJT55pFIppcjGQ7wLFri69vrZw0xSGqztoCJbpJn
oBW7vcRyeX6rFAHGWRLW1hJfqKx3Hph+cFiSQGtI8vYTp9eQ7LXHePwAlJS1dWfE
ADSjCAbUxE79APVxQtVRK4WaYxjLz0mj3XalRzUpqXW/m9tkHyveHWsSe7hPV1SA
1Z3vgu9fKLT/yjhANQV4RNZVsookBQo28BlNgUdYU/MkmBzXLA8JYnb1yOqn+bxs
+qsEmGr87/Mf7XcWfY6XeKGaVZRs+VIB4VKFGplVIbVZhsIRuc26HdA1LG5E9bvE
wIPTqJKOrFKw+zE14BiVIRjG4R54qXTU8TBNrKkaCaGyd0zTlvNdfz053MVEpV2S
5NWQzcCrmfQ=
=Q5+y
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 4 Sep 2023 14:32
[PATCH 1/2] gnu: Add bffe.
(address . 65732@debbugs.gnu.org)
cdf0599af2f9636e37b44f489fd2cfef1fcd74cf.1693830767.git.mail@cbaines.net
* gnu/packages/package-management.scm (bffe): New variable.
---
gnu/packages/package-management.scm | 51 +++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (66 lines)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index aa24798071..a49f302bb7 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -961,6 +961,57 @@ (define-public rpm
;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+.
(license license:gpl2+)))
+(define-public bffe
+ (let ((commit "3ce4613908bb4a42494323ef0597f6c3ae2dee24")
+ (revision "1"))
+ (package
+ (name "bffe")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.cbaines.net/guix/bffe")
+ (commit commit)))
+ (sha256
+ (base32
+ "0g7arfl8rwybqpmw8vc16ilvrva1bb435lqgbqypx0nphbcv2pxn"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list pkg-config
+ autoconf
+ automake
+
+ ;; Guile libraries are needed here for cross-compilation.
+ (car (assoc-ref (package-native-inputs guix) "guile"))
+ guile-gnutls
+ guile-json-4
+ guix
+ guix-data-service
+ guix-build-coordinator
+ guile-fibers-1.3
+ guile-prometheus
+ guile-lib))
+ (propagated-inputs
+ (list guile-gnutls
+ guile-json-4
+ guix
+ guix-data-service
+ guix-build-coordinator
+ guile-fibers-1.3
+ guile-prometheus
+ guile-lib))
+ (home-page "https://git.cbaines.net/guix/bffe")
+ (synopsis "Build Farm Front-end for Guix")
+ (description
+ "The BFFE of Build Farm Front-end is an experimental frontend for Guix
+build farms. It works together with the Guix Data Service and Guix Build
+Coordinator to submit builds and monitor the activity.
+
+It functions as a Guile library, with the @code{run-bffe-service} procedure in
+the @code{(bffe)} module as the entry point.")
+ (license license:gpl3+))))
+
(define-public python-anaconda-client
(package
(name "python-anaconda-client")

base-commit: 8d70ff3a49f7cdf0eab93b3a1c54ec2f016afc4a
--
2.41.0
C
C
Christopher Baines wrote on 4 Sep 2023 14:32
[PATCH 2/2] services: guix: Add bffe-service-type.
(address . 65732@debbugs.gnu.org)
516c325562dcee78ef795b98ae0b5d739b790b89.1693830767.git.mail@cbaines.net
This is intended to replace the functionality of the Guix Build Coordinator
queue builds script, and also provide a web interface for build farms.

* gnu/services/guix.scm (<bffe-configuration>): New record type.
(bffe-configuration, bffe-configuration?,
bffe-configuration-package,
bffe-configuration-user,
bffe-configuration-group,
bffe-configuration-arguments
bffe-configuration-extra-environment-variables): New procedures.
(bffe-service-type): New variable.
* gnu/tests/guix.scm (%test-bffe): New variable.
* doc/guix.texi (Guix Services): Document the new service.
---
doc/guix.texi | 59 +++++++++++++++++++
gnu/services/guix.scm | 131 +++++++++++++++++++++++++++++++++++++++++-
gnu/tests/guix.scm | 81 +++++++++++++++++++++++++-
3 files changed, 269 insertions(+), 2 deletions(-)

Toggle diff (314 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index a6b74ce9c7..bf12f8945d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -38083,6 +38083,65 @@ PAM Mount Service
@node Guix Services
@subsection Guix Services
+@subsubheading Build Farm Front-End (BFFE)
+The @uref{https://git.cbaines.net/guix/bffe/,Build Farm Front-End}
+assists with building Guix packages in bulk. It's responsible for
+submitting builds and displaying the status of the build farm.
+
+@defvar bffe-service-type
+Service type for the Build Farm Front-End. Its value must be a
+@code{bffe-configuration} object.
+@end defvar
+
+@deftp {Data Type} bffe-configuration
+Data type representing the configuration of the Build Farm Front-End.
+
+@table @asis
+@item @code{package} (default: @code{bffe})
+The Build Farm Front-End package to use.
+
+@item @code{user} (default: @code{"bffe"})
+The system user to run the service as.
+
+@item @code{group} (default: @code{"bffe"})
+The system group to run the service as.
+
+@item @code{arguments}
+A list of arguments to the Build Farm Front-End. These are passed to
+the @code{run-bffe-service} procedure when starting the service.
+
+For example, the following value directs the Build Farm Front-End to
+submit builds for derivations available from @code{data.guix.gnu.org} to
+the Build Coordinator instance assumed to be running on the same
+machine.
+
+@example
+(list
+ #:build
+ (list
+ (build-from-guix-data-service
+ (data-service-url "https://data.guix.gnu.org")
+ (build-coordinator-url "http://127.0.0.1:8746")
+ (branches '("master"))
+ (systems '("x86_64-linux" "i686-linux"))
+ (systems-and-targets
+ (map (lambda (target)
+ (cons "x86_64-linux" target))
+ '("aarch64-linux-gnu"
+ "i586-pc-gnu")))
+ (build-priority (const 0))))
+ #:web-server-args
+ '(#:event-source "https://example.com"
+ #:controller-args
+ (#:title "example.com build farm")))
+@end example
+
+@item @code{extra-environment-variables} (default: @var{'()})
+Extra environment variables to set via the shepherd service.
+
+@end table
+@end deftp
+
@subsubheading Guix Build Coordinator
The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build
Coordinator} aids in distributing derivation builds among machines
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 99b21f52d8..e9db2a231d 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -140,7 +140,17 @@ (define-module (gnu services guix)
nar-herder-cached-compression-configuration-type
nar-herder-cached-compression-configuration-level
nar-herder-cached-compression-configuration-directory
- nar-herder-cached-compression-configuration-directory-max-size))
+ nar-herder-cached-compression-configuration-directory-max-size
+
+ bffe-configuration
+ bffe-configuration?
+ bffe-configuration-package
+ bffe-configuration-user
+ bffe-configuration-group
+ bffe-configuration-arguments
+ bffe-configuration-extra-environment-variables
+
+ bffe-service-type))
;;;; Commentary:
;;;
@@ -1030,3 +1040,122 @@ (define nar-herder-service-type
nar-herder-account)))
(description
"Run a Nar Herder server.")))
+
+
+;;;
+;;; Build Farm Front-end (BFFE)
+;;;
+
+(define-record-type* <bffe-configuration>
+ bffe-configuration make-bffe-configuration
+ bffe-configuration?
+ (package bffe-configuration-package
+ (default bffe))
+ (user bffe-configuration-user
+ (default "bffe"))
+ (group bffe-configuration-group
+ (default "bffe"))
+ (arguments bffe-configuration-arguments)
+ (extra-environment-variables
+ bffe-configuration-extra-environment-variables
+ (default '())))
+
+(define (bffe-shepherd-services config)
+ (define bffe-package
+ (bffe-configuration-package config))
+
+ (define start-script
+ (program-file
+ "run-bffe"
+ (with-extensions (cons
+ bffe-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 BFFE don't need to be
+ ;; individually specified here.
+ (map second (package-transitive-propagated-inputs
+ bffe-package)))
+ #~(begin
+ (use-modules (bffe)
+ (bffe manage-builds))
+
+ (setvbuf (current-output-port) 'line)
+ (setvbuf (current-error-port) 'line)
+
+ (simple-format #t "starting the bffe:\n ~A\n"
+ (current-filename))
+
+ (apply run-bffe-service
+ (append
+ (list #:pid-file "/var/run/bffe/pid")
+ #$(bffe-configuration-arguments config)))))
+ #:guile guile-3.0))
+
+ (match-record config <bffe-configuration>
+ (package user group arguments extra-environment-variables)
+
+ (list
+ (shepherd-service
+ (documentation "Build Farm Front-end")
+ (provision '(bffe))
+ (requirement '(networking))
+ (start #~(make-forkexec-constructor
+ (list #$start-script)
+ #:user #$user
+ #:group #$group
+ #:pid-file "/var/run/bffe/pid"
+ #:directory "/var/lib/bffe"
+ #:environment-variables
+ `(,(string-append
+ "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+ "LC_ALL=en_US.utf8"
+ #$@extra-environment-variables)
+ #:log-file "/var/log/bffe/server.log"))
+ (stop #~(make-kill-destructor))))))
+
+(define (bffe-activation config)
+ #~(begin
+ (use-modules (guix build utils))
+
+ (define %user
+ (getpw #$(bffe-configuration-user
+ config)))
+
+ (chmod "/var/lib/bffe" #o755)
+
+ (mkdir-p "/var/log/bffe")
+
+ ;; Allow writing the PID file
+ (mkdir-p "/var/run/bffe")
+ (chown "/var/run/bffe"
+ (passwd:uid %user)
+ (passwd:gid %user))))
+
+(define (bffe-account config)
+ (match-record config <bffe-configuration>
+ (user group)
+ (list (user-group
+ (name group)
+ (system? #t))
+ (user-account
+ (name user)
+ (group group)
+ (system? #t)
+ (comment "BFFE user")
+ (home-directory "/var/lib/bffe")
+ (shell (file-append shadow "/sbin/nologin"))))))
+
+(define bffe-service-type
+ (service-type
+ (name 'bffe)
+ (extensions
+ (list
+ (service-extension shepherd-root-service-type
+ bffe-shepherd-services)
+ (service-extension activation-service-type
+ bffe-activation)
+ (service-extension account-service-type
+ bffe-account)))
+ (description
+ "Run the Build Farm Front-end.")))
diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm
index ad0980a10c..240ded4825 100644
--- a/gnu/tests/guix.scm
+++ b/gnu/tests/guix.scm
@@ -37,7 +37,8 @@ (define-module (gnu tests guix)
#:use-module (ice-9 match)
#:export (%test-guix-build-coordinator
%test-guix-data-service
- %test-nar-herder))
+ %test-nar-herder
+ %test-bffe))
;;;
;;; Guix Build Coordinator
@@ -325,3 +326,81 @@ (define %test-nar-herder
(name "nar-herder")
(description "Connect to a running Nar Herder server.")
(value (run-nar-herder-test))))
+
+
+;;;
+;;; Build Farm Front-end
+;;;
+
+(define %bffe-os
+ (simple-operating-system
+ (service dhcp-client-service-type)
+ (service guix-build-coordinator-service-type)
+ (service bffe-service-type
+ (bffe-configuration
+ (arguments
+ #~(list
+ #:web-server-args
+ '(#:port 8767
+ #:controller-args
+ (#:title "Test title"))))))))
+
+(define (run-bffe-test)
+ (define os
+ (marionette-operating-system
+ %bffe-os
+ #:imported-modules '((gnu services herd)
+ (guix combinators))))
+
+ (define forwarded-port 8767)
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (memory-size 1024)
+ (port-forwardings `((,forwarded-port . 8767)))))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (srfi srfi-11) (srfi srfi-64)
+ (gnu build marionette)
+ (web uri)
+ (web client)
+ (web response))
+
+ (define marionette
+ (make-marionette (list #$vm)))
+
+ (test-runner-current (system-test-runner #$output))
+ (test-begin "bffe")
+
+ (test-assert "service running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (match (start-service 'bffe)
+ (#f #f)
+ (('service response-parts ...)
+ (match (assq-ref response-parts 'running)
+ ((pid) (number? pid))))))
+ marionette))
+
+ (test-equal "http-get"
+ 200
+ (let-values
+ (((response text)
+ (http-get #$(simple-format
+ #f "http://localhost:~A/" forwarded-port)
+ #:decode-body? #t)))
+ (response-code response)))
+
+ (test-end))))
+
+ (gexp->derivation "bffe-test" test))
+
+(define %test-bffe
+ (system-test
+ (name "bffe")
+ (description "Connect to a running Build Farm Front-end.")
+ (value (run-bffe-test))))
--
2.41.0
L
L
Ludovic Courtès wrote on 14 Sep 2023 16:58
Re: bug#65732: [PATCH 0/2] Add the Build Farm Front-End
(name . Christopher Baines)(address . mail@cbaines.net)(address . 65732@debbugs.gnu.org)
871qf0ajix.fsf_-_@gnu.org
Hello,

Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (3 lines)
> * gnu/packages/package-management.scm (bffe): New variable.


[...]

Toggle quote (3 lines)
> + ;; Guile libraries are needed here for cross-compilation.
> + (car (assoc-ref (package-native-inputs guix) "guile"))

Rather: (lookup-package-native-input guix "guile")

Otherwise LGTM.

Toggle quote (7 lines)
> + (synopsis "Build Farm Front-end for Guix")
> + (description
> + "The BFFE of Build Farm Front-end is an experimental frontend for Guix
> +build farms. It works together with the Guix Data Service and Guix Build
> +Coordinator to submit builds and monitor the activity.

Looks nice! Have you already deployed it somewhere?

Ludo’.
L
L
Ludovic Courtès wrote on 14 Sep 2023 17:02
(name . Christopher Baines)(address . mail@cbaines.net)(address . 65732@debbugs.gnu.org)
87wmws94sg.fsf_-_@gnu.org
Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (14 lines)
> This is intended to replace the functionality of the Guix Build Coordinator
> queue builds script, and also provide a web interface for build farms.
>
> * gnu/services/guix.scm (<bffe-configuration>): New record type.
> (bffe-configuration, bffe-configuration?,
> bffe-configuration-package,
> bffe-configuration-user,
> bffe-configuration-group,
> bffe-configuration-arguments
> bffe-configuration-extra-environment-variables): New procedures.
> (bffe-service-type): New variable.
> * gnu/tests/guix.scm (%test-bffe): New variable.
> * doc/guix.texi (Guix Services): Document the new service.

Overall LGTM.

Nitpick: you can make lines a bit longer, for instance:

Toggle quote (8 lines)
> +(define (bffe-activation config)
> + #~(begin
> + (use-modules (guix build utils))
> +
> + (define %user
> + (getpw #$(bffe-configuration-user
> + config)))

‘config’ can be moved to the previous line.

Toggle quote (4 lines)
> + (chown "/var/run/bffe"
> + (passwd:uid %user)
> + (passwd:gid %user))))

This can be a single line.

Toggle quote (5 lines)
> + (extensions
> + (list
> + (service-extension shepherd-root-service-type
> + bffe-shepherd-services)

And: (list (service-extension …

Ludo’.
C
C
Christopher Baines wrote on 15 Sep 2023 11:06
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 65732@debbugs.gnu.org)
87fs3fsszp.fsf@cbaines.net
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (14 lines)
> Hello,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> * gnu/packages/package-management.scm (bffe): New variable.
>
>
> [...]
>
>> + ;; Guile libraries are needed here for cross-compilation.
>> + (car (assoc-ref (package-native-inputs guix) "guile"))
>
> Rather: (lookup-package-native-input guix "guile")

I've actually changed this to guile-next now, as the bffe needs the new
scheme custom/soft ports that don't cause issues with fibers.

Toggle quote (9 lines)
>> + (synopsis "Build Farm Front-end for Guix")
>> + (description
>> + "The BFFE of Build Farm Front-end is an experimental frontend for Guix
>> +build farms. It works together with the Guix Data Service and Guix Build
>> +Coordinator to submit builds and monitor the activity.
>
> Looks nice! Have you already deployed it somewhere?

It's been running on bayfront for a while, and manages pages like:


As well as taking over the job of querying the data service for builds
and submitting them to the coordinator.
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmUEHzpfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XdD3w/9F65TsL7n56joI2KKtBGnPeGjnFHfts7X
0wK3vAi8jvDsJeoOcD/L5MybAhQnvKxXUXxgqgRP1jF1KzPOXobwJZ+iGbPCMdAk
AquJbzxWZCzlneU481vb37oXn6S/hA1H+Y7C6XNu7bylvNcVoQwlvP+8DcbfbgYt
N95ErHjsyViYMLkwqHyOO6IVCz5IKki6NXahq6l1Gb3rvCEw3rb+BZ2zYX2/Sa67
7ZhCOgE0MFa9eugG4TdLa4PoHIJfPExxozk/QwoBTYtmL0Ax3REYbS5b9OrUjAvU
wJLhnrPgzpzLYWxw9NHjTGktJmh80ZJGMtSqeW/Lim1WpuT9ykUueMryBqHrWZ2X
M7UAW+uNM/t5e7OqBzzELlqhkNlUS4wJ701rEWi5agXfKT/14eu4+cBSUjxZWTdC
GkKBS4zEnsUF5akIvXotWbpTAZzHnK+oyLa6purvavq8t4zGfRe48geE7ys3QS/9
dTEIjp6oWgLpU1W0mgFwcF3yMcIEls4apd3DS0GYDwiDT3lZlxnXOyCL+4rqKnul
RAnFqml+mjlZe4tKKdZv3texaE3831VCyFmXzsEjluEEG+XURE9LEB5OoGxJXp2H
wdVdFTteVIsGi82k/7jygEQvUpqDpSbZmvEPZAE1PQO7exqyHOnRUYPiuB2Ow7+6
dtLlf3hzPvE=
=PqMf
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 15 Sep 2023 11:09
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 65732-done@debbugs.gnu.org)
87bke3ssst.fsf@cbaines.net
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (43 lines)
> Christopher Baines <mail@cbaines.net> skribis:
>
>> This is intended to replace the functionality of the Guix Build Coordinator
>> queue builds script, and also provide a web interface for build farms.
>>
>> * gnu/services/guix.scm (<bffe-configuration>): New record type.
>> (bffe-configuration, bffe-configuration?,
>> bffe-configuration-package,
>> bffe-configuration-user,
>> bffe-configuration-group,
>> bffe-configuration-arguments
>> bffe-configuration-extra-environment-variables): New procedures.
>> (bffe-service-type): New variable.
>> * gnu/tests/guix.scm (%test-bffe): New variable.
>> * doc/guix.texi (Guix Services): Document the new service.
>
> Overall LGTM.
>
> Nitpick: you can make lines a bit longer, for instance:
>
>> +(define (bffe-activation config)
>> + #~(begin
>> + (use-modules (guix build utils))
>> +
>> + (define %user
>> + (getpw #$(bffe-configuration-user
>> + config)))
>
> ‘config’ can be moved to the previous line.
>
>> + (chown "/var/run/bffe"
>> + (passwd:uid %user)
>> + (passwd:gid %user))))
>
> This can be a single line.
>
>> + (extensions
>> + (list
>> + (service-extension shepherd-root-service-type
>> + bffe-shepherd-services)
>
> And: (list (service-extension …

I've tweaked the formatting as suggested above and pushed this to master
as 82abf6ddadc6139148660440a064e60ae68f238e.

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmUEIDJfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9Xfq3Q/7Br44laeuCOAST1PxK471avshaHNAigIP
i8WZwSczBGr8dzfkEu08OHCjPlJUrdk/spQFFTO0PZbrOa6aRUnPsVqW8rOWpHC2
674LpxvWFyDaAfAeEshUdw1xavKEiQpf+RWoNVBEfhkFM/sV5XNJhgbNrYYY6PHb
iUNEx7KXdkNw7SwxiwLQOB53asd3fJMURqsNqqRVL/4+E7w3IbhFZ2dFM5gxloiQ
Ek2mSFmRc76qYh0HMwDkdieM1nUGYxTZcrrbJCeX3LsPxyzuKZMvdHulMlc5qOwo
fV7oL/TZOGhBHFDOdL+r/59vZdkEAeQc3PDiDt16QKX8nQtmD83VNDdBiCMoU/pT
9IXODLmTk+Uq4JjXwOA7yOKEdSX8JSI4xuqiaLmwGdeErxWiicz4sgO6uBqhRp6M
0DZrgOVCmboANgsR2Sr2cHVet1ofpj6PL9JjDjPZnPQy2vUy+09dTRGcIMXQzxu/
/nUVgQt6y2WUBz5tnT5lDzzaea3xYn/aBANPMTmqhf2sZbNhowsUKZVTZnO3Xp8U
lWxnhHeFuILsl2wEZ0sga6A1pd8ahhjQXWU7qEbqiGneQkn0L1qEJrrDey8DTfDd
DczrgJylUFPXA3aF2acPuHMCbLXQ5Lb2HkL2EeB8OJG4HXwIXzY68V/1KiIi99uJ
yd1JvvIVDBU=
=7s9X
-----END PGP SIGNATURE-----

Closed
L
L
Ludovic Courtès wrote on 17 Sep 2023 12:11
(name . Christopher Baines)(address . mail@cbaines.net)(address . 65732@debbugs.gnu.org)
87sf7dyuqi.fsf@gnu.org
Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (9 lines)
> It's been running on bayfront for a while, and manages pages like:
>
> https://bordeaux.guix.gnu.org/
> https://bordeaux.guix.gnu.org/activity
> https://bordeaux.guix.gnu.org/build/21fa2ed8-b4d0-43ca-8531-e1fa33266708
>
> As well as taking over the job of querying the data service for builds
> and submitting them to the coordinator.

Oh, neat!

Ludo’.
?