Hello Guix! A couple of months ago, I found myself working on hot fixes for Cuirass, whose repository had been gathering dust for months. One thing leads to another, and I’ve worked on a few improvements recently:
• Guile-Squee (interface to PostgreSQL) now cooperates with Fibers, meaning that ‘exec-query’ is suspendable. • Thanks to advice from Chris Baines, Cuirass now uses a database connection pool instead of the database service thread it used to have. • ‘cuirass remote-server’ and ‘cuirass remote-worker’, the processes in charge of distributing builds remotely and that communicate over ZeroMQ, are now single fiberized processes (this was made possible by making the ‘receive-message’ procedure, built upon Guile-Simple-ZMQ, cooperative). These commands used to spawn a bunch of processes and threads. • Assorted improvements to the web interface and to logging. I’m regularly deploying the latest revision at <https://guix.bordeaux.inria.fr> using the Cuirass channel (I’m purposefully postponing an update of the ‘cuirass’ package until I’ve acquired more experience and confidence.) If you’re running an instance of Cuirass and feeling adventurous, you can try it as well: (cons* (channel (name 'cuirass) (url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git") (introduction (make-channel-introduction "c75620777c33273fcd14261660288ec1b2dc8123" (openpgp-fingerprint "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5")))) %default-channels) With these architectural changes, we should be able to make more visible improvements such as adding web hooks (so a Git repo can trigger a new evaluation), replacing polling with notifications in many cases, adding a Build Coordinator backend (convergence!), etc. See <https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git/tree/TODO>. Contributions welcome! :-) Ludo’.