Apr 13, 2022Julian K. Arni

Updates (April 13th, 2022)

garnix now by default builds the nixosConfigurations, devShells, devShell, and defaultPackage components. We also improved our UI, and started a discord channel.

We've made some changes to the way garnix works recently that we thought we'd share.

Now building more derivationsshare

We've just deployed a new version of garnix that changes what derivations get built. The additions are:

  • defaultPackage: We're accustomed to having defaultPackage.<system> be an alias for a particular package in the packages.<system> attribute set. But a lot of people don't structure their project this way¸ meaning that until now the only thing nix build . builds might not have gotten built by garnix at all!
  • devShell: We now also build the devShell, which is particularly useful in connection to the garnix cache. Relatedly:
  • devShells: We now build all items in the devShells attribute.

This is in addition to the existing behavior, which builds packages, checks and nixosConfigurations. In other words: everything that was previously being build still gets built, plus the above attributes (if they are present).

The old behavior confused a lot of people.

The fact that we now build defaultPackage and devShell mean that if you, like me, alias those to something in packages or devShells, you might get the same derivation showing up with two different names in your builds. But they only get built once, of course.

Nicer logsshare

A week or two ago, we changed how logs are displayed on the site. Previously you'd get the entirety of the logs as text. Now we split the logs into sections, corresponding to nix build phases, and keep them folded.

buildPhase
The spring lingers on
in the scent of a damp log
rotting in the sun
checkPhase
that
was a haiku but
imagine if it were all of the build logs instead:
   endless
       streams of text
    you'd want to hide
        [from]
    sometimes

Usually you'd have more phases, of course. (Sönke Hahn helped with this one.)

Small bug fixesshare

Like filtering out some irrelevant log lines, and getting log outputs in more cases.

We have a new discord server...share

Link. If you have questions about garnix, you can now use this as a more synchronous channel. Or just hang out.

And we have a new blog!share

This is it. You're reading it right now.

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