Hello Guilers! (And hello Guix—that’s about an interesting use case. :-)) Back in 2009, together with Rob Vermaas of NixOS, we set up continuous integration for Guile (among other GNU packages), using Nix coupled with Hydra, its continuous integration (CI) system: https://lists.gnu.org/archive/html/guile-devel/2009-11/msg00084.html The CI jobs still exist although they’ve been bitrotting for ~10 years: https://hydra.nixos.org/jobset/gnu/guile-2-0 https://git.savannah.gnu.org/cgit/hydra-recipes.git/tree/guile/release.nix Ten years ago is when I embarked on this side project *cough* called Guix (Guix = Guile + Nix, see?). To close the loop, it’s natural to reinstate CI, but this time with Guix and Cuirass, its companion CI tool—Guile code all the way down! You can see these new CI jobs on the build farm of the Guix project: https://ci.guix.gnu.org/jobset/guile (Speaking of which, I hereby ask fellow Guix hackers to voice any concerns they may have regarding this use of project resources.) Code for these jobs is currently in a Guile branch: https://git.savannah.gnu.org/cgit/guile.git/log/?h=wip-cuirass-ci This branch brings several things: 1. The ‘guix.scm’ file at the top can be used to spawn a shell with a development environment for Guix: guix shell It can also be used to (cross-)build Guile, as in: guix build -f guix.scm --target=x86_64-w64-mingw32 2. ‘build-aux/manifest.scm’ defines a Guix “manifest” for several Guile builds we may want to test: building with Clang, cross-compiling to MinGW and RISCV and whatnot, building with ‘--disable-threads’, etc. 3. There’s a ‘.guix-channel’ file at the top, meaning that Guile can be used as a Guix “channel” providing additional packages. You’d do that by having something as following in ~/.config/guix/channels.scm and then running ‘guix pull’: (cons (channel (name 'guile) (url "https://git.savannah.gnu.org/git/guile.git") (branch "wip-cuirass-ci")) %default-channels) This is arguably the weirdest part, but that’s how we get Cuirass to consume Guile. There’s still much tweaking we can do, but the basics are in place, and I find it pretty cool. :-) If there are no objections, I’ll merge this branch into “main”. It’s going to be nice to have a dashboard to look at before the next release! Feedback welcome! Ludo’.