!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

229 Members
https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture53 Servers

Load older messages


SenderMessageTime
20 Feb 2024
@szlend:matrix.orgszlend What's the purpose of the callPackage pattern really? Why does it expect a subset of packages as opposed to simply being the entire pkgs? Is it just so it can accept custom attributes? Some sort of performance reasons? 20:21:38
@szlend:matrix.orgszlendI know it does splicing as well, but that wasn't there originally right20:22:49
@k900:0upti.meK900It's a bit of a historical artifact20:23:12
@k900:0upti.meK900It doesn't really need to exist20:23:44
@Minijackson:matrix.orgMinijackson right now, I think callPackage allows us to do overrides, and things like withFeature ? true 20:26:22
@szlend:matrix.orgszlendI see yeah, I've always just found the pattern inconvenient. I'd basically have to name all the packages twice. If I no longer needed one, I would forget to remove it from the function arguments. When I started with nix I always assumed it was the way to track dependencies between packages, but that's obviously not how it works.20:27:01
@k900:0upti.meK900 The overrides bit is actually mkOverrideable 20:27:08
@k900:0upti.meK900One thing callPackage does that you can't get with just mkOverrideable and ... patterns is checking for invalid arguments20:28:24
@k900:0upti.meK900 Because e.g. ({ stdenv, foo, bar, ... }: { ... }) { stednv = ...; } is not an error 20:28:54
@k900:0upti.meK900 (same with override) 20:29:13
@szlend:matrix.orgszlend Personally I wish it was something more like ({pkgs, pythonPackages, crane}: ...). Basically package sets as inputs. Not sure where the extra args would fit in, but I always found it weird to mix these 20:33:40
@k900:0upti.meK900That style would be harder to override20:34:04
@Minijackson:matrix.orgMinijackson there was a proposition by amjoseph to pass pkgsOnBuild, pkgsOnHost, and so on: https://github.com/NixOS/nixpkgs/issues/227327 20:35:04
@Minijackson:matrix.orgMinijacksonmakes cross-compilation much better, overriding much harder20:35:24
@k900:0upti.meK900Yeah that's basically just the no splicing proposal20:35:34
@szlend:matrix.orgszlendGetting rid of is literally my #1 nixpkgs wishlist20:35:42
@szlend:matrix.orgszlend * Getting rid of splicing is literally my #1 nixpkgs wishlist20:35:48
@k900:0upti.meK900I think we will be able to move into that direction a lot easier after the by-name migration20:36:08
@szlend:matrix.orgszlend * Getting rid of splicing is literally #1 on my nixpkgs wishlist20:36:30
@k900:0upti.meK900 Because then we can just do package-v2.nix or whatever with the new API 20:36:39
@k900:0upti.meK900Without having to fight all-packages.nix merge conflicts for months20:36:59
@Minijackson:matrix.orgMinijackson note that weirdly enough, splicing is a solution to the flake packages.${arch} issue: https://github.com/szlend/nix-pkgset 20:37:02
@szlend:matrix.orgszlendYeah, this is just me trying to follow whatever patterns are established by nixpkgs because I didn't feel like reinventing the wheel20:37:39
@k900:0upti.meK900It's not20:37:44
@k900:0upti.meK900Well it kinda is20:37:51
@k900:0upti.meK900But it's still a hack20:37:55
@k900:0upti.meK900I have ideas but that's a conversation for much later20:38:06
26 Feb 2024
@philiptaron:matrix.orgPhilip Taron (UTC-8) infinisil: I'm on deck to take a look through your by-name PR today. It's hefty! 17:27:46
@infinisil:matrix.orginfinisil Philip Taron (UTC-8): Thanks and agreed! 17:29:10
@philiptaron:matrix.orgPhilip Taron (UTC-8)At work, we use a approve-commits model, instead of an approve-PR model, which makes the review process substantially lighter. I'm sad that GitHub doesn't let that happen, since I only get the chance to review the whole squashed PRs.17:30:02

Show newer messages


Back to Room ListRoom Version: 9