A year ago I found myself with some free time around the holidays which was the perfect opportunity for tinkering with Nix and cargo. What started out as a weekend learning project shaped up so nicely that I decided to share it with the world, and here we are a year later.
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.
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.
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!
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.