| 25 Nov 2025 |
Atemu | btw. on the topic of flakes: has anyone ever dabbled in re-implementing the flake.nix interface in Nix expressions so that you can eval flakes via plain old regular impure direct eval without all the special bullcrap Nix does to make pure eval work? | 15:17:39 |
piegames | Do we have a command to easily check remote builder connections? If not, can I request that as a feature? | 15:19:23 |
piegames | * Do we have a command to easily check (and debug) remote builder connections? If not, can I request that as a feature? | 15:19:34 |
Sofie 🏳️⚧️ (she/her) | isn't compat basically this but kinda like reversed | 15:25:59 |
Atemu | flake-compat is quite close to what I want but IIRC it still evals the current project "as a flake" and comes with all the stupidity in doing that like depending on my VCS state or copying shit to the nix store unnecessarily | 15:28:00 |
goldstein | I’m doing this basically right now lol | 15:28:32 |
Atemu | but I'll have to take another look | 15:28:33 |
goldstein | I have a program that takes in flakes inputs format, solves them into a flat dependency structure and adds to npins sources.json | 15:28:58 |
goldstein | and then generates appropriate dependency injections so flakes don’t know they aren’t actually being used as flakes | 15:29:16 |
Atemu | Oooh; do you have that published somewhere? | 15:29:42 |
goldstein | not yet, I need to add a bit of polish (like CLI parsing), but I expect to publish it this week | 15:30:13 |
goldstein | also I need to change name generation scheme, because doing npins update unflake_<base64> isn’t really nice lol | 15:31:09 |
goldstein |  Download clipboard.png | 15:31:12 |
Atemu | I want it to be direct and acually work with the flake.nix "standard" such that I can throw it at some local flake project and eval it without flake tooling BS but I'd probably need to solve many of the same issues as you likely have | 15:31:47 |
Sofie 🏳️⚧️ (she/her) | well, the issue is that there's really no "standard" | 15:32:47 |
Atemu | Yeah I know, hence the quotes.. | 15:33:06 |
Sofie 🏳️⚧️ (she/her) | you'd have to solve that but if we are doing that, why not just fix the whole standard | 15:33:07 |
goldstein | I think the big question here is whether you want to respect transitive dependency lockfiles
I explicitly do not respect them (the problem I’m trying to solve is a billion of nixpkgs in my system closure), so I need to do a bit of extra work to re-solve dependencies | 15:33:24 |
goldstein | if you do, then I think just manually dependency-injecting is not that hard | 15:33:41 |
Atemu | What I mean is the structure of the flake.nix; inputs, outputs and the schema of the outputs | 15:33:38 |
Sofie 🏳️⚧️ (she/her) | * | 15:33:39 |
goldstein | if you do not want to respect them, you’ll probably be able to take my solver and just plug in another “backend”, my design is pretty modular | 15:34:49 |
Atemu | Honestly for any remote inputs, it can do pure eval or whatever it wants; I just want nix projects on my local filesystem to function sensibly | 15:35:25 |
Atemu | (Like, what Nix would otherwise do with a flake) | 15:35:50 |
Sofie 🏳️⚧️ (she/her) | Anyways, now that we have a lix committee, times for an proper standard honestly | 15:36:17 |
goldstein | preach
I did so much reverse engineering for this project | 15:36:35 |
Sofie 🏳️⚧️ (she/her) | or at least start work on a RFC or something | 15:36:38 |
Atemu | @goldstein:tty5.dev: Could I DM you an SSH pubkey for access to the WIP code? | 15:37:35 |
goldstein | oh, one more fun fact: flake.nix is semi-implemented in nixlang, see https://git.lix.systems/lix-project/lix/src/commit/27a94369a9a76c7e41220060b85b984e3dc6da4e/lix/libexpr/flake/call-flake.nix | 15:38:56 |
goldstein | I can just DM you the file if you want to, it’s not secret or anything, I just need to polish a bit + write some docs | 15:39:19 |