!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

962 Members
For people hacking on the Nix package manager itself204 Servers

Load older messages


SenderMessageTime
26 Aug 2021
@tomberek:matrix.orgtomberek

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:matrix.orgGytis IvaskeviciusI 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:matrix.orgGytis IvaskeviciusThe real solution here is some sort of posix pipe with Nix which would allow to snapshot /build18:14:46
@tomberek:matrix.orgtomberekOne would be when iterating on tests. No need to re-do a very expensive compilePhase.18:14:55
@tomberek:matrix.orgtomberekThere are some packages for which the configurePhase is more expensive than anything else18:15:18
@gytis-ivaskevicius:matrix.orgGytis Ivaskeviciusdevshell should take care of most of it?18:15:31
@gytis-ivaskevicius:matrix.orgGytis Ivaskeviciuswhat I would like to see is some better integration18:15:51
@gytis-ivaskevicius:matrix.orgGytis Ivaskeviciusstdenv rewrite anyone? with derivation splits and more ;)18:18:03
@tomberek:matrix.orgtomberekyeah, 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
@sternenseemann:systemli.orgsterninot really feasible without improving evaluation performance18:18:40
@gytis-ivaskevicius:matrix.orgGytis Ivaskeviciusactually i have not tried it but i may have perfect solution in mind18:19:08
@gytis-ivaskevicius:matrix.orgGytis Ivaskevicius lets say we are building package abc and it fails 18:19:18
@sternenseemann:systemli.orgsterni * not really feasible without improving evaluation performance imo18:19:21
@gytis-ivaskevicius:matrix.orgGytis Ivaskevicius

nix build nixpkgs#abc --keep-failed

package fails
cd /tmp/failed/package/dir && nix develop nixpkgs#abc

18:20:06
@gytis-ivaskevicius:matrix.orgGytis Ivaskevicius *

nix build nixpkgs#abc --keep-failed

package fails

cd /tmp/failed/package/dir && nix develop nixpkgs#abc

18:20:11
@gytis-ivaskevicius:matrix.orgGytis IvaskeviciusAnd I would imagine/hope that you would be able to just execute check phase18:20:29
@gytis-ivaskevicius:matrix.orgGytis Ivaskeviciuswill need to give it a shot sometime18:20:46
@gytis-ivaskevicius:matrix.orgGytis Ivaskeviciusalso if this works one could write up a little script with overlayfs to reenter that devshell environment inc ase it corrupts the state18:22:18
@gytis-ivaskevicius:matrix.orgGytis Ivaskevicius(like without rebuild)18:22:22
27 Aug 2021
@tomberek:matrix.orgtomberekanyone have thoughts on nix/5163? I'm not certain it is sound.02:11:57
@gilganix:matrix.org-(𝕂eloτ)- left the room.04:16:00
28 Aug 2021
@trofi:matrix.orgtrofiWould 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
@qyliss:fairydust.spaceAlyssa Rosstrofi: it was automake previously, and that was replaced with the current build system09:46:37
@qyliss:fairydust.spaceAlyssa Rossif it gets replaced by anything it'll probably be meson, see https://github.com/NixOS/nix/pull/316009:48:13
@trofi:matrix.orgtrofiAha, makes sense.09:55:08
@Las:matrix.orgLasBut Meson needs Python10:25:25
@Las:matrix.orgLasI really hope it doesn't get replaced10:25:29
@Las:matrix.orgLasPerhaps added, but not replaced10:25:32
@trofi:matrix.orgtrofii think nix already needs rust,boost,jq,brotli,gtest,s3 bindings,curl. is python really an issue?11:27:26
@qyliss:fairydust.spaceAlyssa Rossstable nix does not need rust12:23:13

Show newer messages


Back to Room ListRoom Version: 6