Am Wed, Aug 20, 2025 at 11:43:21PM +0200 schrieb Ludovic Courtès:
>   3. Infrastructure: Our infra has been unreliable for months, remaining
>      afloat thanks to a handful of people.  We need more folks on board,
>      and probably more documentation/guidance to make that happen.

This is a topic I have been and remain interested in; see also the
maintenance issues, discussed with Christopher Baines:
   https://codeberg.org/guix/maintenance/issues/13
   https://codeberg.org/guix/maintenance/issues/14

Am Thu, Aug 21, 2025 at 06:23:40PM +0200 schrieb Ludovic Courtès:
> For bordeaux.guix and related services (qa.guix, data.qa.guix,
> data.guix), it’s a bit more involved (and less documented), but that’s
> also because it has a broader scope.  Typically, we should improve
> documentation for this, and I think Andreas was looking into it.

I have started a series of blog posts, which gives a few explanations:
   https://enge.math.u-bordeaux.fr/blog/tbfg-1.html
This is quite different from comprehensive documentation about the
various software modules, and also quite different from a manual for
prospective maintainers of the bordeaux build farm infrastructure.
It is more a hands-on tutorial (written while I learn things myself)
for someone who would like to set up their own little build farm.
So it is neither necessary nor sufficient for taking part in the
infrastructure efforts, but hopefully useful for learning about the
software.

Adding a build machine to the bordeaux farm is probably even easier
than to berlin, since communication is over http and the build machine
does the NAT traversal, if necessary. It boils down to adding a snippet
such as this one to a machine running on Guix:
  (service guix-build-coordinator-agent-service-type
    (guix-build-coordinator-agent-configuration
      (coordinator "https://coordinator.bayfront.guix.gnu.org";)
      (authentication
        (guix-build-coordinator-agent-dynamic-auth-with-file
          (agent-name "name")
          (token-file
            "/etc/guix-build-coordinator/guix-build-coordinator-agent-token")))
      (derivation-substitute-urls
        '("https://data.guix.gnu.org"; "https://data.qa.guix.gnu.org";))
      (non-derivation-substitute-urls
        '("https://bordeaux.guix.gnu.org";))
      (systems '("x86_64-linux" "i686-linux"))
      (max-allocated-builds 16)
      (max-parallel-builds 8)
      (max-parallel-uploads 4)
      (max-1min-load-average 8)))
where the content of the token-file is a shared secret that needs to be
obtained by discussing with the build farm sysadmins.


We might also have to tackle the elephant in the room, that is, whether
instead of running two build farms that work so-so, it would be better
to bundle resources into one. One of the arguments for two build farms
was that this would help us work on reproducibility; but right now we
are held back by infrastructure that does not work well enough to even
solve our daily problems of building out branches and pull requests,
let alone do everything twice. Or alternatively, assign clear and
complementary roles to each of the two build farms.

Andreas


Reply via email to