Bisecting Nix Configurations

I live my life dangerously. And by that I mean I like to run unstable versions of various software that I use daily and prefer to work as I expect them. Sometimes a change will land and break my workflow, though Nix makes this tolerable since I can always switch back to an older version of my configuration.

Except sometimes the breakage isn't due to a bug but an intentional change in upstream defaults, and in those cases the solution is to update my configs appropriately. The hard part is figuring out how and why they broke especially since I don't always pay close attention to every change landing upstream.

Here's how I used Nix to find out what broke my workflow.

Read more  ↩︎

Steam Deck First Impressions

It's been about two days since I received my Steam Deck, and after a few hours of playing with it, I wanted to write up my very first impressions and thoughts on it. There are tons of professional reviews of it online, but I figured it might be useful if you are impatiently anticipating receiving your own unit and want to know what to expect (or, if you are Valve and you want to get some data points from the eyes of a new user).

I have a more detailed conclusion of my thoughts later on, but in a nutshell, I'm very excited for what the Deck has to offer.

Read more  ↩︎

Crane Support for Alternative Registries and Git Dependencies

Since the initial release of Crane, I've been busy hacking on adding support for building projects which may pull in dependencies from alternative registries as well as git repositories. I wanted to share how it works, so let's dive right in!

Read more  ↩︎

Introducing Crane: Composable and Cacheable Builds with Cargo and Nix

I'm pleased to announce the initial release of Crane: a Nix library for building cargo projects!

In a nutshell it offers:

  • Source fetching: automatically done using a Cargo.lock file
  • Incremental: build your workspace dependencies just once, then quickly lint, build, and test changes to your project without slowing down
  • Composable configuration: split builds and tests into granular steps. Gate CI without burdening downstream consumers building from source.
Read more  ↩︎

Tips and Tricks for Nix Flakes

After working with Nix flakes for a while you develop a sense for how to interact with them in more efficient or ergonomic ways. That said, a number of the interactions I'm about to describe were extremely non-obvious to me, especially as someone who had never peeked at their actual implementation.

This is the cheat-sheet I wish someone had shown me when I first started tinkering with flakes. I hope you find it useful.

Read more  ↩︎