| 8 Mar 2024 |
nbp | S.O.S. then grafting 🙄 | 18:17:15 |
infinisil | I'll personally finish pkgs/by-name first, then improving it to also be usable for multiple package versions and other package sets :) | 18:18:27 |
Minijackson | about pkgs/by-name, is there a way to use that pattern outside of nixpkgs? Are the utility functions exported somewhere? | 18:20:03 |
Minijackson | I think it'd be a really nice improvements in my own projects | 18:20:34 |
infinisil | Minijackson: You can fairly easily use the basic pattern. The tricky bit is ensuring it's correct, though even that can be implemented fairly easily just in Nix. Nixpkgs has unique constraints that make it much trickier to do that | 18:22:11 |
infinisil | Minijackson: This is the most basic thing you could use/copy: https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/by-name-overlay.nix
The sharding doesn't make a lot of sense when you don't have a lot of packages, so I recommend just removing that for personal use
| 18:23:16 |
infinisil | Really at that point it's just a mapAttrs (name: _: callPackage (./ + "${name}") { }) (readDir ./.) | 18:23:56 |
infinisil | Fairly standard pattern already :) | 18:24:08 |
Minijackson | thanks a lot! | 18:24:27 |
| @julienmalka:matrix.org joined the room. | 18:39:37 |
| @janik0:matrix.org joined the room. | 18:55:10 |
| jakegrin joined the room. | 19:30:57 |
| rick.special joined the room. | 19:31:35 |
| @me:indeednotjames.com joined the room. | 19:40:34 |
@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? | 20:46:54 |
@jade_:matrix.org | Related 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-L162 | 20:49:33 |
@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 | 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 | That said, I don't think makeExtensible has any benefit over makeScope | 20:50:51 |
Qyriad | 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 | ^^^ this is something we really do need docs on | 20:51:25 |
infinisil | The splicing version works with cross compilation | 20:51:28 |
infinisil | Though it's super unintuitive to use 😅 | 20:51:44 |
@jade_:matrix.org | I 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 | jade_: Very recent! https://github.com/NixOS/nix.dev/pull/935 | 20:53:06 |
@jade_:matrix.org | "how are packages composed together in nixpkgs at a higher level than mkDerivation" | 20:53:11 |
@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 | Yeah that too 😅 | 20:53:38 |
infinisil | I'll take any docs at this point! | 20:53:43 |
infinisil | jade_: Oh wait did you see https://github.com/NixOS/nixpkgs/pull/294194? | 20:54:24 |