May 14, 2022Julian K. Arni

Updates (May 14th, 2022)

We've added support for Mac M1 builds. And you can now configure what gets built with the new garnix.yaml file. In other news, we have started accepting donations via Open Collective!

We have some more updates to share!

Configuration via garnix.yamlshare

You can now pick more precisely what garnix builds with a garnix.yaml file You can find all the details in our docs, but the gist of it is this:

builds:
  include:
    - 'packages.x86_64-linux.*'
    - 'devShell.x86_64-linux'
  exclude:
    - 'packages.x86_64-linux.bar'

There's currently a builds section only, which features include and exclude keys. garnix builds every attribute matching the includes, except for those that match the excludes.

If you have attributes that are okay to fail (devShells, for instance, sometimes are not mean to be built), this can prevent them from causing checks to fail.

Another big thing you can do with this is...

Enabling Mac M1 buildsshare

We now have a M1 server for your builds. The default for garnix.yaml does not include aarch64-darwin, so you'll have to explicitly turn it on to start building on an M1 (by adding e.g. packages.aarch64-darwin.* to the include).

(If you want support for x86_64-darwin (intel Macs) or aarch64-linux say something in one of those links.)

Note that renting Macs is a bit expensive, and scaling them too, so don't turn this on unless you need it, and/or...

Consider donating!share

Right now hosting alone is costing us money that we aren't yet recouping -- and that doesn't include the far more significant development cost.

LunNova got in touch to ask whether they could donate, and that made me think that maybe it's worth experimenting with having garnix be a donation-based service.

Thanks to LunNova and an anonymous donor!

We started an Open Collective account so you can also donate.

Other thingsshare

We changed the structure of our build URLs - if you have links saved, those will need to be updated. Previously the links were rather long, and based on commit, repo, and package rather than unique ID. Thus, this change will allow us to do re-runs in the future.

Continue Reading

Nov 16, 2024Julian K. Arni

We've added incremental compilation to garnix. In this blog, we discuss prior art on incremental compilation in Nix, and describe our own design.

Nov 11, 2024Julian K. Arni

How we designed our private caches.

Aug 27, 2024Julian K. Arni

A short note about custom typing for functions in Nix

View Archive
black globe

Say hi, ask questions, give feedback