| 20 Apr 2025 |
tomberek | I have explored a concept before where a flake could be composed of multiple sub-components that had inter-related inputs. It is different from what are normally called sub-flakes, but I think is closer to what people are expecting them to be. I called it "crystals" and the initial proof-of-concept was a relatively simple matter of searching through a source tree for all crystal.nix files and merging their inputs into the root's lockfile: https://github.com/flox/nix/commit/8a684bdee6009e6375e855ed79bb9c532dae805c . | 16:50:24 |
tomberek | Inputs would "bubble-up" into the root lockfile to store a canonical lock, and also "bubble-down" as inputs available for each sub-crystal to use. | 16:51:59 |
| 21 Apr 2025 |
Las | there really needs to be better docs on how to calculate placeholder paths | 12:50:36 |
flokli | In reply to @Las:matrix.org there really needs to be better docs on how to calculate placeholder paths https://snix.dev/rustdoc/src/nix_compat/store_path/utils.rs.html#205-209 | 17:38:22 |
Las | is this for CA too? | 17:38:51 |
flokli | No idea | 17:40:31 |
Martin Schwaighofer | In reply to @Las:matrix.org is this for CA too? This helped me implementing the CA ones: https://github.com/puckipedia/tarnix/blob/canon/ca-placeholder.nix | 17:45:14 |
Las | this is cursed | 17:46:42 |
puck | ^_^ | 19:14:37 |
puck | most of the logic in that file is to properly adjust stringLength output to the post-substitution paths, even, the actual logic there is like three lines | 19:18:01 |
| 22 Apr 2025 |
jaen | In reply to @tomberek:matrix.org I have explored a concept before where a flake could be composed of multiple sub-components that had inter-related inputs. It is different from what are normally called sub-flakes, but I think is closer to what people are expecting them to be. I called it "crystals" and the initial proof-of-concept was a relatively simple matter of searching through a source tree for all crystal.nix files and merging their inputs into the root's lockfile: https://github.com/flox/nix/commit/8a684bdee6009e6375e855ed79bb9c532dae805c . Interesting, but I think this loses the useful property of scoping inputs to some subflake, such as development inputs. For this to be equivalent, I think it would have to have some concept of development (name to be biskeshed) inputs that are only fetched if actually used (e.g. a devshell using them is entered or something). Not sure how much more complex this would have made the implementation. | 07:01:37 |
flokli | This is the dependencies / devDependencies problem, and whether to transitively propagate dev dependencies inputs | 10:06:56 |
flokli | I'm not sure there's been some scoping out around this yet, but it's one of the issues with the current design. | 10:13:23 |
sterni (he/him) | Any ideas what change this could be related to? Is this a bug or where there conscious changes to restrict-eval? I looked at the changelogs but nothing jumped out to me (maybe the relative flake change?) https://github.com/NixOS/nixpkgs/issues/400784 | 10:15:13 |
dramforever | can you try nix-shell -i bash -p coreutils jq nix -I nixpkgs=.? | 10:59:59 |
dramforever | * can you try nix-shell -p coreutils jq nix -I nixpkgs=.? | 11:00:16 |
dramforever | sorry, edited | 11:00:21 |
sterni (he/him) | sure, that works fine | 11:01:17 |
dramforever | and then also bash {that script} | 11:01:22 |
dramforever | but with the dependencies in $PATH | 11:01:35 |
dramforever | in like nix shell or something | 11:02:27 |
dramforever | well, it's supposed to fail pretty fast right? if so i can't reproduce this problem | 11:04:14 |
dramforever | i'm on aca270648eca which is latest master of writing | 11:06:18 |
sterni (he/him) | hmm I can with nix-instantiate --eval --option restrict-eval true -I . ./maintainers/scripts/haskell/transitive-broken-packages.nix on current master | 11:08:40 |
sterni (he/him) | it's possible that it's because of a daemon / frontend version mismatch then | 11:09:10 |
dramforever | it hasn't finished but it's doing something for me and hasn't failed yet | 11:09:26 |
sterni (he/him) | then it works :) | 11:09:35 |
sterni (he/him) | I'll ask the other Haskell ppl if no one else can repro it, it doesn't matter probably the daemon | 11:10:03 |
dramforever | maybe there's some funny impurities? | 11:11:06 |
dramforever | what's your nixpkgs commit, and what does which nix say? | 11:16:31 |