!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

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

Load older messages


SenderMessageTime
8 Mar 2024
@me:indeednotjames.com@me:indeednotjames.com joined the room.19:40:34
@jade_:matrix.org@jade_:matrix.orgI just filed: https://github.com/NixOS/nixpkgs/pull/294353 In writing this I realized that we have both makeExtensible and makeScope. Is there any reason to use makeScope over makeExtensible? Have we written down somewhere secret which one to use in which cases?20:46:54
@jade_:matrix.org@jade_:matrix.orgRelated question: in things like the nix packaging, what is the best practice for exposing internals like the boehmgc-nix package while avoiding unnecessarily confusing users with bonus attributes they probably don't care about? https://github.com/nixos/nixpkgs/blob/9080c3655bf8094f99c8c7cb548fd0ee75928260/pkgs/tools/package-management/nix/default.nix#L17-L16220:49:33
@jade_:matrix.org@jade_:matrix.org (specifically, I want to do a refactor where you can actually use the Nix common here from outside nixpkgs, which is currently not possible) 20:50:11
@infinisil:matrix.orginfinisil
In reply to @jade_:matrix.org
I just filed: https://github.com/NixOS/nixpkgs/pull/294353

In writing this I realized that we have both makeExtensible and makeScope. Is there any reason to use makeScope over makeExtensible? Have we written down somewhere secret which one to use in which cases?
makeScope allows nested scopes to be created that somewhat compose
20:50:29
@infinisil:matrix.orginfinisil That said, I don't think makeExtensible has any benefit over makeScope 20:50:51
@qyriad:katesiria.orgQyriad there is also makeScopeWithSplicing, I definitely don't think there is documentation on which of the three to use in what cases 20:51:03
@jade_:matrix.org@jade_:matrix.org^^^ this is something we really do need docs on20:51:25
@infinisil:matrix.orginfinisilThe splicing version works with cross compilation20:51:28
@infinisil:matrix.orginfinisilThough it's super unintuitive to use 😅20:51:44
@jade_:matrix.org@jade_:matrix.orgI think I have accidentally written the only public documentation on it in https://jade.fyi/blog/flakes-arent-real/ and I think the wiggles callPackage docs still didn't get picked out? can't recall. Anyway our whole callPackage and fixed points stuff really needs some better exposure and docs.20:52:33
@infinisil:matrix.orginfinisil jade_: Very recent! https://github.com/NixOS/nix.dev/pull/935 20:53:06
@jade_:matrix.org@jade_:matrix.org"how are packages composed together in nixpkgs at a higher level than mkDerivation"20:53:11
@jade_:matrix.org@jade_:matrix.org
In reply to @infinisil:matrix.org
jade_: Very recent! https://github.com/NixOS/nix.dev/pull/935
ah, but there should be reference docs for that!
20:53:21
@infinisil:matrix.orginfinisilYeah that too 😅20:53:38
@infinisil:matrix.orginfinisilI'll take any docs at this point!20:53:43
@infinisil:matrix.orginfinisil jade_: Oh wait did you see https://github.com/NixOS/nixpkgs/pull/294194? 20:54:24
@jade_:matrix.org@jade_:matrix.orgPart of the problem is that there is some NAT responsibility here, since it is in NAT purview which one should be used, and so that guidance falls on NAT, somewhat blocking the nixpkgs-dev-guide level docs20:54:50
@jade_:matrix.org@jade_:matrix.org
In reply to @infinisil:matrix.org
jade_: Oh wait did you see https://github.com/NixOS/nixpkgs/pull/294194?
omg recent!
20:54:59
@jade_:matrix.org@jade_:matrix.orgi like that20:55:01
@jade_:matrix.org@jade_:matrix.orgI can file a bug if that's helpful20:55:34
@infinisil:matrix.orginfinisil
In reply to @jade_:matrix.org
Part of the problem is that there is some NAT responsibility here, since it is in NAT purview which one should be used, and so that guidance falls on NAT, somewhat blocking the nixpkgs-dev-guide level docs
My thoughts on that is that there's a delicate balance between actually fixing the root problems and getting side-tracked
20:55:50
@jade_:matrix.org@jade_:matrix.orgyeah20:55:58
@infinisil:matrix.orginfinisil (and makeScope and co seems like a side-track to me) 20:56:14
@jade_:matrix.org@jade_:matrix.org

we do still have:

  • busted ecosystem specific fixed points re mkDerivation
  • busted ecosystem specific makeScope implementations and conventions
20:56:38
@jade_:matrix.org@jade_:matrix.orghttps://github.com/nixpkgs-architecture/issues/issues/21 there is this already i suppose20:57:21
@qyriad:katesiria.orgQyriad The Nix docs need to service people reading code as well as writing it, and if you're trying to figure out how Nixpkgs works — generally the only way to do that right now is by reading the source — you're going to encounter makeScope and friends, and they show up in a lot of critical places. 20:57:37
@qyriad:katesiria.orgQyriad A guide on using them correctly is not particularly urgent, I agree, but right they are now confusing, which is a state to escape from 20:58:40
@jade_:matrix.org@jade_:matrix.orgI guess my issue with the writing of the docs is that there are multiple ways of doing it and I don't want to step on toes or reveal unknown-to-me consensus while doing it and have to rewrite what I'm doing heh.20:59:05
@qyriad:katesiria.orgQyriadSelf-fufilling prophecy 😔20:59:36

Show newer messages


Back to Room ListRoom Version: 9