All the commands in the nix.dev documentation are now checked by CI.
The problem is that we have nested shells; which default tooling for this doesn't work. It works on my machine. What left is polishing and adding it to CI
Nix code samples are extracted into a file such that e.g. following nix-build
calls can access those files.
So that we can check that the default.nix
in the document actually works.
We are booting into M1 NixOS!
-
Wifi works. We have to load a custom firmware blob
-
We are trying to upstream everything into nixpkgs.
-
We are working on an installer. Have ISOs in hydra
-
Even further than that: We are creating a custom AsahLinux installer that goes into NixOS immediately. We go from curl to full desktop image in one go. That is the plan. All you need to do for NixOS on mac is run one command.
dream2nix automatically parses your existing projects and automatically creates flakes using the lower level tooling for each language.
We demoed it on the M1 and it worked! wooohooo
Cachix Deploy
Domen has been working on cachix deploy the last year.
Most of the tooling is push-based. Deployed centrally to machines with ssh.
Cachix is a combination of push and pulll..
Machines run simple daemon. pulls from cache and activates.
We still need proper home-manager integeration.
Works with any binary cache; but works well with cachix.
On the other side there is a command
cachix deploy activate
. You generate a json file with nix with agents and store paths. You can run this in CI. But this doesn't trigger a deploy yet.The agent can then poll for updates. E.g. your laptop automatically updates on demand once it has internet again.
This scales to 1000s of machines. First 10 agents are free.