| 29 Jan 2026 |
llakala | In reply to @coca162:matrix.org Would it be fine to have to "sync" any edits to the source of truth as a separate action from evaluating the sources? The nice thing with flakes is that they can reflect the changes in flakes.nix without you needing to explicitly tell it to do so as the commands are built to handle it, and I'm not sure if not having that ability would make this worth it. wdym by this | 15:42:43 |
llakala | not fully grasping what you're referring to | 15:42:59 |
Coca | If I edit a file, the lockfile will not be updated to reflect the changes I have done to the source of truth | 15:43:42 |
llakala | ah yeah I see | 15:43:52 |
llakala | yeah I would like autosync | 15:44:28 |
llakala | i mean I think it would be possible to do it with only nix mechanisms | 15:44:43 |
llakala | could you hash the npins.nix and see if the contents differ? | 15:45:09 |
Coca | https://discourse.nixos.org/t/nixtamal-fulfilling-pure-input-pinning-for-nix/74745 funnily I just saw this, so I'm curious how they handle it, unfortunately I cannot comment however due to my trust level so I will just poke around at it | 15:45:15 |
Coca | * https://discourse.nixos.org/t/nixtamal-fulfilling-pure-input-pinning-for-nix/74745 funnily I just saw this, so I'm curious how they handle it, though unfortunately I cannot comment due to my trust level so I will just poke around at it | 15:45:36 |
llakala | i didn't look into nixtimal too much, it only uses derivation fetchers which I find a little silly | 15:46:01 |
llakala | if you wanted to be really crazy, you could have a single npins.nix file with two attrsets within it | 15:47:16 |
llakala | ```nix
{
sources.nixpkgs = {
type = "github";
owner = "nixos";
repo = "nixpkgs";
branch = "nixos-unstable";
};
lock.nixpkgs = {
ref = "some-git-ref-here";
url = "https://github.com/nixos/nixpkgs/some-git-ref-here.tar.gz";
hash = "sha256-blahblahblah";
};
}
``` | 15:50:32 |
llakala | * ```
{
sources.nixpkgs = {
type = "github";
owner = "nixos";
repo = "nixpkgs";
branch = "nixos-unstable";
};
lock.nixpkgs = {
ref = "some-git-ref-here";
url = "https://github.com/nixos/nixpkgs/some-git-ref-here.tar.gz";
hash = "sha256-blahblahblah";
};
}
``` | 15:50:40 |
llakala | god i hate matrix | 15:50:49 |
llakala | anyways in this approach, this file is our only source of truth | 15:51:44 |
llakala | if we have some extra info in lock.nixpkgs, we could probably prevent desync by detecting when the lock and the source disagree | 15:52:43 |
Coca | the issue still pretty much remains, in nix there is no way for us to edit files to update the locks, the user would see the locks are mismatching but they'd still need to do something extra | 15:52:44 |
llakala | In reply to @coca162:matrix.org the issue still pretty much remains, in nix there is no way for us to edit files to update the locks, the user would see the locks are mismatching but they'd still need to do something extra oh yeah wait of course | 15:53:18 |
llakala | I forgot we couldn't edit files in nix | 15:53:23 |
llakala | and I was imagining we could just update the lockfile for the user | 15:53:35 |
llakala | i mean we could error out if there's a desync | 15:53:47 |
llakala | the alternative would be an in-repo minimal executable | 15:54:52 |
llakala | but I guess you couldn't call that from within a rebuild | 15:55:47 |
llakala | so you'd have to use that for all your nix commands, which seems suboptimal | 15:55:58 |
llakala | I'll have to think more about the idea | 15:56:15 |
Coca | (at which point you might as well modify something like nilla to get the full flake package honestly) | 15:58:16 |
Coca | * (at which point you might as well modify something like nilla to get the full flake-like package honestly) | 15:58:36 |
llakala | never, i'm a nilla hater (I think flake-parts-like design sucks, and prefer a simple entrypoint that does as little as possible) | 15:59:16 |
llakala | see also https://github.com/hsjobeki/mana which has some interesting ideas | 16:00:08 |
Coca | will keep it in the back of my head amongst that collection of things... | 16:01:58 |