20 Aug 2021 |
Gytis Ivaskevicius | Yeah, im aware | 10:28:04 |
sterni (he/him) | Gytis Ivaskevicius: because they are not derivations | 10:28:09 |
Gytis Ivaskevicius | Yeah, obviously | 10:28:27 |
sterni (he/him) | they are fetched directly at eval time by the evaluator more or less | 10:28:33 |
Gytis Ivaskevicius | but why arent they derivations | 10:28:34 |
Gytis Ivaskevicius | Whats the exact "good practice" with these builtins? | 10:28:59 |
sterni (he/him) | well the main use case for this is that it's a bit better than ifd for pulling in eval dependencies | 10:29:38 |
Gytis Ivaskevicius | is it fine just ignore our pkgs.fetchXyz and use these | 10:29:43 |
sterni (he/him) | so if you want to do import (fetchgit { … }) you may need to bootstrap git at eval time | 10:29:55 |
sterni (he/him) | also fetchgit needs to come from somewhere | 10:30:09 |
sterni (he/him) | so this is needed for bootstrapping | 10:30:20 |
Gytis Ivaskevicius | In reply to @sternenseemann:systemli.org well the main use case for this is that it's a bit better than ifd for pulling in eval dependencies Is it better? I assume it does not block everything? | 10:30:22 |
sterni (he/him) | of course it's better as you never need to build anything | 10:30:51 |
Gytis Ivaskevicius | yeah but it does same old fetching. Result of that is more or less the same | 10:31:38 |
Gytis Ivaskevicius | I guess what I am thinking of is "Why Nix cant do anything on its own" I feel like fetchign a tar and extracting is very much in line of what package manager should be capable of | 10:33:41 |
sterni (he/him) | in effect maybe, but the difference is quite significant how it works | 10:33:55 |
Gytis Ivaskevicius | yeah | 10:34:02 |
sterni (he/him) | it can fetchTarball on its own? | 10:34:07 |
Gytis Ivaskevicius | This function fetches it but it is not a derivation which (atleast from my point of view) implies that it is internal builtin and should be strongly avoided for normal usecases | 10:39:03 |
Gytis Ivaskevicius | * This function fetches it but it is not a derivation which (atleast from my point of view) implies that it is internal builtin and should be avoided for normal usecases | 10:39:20 |
Gytis Ivaskevicius | Do you get what I mean? | 10:39:30 |
Gytis Ivaskevicius | * This function fetches it but it is not a derivation which (atleast from my point of view) implies that it is internal builtin and should be strongly avoided for normal usecases | 10:40:11 |
sterni (he/him) | that is the wrong thinking, I'd say. It has some properties and should consequently be used for the appropriate use cases | 11:58:40 |
sterni (he/him) | it shouldn't be used for fetching sources in most cases because it means that the sources will necessarily be fetched at compile time (since the store path needs to be created), here derivations are more appropriate because they can be instantiated and built later | 11:59:29 |
sterni (he/him) | if you need the fetch result at eval time, using builtin fetchers is much better | 11:59:43 |
sterni (he/him) | in a lot of cases this doesn't matter too much though, and in most cases where it matters its forbidden anyways (restricted eval limits it to certain urls, pure eval forbids it completely) | 12:01:01 |
Gytis Ivaskevicius | I feel like one of us misunderstands something. You said "that is the wrong thinking" but then basically agreed with me 🤔 | 13:20:37 |
Gytis Ivaskevicius | Anyways, what i do care about is why Nix is not able to do such things on its own, why cant Nix take care of git fetching or more importantly tarball fetch for our packages? 🤔 | 13:22:50 |
Gytis Ivaskevicius | Has there been any conversation on this? (I would imagine so 🤔) | 13:23:09 |
Gytis Ivaskevicius | Also i feel like trivial-builders.nix is somewhat similar. I feel like thats something that Nix itself should be able to do 🤔 | 13:24:09 |