| 8 Dec 2025 |
goldstein | (feel free to redirect me to the dev channel if it’s more appropriate there)
hi! I’ve found a divergence in behaviour between Lix and CppNix. when using fetchTree with git flakeref + ?ref=refs/tags/something, Lix and CppNix set the resulting .rev differently: Lix sets it to the hash of the tag itself, while CppNix sets it to the hash of the commit behind the tag. on the first glance, CppNix behaviour seems more sensible to me, since rev is usually the commit hash, but I’d like to know if it’s intentional. if it’s not, I’ll try to fix it. | 17:00:28 |
Rutile (Commentator2.0) feel free to ping | this is known: https://git.lix.systems/lix-project/lix/issues/520 | 17:07:19 |
goldstein | thanks for the link! | 17:07:45 |
Rutile (Commentator2.0) feel free to ping | you're welcome ^^ | 17:07:54 |
goldstein | not sure if it’s the same issue though? this talks about representing locked inputs via ref vs. rev. I’m talking about getting different rev’s from fetchTree. | 17:09:42 |
goldstein | I’ll try to make an example | 17:09:48 |
Rutile (Commentator2.0) feel free to ping | oh | 17:10:02 |
goldstein | e.g.
Lix 2.95.0-pre20251128-dev_d5d03cd
Type :? for help.
nix-repl> (builtins.fetchTree { type = "git"; url = "https://codeberg.org/golds
tein/nix-tag-fetch-demo"; ref = "refs/tags/tag"; }).rev
"047e5dffbba66b5eb0c1d8db04f661997fb825af"
vs
Nix 2.31.2
Type :? for help.
nix-repl> (builtins.fetchTree { type = "git"; url = "https://codeberg.org/goldstein/nix-tag-fetch-demo";; ref = "refs/tags/tag"; }).rev
"7e6de55d9af75b3647c91f7e939107fcb3c8f196"
| 17:12:22 |
goldstein | 047... is the hash of the tag object, 7e6... is the hash of the tagged commit | 17:18:36 |
KFears (burnt out) | AFAIK flake lockfiles and fetchTree are basically the same thing and the same codepath, so this might very well be the same issue | 17:33:40 |
aloisw | In the linked issue, it's rev/ref though, not different hashes. | 17:34:54 |
goldstein | I’m not sure I follow. it is the same codepath, but the divergences seem different: the linked issue is whether Lix chooses to emit ref or rev, while my example is which rev gets returned | 17:35:00 |
| νεολαμπής [he/him] changed their profile picture. | 17:57:40 |
goldstein | okay, I tried and failed to find an existing issue, so I’ve created one: https://git.lix.systems/lix-project/lix/issues/1070 | 18:31:11 |
Rutile (Commentator2.0) feel free to ping | are you able to verify if this is present in 2.94.0? | 18:32:22 |
goldstein | I’ll try, but I’ll probably need to build it first | 18:36:10 |
goldstein | it’s not in nixpkgs unstable and my system version is following main | 18:36:30 |
goldstein | so might take a bit | 18:36:39 |
aloisw | #455756: lixPackageSets.lix_2_94: init at 2.94.0, lixPackageSets.git: 2.94.0-pre-20251018_6e2edbff930d -> 2.95.0-pre-20251121_b707403a3080 (49118fdfb658807eb6d0daee0ac3bd02e189a228...0518f011db04993b1aba84f5861a0a8ca1a8c3d1)
✓ master: https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs
├ ✓ nixpkgs-unstable: https://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents
✓ nixos-unstable-small: https://hydra.nixos.org/job/nixos/unstable-small/tested#tabs-constituents
✓ nixos-unstable: https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents
It should be though? | 18:38:10 |
goldstein | I think unstable just didn’t move forward yet | 18:38:44 |
aloisw | The checkmarks should mean it has reached the channel, though. | 18:39:19 |
aloisw | aloisw@exodus ~> nix eval -f channel:nixos-unstable lixPackageSets.lix_2_94.lix
«derivation /nix/store/a0q89wap66v7y44gd71lrkql17a1n18k-lix-2.94.0.drv»
| 18:40:34 |
goldstein | okay, it’s just not in search for some reason | 18:41:10 |
goldstein | 1s | 18:41:12 |
goldstein | yeah, reproduces for me | 18:41:49 |
goldstein | * yeah, reproduces for me on 2.94 | 18:41:56 |