| 26 Nov 2024 |
| tfritz joined the room. | 20:32:00 |
| 27 Nov 2024 |
Leonardo Santiago | I have about 150~ machines under nixosConfigurations in a single flake, and nix flake check takes around 30 minutes to run. Any tips on how to make it faster? | 13:50:59 |
adamcstephens | maybe nix-fast-build? | 14:09:30 |
hexa | wondering how many nixpkgs you are instantiating 🤔 | 14:09:54 |
adamcstephens | is check on a nixosConfig just an eval? | 14:10:38 |
| kis-kis joined the room. | 15:15:22 |
| kis-kis changed their display name from kshabanov to kis-kis. | 15:16:28 |
| Birhaman changed their profile picture. | 19:28:13 |
| Birhaman changed their profile picture. | 19:28:33 |
| Birhaman changed their profile picture. | 19:29:02 |
| Birhaman removed their profile picture. | 19:29:25 |
| Birhaman set a profile picture. | 19:31:40 |
| enderbsd joined the room. | 20:14:35 |
magic_rb | It also builds iirc | 22:51:04 |
| TheDragon left the room. | 23:33:46 |
| 28 Nov 2024 |
| loaonline joined the room. | 02:21:37 |
| sheeeng joined the room. | 07:45:34 |
Leonardo Santiago |
wondering how many nixpkgs you are instantiating 🤔 should be just one, they're all using the same one.
| 13:21:34 |
Leonardo Santiago | *
wondering how many nixpkgs you are instantiating 🤔
should be just one, they're all using the same one.
| 13:21:44 |
Leonardo Santiago |
It also builds iirc
yes, but even with --no-build it's still painfully slow. it's the same default check, and most of the structure should be shared for all of them, it seems to me that nix must be re-evaluating a ton for it to take that much time
| 13:22:48 |
ElvishJerricco | In reply to @o-santi:matrix.org
wondering how many nixpkgs you are instantiating 🤔
should be just one, they're all using the same one.
Just because they're using the same nixpkgs flake input doesn't mean they're using the same nixpkgs instance. Each nixos config by default re-imports nixpkgs (re-evaluates it) so that it can apply its custom nixpkgs.* nixos options to the import | 13:36:58 |
Leonardo Santiago | hmm, but they should all be using the exact same nixpkgs.lib.nixosSystem call. is there any way to avoid re-evaluating nixpkgs? | 13:37:49 |
ElvishJerricco | right but each of those calls does (effectively) import ./. { /* ... */ } in the nixpkgs flake | 13:38:34 |
ElvishJerricco | You can avoid re-evaluating by setting pkgs in the nixosSystem call, I believe. Or by setting the nixpkgs.pkgs nixos option. Either of this will break anything in the nixpkgs.* nixos options (though I think that module yells at you about that now so it'll be obvious) | 13:39:59 |
ElvishJerricco | * You can avoid re-evaluating by setting pkgs in the nixosSystem call, I believe. Or by setting the nixpkgs.pkgs nixos option. Either of these will break anything in the nixpkgs.* nixos options (though I think that module yells at you about that now so it'll be obvious) | 13:40:16 |
ElvishJerricco | that said, I'm not even sure nixpkgs eval is the slowest part tbh. NixOS module evaluation might be worse, and you're not going to get that to be shared | 13:41:15 |
Leonardo Santiago | In reply to @elvishjerricco:matrix.org that said, I'm not even sure nixpkgs eval is the slowest part tbh. NixOS module evaluation might be worse, and you're not going to get that to be shared I imagined it, which is sad. the design is pretty modular, as in, it should be able to evaluate the modules separately and then just re-use them for all configs. I was wondering if there was a way to restructure my code to do it like that. | 13:53:08 |
ElvishJerricco | I mean that's not really possible | 13:53:36 |
Leonardo Santiago | but I don't know enough about the internals of nix flake check for that | 13:53:37 |
ElvishJerricco | any module can affect any other module arbitrarily | 13:53:43 |