12 Aug 2021 |
@timdeh:matrix.org | devos was essentially my 3 attempt in 3 years to bring some sanity to the structure of my Nix config | 23:06:46 |
@timdeh:matrix.org | * devos was essentially my 3rd attempt in 3 years to bring some sanity to the structure of my Nix config | 23:06:53 |
@timdeh:matrix.org | and I'm already thinking about what 2.0 will look like :D | 23:07:28 |
ultranix | yeah me similarly, first attempt at using flakes was finally nixflk | 23:07:32 |
@d4hines:matrix.org | In reply to @timdeh:matrix.org indeed, DevOS was more of an attempt at reifying a best practice for a Nix repository. It's hard to grasp a best practice when you barely understand the rules of the game 😅 I'm not sure about this. create-react-app seems like a counter-example. So does cargo for rust. | 23:08:42 |
@timdeh:matrix.org | true, but with nix we don't really have the toolage to make it quite so automatic | 23:09:12 |
@timdeh:matrix.org | although I've been looking at https://github.com/jonringer/nix-template as a potential to bridge this gap | 23:09:36 |
ultranix | flakes kind of skipped over the RFC process, pushed through without finishing it. so its in no man's land and i hear there's still several unsolved issues | 23:09:49 |
@timdeh:matrix.org | yeah, there's a bunch of stuff people aren't happy about, but the ironic piece is that the format hasn't changed since their release. So in practice, they are quite stable 😄 | 23:10:34 |
@timdeh:matrix.org | I think the only breaking change was when epoch was removed, and I think that happened before Eelco even merged it to nixpkgs | 23:11:47 |
@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 of what?
| 23:13:55 |
@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 |