Nixpkgs Architecture Team | 228 Members | |
| https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture | 53 Servers |
| Sender | Message | Time |
|---|---|---|
| 11 Jul 2022 | ||
| 12:39:14 | ||
| 12:45:26 | ||
| 12:45:49 | ||
| 12:49:24 | ||
| 13:31:16 | ||
| 15:18:42 | ||
| 18:48:48 | ||
In reply to @j-k:matrix.orgReally common for hash based directory structures to keep the amount of things in a directory smaller | 23:54:06 | |
| Because if you have a lot a lot of files in a directory listing that gets show | 23:54:32 | |
| * Because if you have a lot a lot of files in a directory listing that gets slow | 23:54:37 | |
| 12 Jul 2022 | ||
/nix/store laughs. | 00:42:06 | |
| But honestly it is generally better to let the storage system do something optimal. Especially for this case where the prefix will depend on human-chosen names. However we know at least that GitHub handles this poorly and that Git doesn't do anything clever at the moment. So we do need to meet our tools. | 00:43:23 | |
| /nix/store is stored locally, rarely listed and mostly accessed by the entry name. That's why we get get away with FS choosing optimal representation for it (hash tree usually). I wonder why such nested structure was chosen for logs though. | 05:40:25 | |
In reply to @kevincox:matrix.org I really like that idea. Especially as it allows to add a package by just dropping a file somewhere. Having to edit some Assuming overrides are still a thing at the time when this gets implemented, we'd have to find a new solution for the default
For example, if we have packages
/he/ll/foobar.nix could look like this:
| 08:47:07 | |
| If we have a flat package structure another question to answer would be, how are package name collisions treated. Where to put the python hello package, or the nodejs hello package, and how should those be named? | 08:55:56 | |
I'd expect to still have stuff like python3Packages | 08:56:29 | |
| Maybe in a special top-level directory | 08:56:36 | |
| Maybe we should have separate package sets? Like now we have packages from different ecosystems for Python, JS, Ruby, etc, we could keep them separate in separate folders, keeping the nesting structure inside (or not, depending on how they are being maintained). Then we could hook them up to the "root" package set via something like /py/th/python3Packages.nix | 09:37:32 | |
| This could also allow us to separate nixpkgs along these lines into separate repos, if needed. | 09:37:38 | |
| We could then still introduce "thematic" package sets later if needed (KDE, Gnome, "desktop apps" Congress to mind) | 09:40:05 | |
| If we go this way, we could consider putting stdenvs and their dependencies into separate "sets". | 11:45:35 | |
In reply to @k900:0upti.meOr just python3Packages is a "regular" package in terms of the first lookup. So maybe it is py/python3Packages.nix but then it can do it's own lookup, maybe using the same scheme or maybe using a different one. | 11:55:46 | |
| 13 Jul 2022 | ||
| Redacted or Malformed Event | 10:31:53 | |
| I noticed that I sparked quite a discussion π So I ideally would see:
| 10:35:37 | |
| 10:36:29 | |
| π | 10:36:36 | |
| I feel that having an all-packages.nix can't exist for performance reasons because we don't want to parse and evaluate this ever growing file. If you can just resolve an attr into a file and load it you avoid having to load that into memory and the cost is only the definitions of the closure. | 10:38:09 | |
| I wonder if we need overrides in nixpkgs. Maybe we can give every modified package a name and let the called package use that name. (basically no more I like the look of blueprints but how does this work for user-overrides? | 10:40:56 | |
| I think we should first provide options to not to use overwrites and maybe few years down the line we can remove those alltogether | 10:41:43 | |
I feel like we need something like overrideAttrs, but stuff like override should be exposed as (args) -> derivation functions | 10:41:54 | |