| 26 Aug 2021 |
Gytis Ivaskevicius | Also not related but nomination or two would be nice here as well ๐ https://github.com/NixOS/rfcs/pull/95 | 17:57:37 |
John Ericson | Gytis Ivaskevicius feel free to bow out, but do note the first thing I would do in such meetings is try to explain the thing and make things clearer โ not go straight into to deciding what we want to do with it. | 18:02:02 |
sterni | John Ericson: btw I noticed today that string context can't track dependencies on just derivations via string context without any outputs, I feel like that would be a required change for your thing to work | 18:03:00 |
sterni | i. e. context { "/my.drv" = { outputs = []; }; } is just reduced to context { } | 18:03:34 |
sterni | wait path = true maybe it works | 18:04:07 |
sterni | nvm | 18:04:37 |
tomberek | Not sure where to post this, but i thought here would be good: I've often wished for being able to chop up a mkDerivation into individual phases as derivations. Something like this would create more derivations, but they would be snapshot'd between phases. Eventually you can do something like filterSource on the configurePhase such that it doesn't have to be re-run for most changes to upstream.
chopIntoPhases = drv:
patchPhase = ... # drv built until patchPhase completes
configurePhase = ... # derivation that depends on "patchPhase" and performs a configurePhase"
... and so on
| 18:11:15 |
Gytis Ivaskevicius | I gave it some thought a while back and I feel like there are better alternatives. What usecases do you have in mind? | 18:14:05 |
Gytis Ivaskevicius | The real solution here is some sort of posix pipe with Nix which would allow to snapshot /build | 18:14:46 |
tomberek | One would be when iterating on tests. No need to re-do a very expensive compilePhase. | 18:14:55 |
tomberek | There are some packages for which the configurePhase is more expensive than anything else | 18:15:18 |
Gytis Ivaskevicius | devshell should take care of most of it? | 18:15:31 |
Gytis Ivaskevicius | what I would like to see is some better integration | 18:15:51 |
Gytis Ivaskevicius | stdenv rewrite anyone? with derivation splits and more ;) | 18:18:03 |
tomberek | yeah, that works as well. But having these be proper derivations is nice. Nix would handle the bookkeeping and i feel would be more robust than a shell. I don't think this should be applied by default everywhere, but in some cases it'd be nice. | 18:18:19 |
sterni | not really feasible without improving evaluation performance | 18:18:40 |
Gytis Ivaskevicius | actually i have not tried it but i may have perfect solution in mind | 18:19:08 |
Gytis Ivaskevicius | lets say we are building package abc and it fails | 18:19:18 |
sterni | * not really feasible without improving evaluation performance imo | 18:19:21 |
Gytis Ivaskevicius | nix build nixpkgs#abc --keep-failed
package fails
cd /tmp/failed/package/dir && nix develop nixpkgs#abc
| 18:20:06 |
Gytis Ivaskevicius | * nix build nixpkgs#abc --keep-failed
package fails
cd /tmp/failed/package/dir && nix develop nixpkgs#abc
| 18:20:11 |
Gytis Ivaskevicius | And I would imagine/hope that you would be able to just execute check phase | 18:20:29 |
Gytis Ivaskevicius | will need to give it a shot sometime | 18:20:46 |
Gytis Ivaskevicius | also if this works one could write up a little script with overlayfs to reenter that devshell environment inc ase it corrupts the state | 18:22:18 |
Gytis Ivaskevicius | (like without rebuild) | 18:22:22 |
| 27 Aug 2021 |
tomberek | anyone have thoughts on nix/5163? I'm not certain it is sound. | 02:11:57 |
| -(๐eloฯ)- left the room. | 04:16:00 |
| 28 Aug 2021 |
trofi | Would it make sense to move nix's build system to something more standard? (say, automake). Build failures like https://github.com/NixOS/nix/issues/5184 and https://github.com/NixOS/nix/issues/3087 are surprising to observe for a project that tries hard to maintain clean prefixed installs for other packages. | 08:52:04 |
Alyssa Ross | trofi: it was automake previously, and that was replaced with the current build system | 09:46:37 |
Alyssa Ross | if it gets replaced by anything it'll probably be meson, see https://github.com/NixOS/nix/pull/3160 | 09:48:13 |