| 12 Aug 2021 |
@d4hines:matrix.org | In reply to @timdeh:matrix.org although I've been looking at https://github.com/jonringer/nix-template as a potential to bridge this gap * This seems less than ideal, Imperative shell commands to manage huge boilier plate seems worse than just having less boiler plate/relying on defaults.
The best looking interface into Nix I've seen so far is DevShell. TOML file where you list the packages you need. Amazing! When I figure out how to do overlays consistently, it's going to be awesome. But I have to decide how to do them - Niv or nvfetcher or manually or something else I haven't heard or what?
| 23:14:06 |
@timdeh:matrix.org | you will probably like https://github.com/tweag/nix-ux then | 23:14:44 |
@d4hines:matrix.org | You guessed correctly! | 23:16:00 |
@timdeh:matrix.org | Here's the part you may not fully see yet d4hines. You could easily call nix-template from a derivation builder, thus siezing all the reliability of a nix derivation with a bit more powerful templating abilities | 23:16:16 |
@d4hines:matrix.org | Why is that better than a nix expression function to do it nrdxp ? | 23:17:09 |
@d4hines:matrix.org | Oh, it's a library of those very functions. | 23:17:29 |
@d4hines:matrix.org | As well as a CLI interface. | 23:17:39 |
@timdeh:matrix.org | I was about to add that, in order to truly be ideal, flakes would need some form of input. Although the override-flake args could already be used as a type of input if used cleverly | 23:18:23 |
@timdeh:matrix.org | afor simple things like passing list of usernames on the cli and getting out a coherent template for all three at the end of the build | 23:20:34 |
@timdeh:matrix.org | * for simple things like passing list of usernames on the cli and getting out a coherent template for all three at the end of the build | 23:21:27 |
@timdeh:matrix.org | I've thought about it enough to know that's it's all already technically feasible, but the implementation would end up being very arcane. A better interface would be nice. Which is why I also use and wonder how we could get upstream to approve https://github.com/dramforever/nix-dram | 23:22:28 |
@timdeh:matrix.org | I would make it a DevOS default, but it's not unanimous among the DevOS core team yet | 23:22:45 |
ultranix | i dont understand why nix projects make use of TOML | 23:23:29 |
@timdeh:matrix.org | * I've thought about it enough to know that's it's all already technically feasible (in pure nix I mean), but the implementation would end up being very arcane. A better interface would be nice. Which is why I also use and wonder how we could get upstream to approve https://github.com/dramforever/nix-dram | 23:23:33 |
@timdeh:matrix.org | builtins.fromTOML probably? | 23:24:14 |
ultranix | i would rather configs stay in programmable nix world | 23:24:15 |
@kraftnix:matrix.org | In reply to @ultranix:matrix.org i think yeah you do need some experience with nix to use DevOS, cant just spin it up with a first time NixOS or whatever i started using devos/nixflk after about 3-4months of nix, i first decided to use classic nix and after running into reproducibility problems because of different machines being at different nixpkgs commits because of channels (which was something I knew flakes fixed), i started with a basic flake and quickly looked for a template.
it wasn't the easiest to figure out at the beginning but i think the current state of devos should make it much easier for anyone getting into nix as i think a flake native setup is just easier (and devos/digga brings a lot of things together to make it easy from the onset). i'll get around to redpilling some friends with a devos + home-manager + arch/debian tutorial at some point, cause i think it's a really nice way to interact with nixos overall
| 23:24:32 |
@timdeh:matrix.org | I actually agree, under the condition that the language improves, and or Nickel takes it's place | 23:24:39 |
@d4hines:matrix.org | Nickel would help a lot. But TOML files make me happy because I expect a finite number of options that I could read the docs for in a day or two, whereas a full programming language has no ceiling. Nix expressions aren't really declarative in that sense - they're kind of monadic, like using Haskell functions to build imperative IO programs. | 23:26:48 |
@d4hines:matrix.org | TOML options I can figure out. final: prev: {...}... that's a lot more arcane. | 23:27:51 |
@timdeh:matrix.org | I think toml is great for values that are static by their very nature | 23:28:19 |
@timdeh:matrix.org | But we shouldn't try to force everything Nix into it or we risk losing expressive power | 23:28:34 |
@d4hines:matrix.org | Right. That's why I really like DevShell, because it wraps up the simple stuff in a TOML file with arbitrary nix expressions as an escape hatch. | 23:29:10 |
@timdeh:matrix.org | plus if there was no builtins.fromTOML there would only be builtins.fromJSON 😆 | 23:29:26 |
@timdeh:matrix.org | It's nice to have a human readable/writable format to quickly import from | 23:29:43 |
@d4hines:matrix.org | In reply to @timdeh:matrix.org It's nice to have a human readable/writable format to quickly import from The implication being nix expressions are not some human read/writeable... | 23:30:14 |
@d4hines:matrix.org | In reply to @timdeh:matrix.org It's nice to have a human readable/writable format to quickly import from * The implication being nix expressions are not so human read/writeable... | 23:30:21 |
ultranix | wrapping the stuff is what makes it more difficult for me, because then i got to go understand a bunch of abstraction code to understand nix. its better to just not tackle nix from nothing and RTFM, almost unavoidable | 23:30:56 |
@timdeh:matrix.org | In reply to @d4hines:matrix.org Right. That's why I really like DevShell, because it wraps up the simple stuff in a TOML file with arbitrary nix expressions as an escape hatch. yes devshell is probably my favorite nix proect | 23:30:58 |
@timdeh:matrix.org | I feel like NixOS missed a juge opportunity by coupling the module system so closing with systemd 😥 | 23:31:19 |