Planet Guix

Measuring CI budgets with Guix and Grafana before setting quotas

Emma does several jobs for me. It runs Cuirass for Guix builds and a Forgejo Actions runner, and I would like to add more services without discovering too late that CI ate the machine. My first instinct was to give each workload a quota: 11 GiB and four CPU cores for builds, 2 GiB and one core for the runner. Those are useful planning numbers, but applying them before measuring the jobs would have been guesswork.

Extending Guix

Guix is all about empowering people, so it should come as no surprise that one can extend it with new guix commands . You can show the commands available in your current Guix through the help command: $ guix help If you are using a recent Guix, there are a number of extensions at your disposal, they are available as individual packages, and as a meta-package providing a collection of extensions . Try them out with: $ guix shell guix guile guix-extension-collection I'm adding the guix and guile …

Deploying Guix images on Linode

Today, I find myself migrating from Digital Ocean to Linode (now Akamai Cloud but I’m never gonna really call it that) because, among other things, Digital Ocean recently donated $3 million USD to Omarchy, a slop distro for fascists. Raising money for free and open source software development is hard so it’s pretty cool when some guy who doesn’t even write code anymore gets dump trucks of money for nothing while honest projects compete for peanuts from small grant funding organizations. But anyway!

Demystifying complex configurations

Guix system and Guix home introduce the concept of services. These provide users with a way to control background processes, commonly refereed as daemons , as well as ways of controlling the setup of files. For example, openssh-service-type is a service which controls a SSH daemon. In contrast, etc-service-type is a service that populates the contents of the /etc directory. One peculiarity of Guix services is that it's customary to provide Scheme bindings for the different fields. By that I mean that the different fields of the configuration of most services will be a…

Shepherd, not robot

This project, its code and its substance, have been brought to you by a small but dedicated herd of passionate and possibly stubborn human beings often referred to as “hackers.” This is how it all started more than 20 years ago and it hasn’t changed! I mean, why hack an init system, with a fringe programming language (best of breed, I must say), and with cutting-edge technology if not out of a passion for the good hack? Why make it free, with participation open to all, if not to share that passion with anyone curious enough?