| 7 May 2025 |
SomeoneSerge (back on matrix) | Oh riiight we had multiple cudnns in each package sets and applying fixups to all of them 😅 | 22:25:08 |
connor (burnt/out) (UTC-8) | Oh god right | 22:32:51 |
SomeoneSerge (back on matrix) | Couple days to the feature freeze, perfect time to remove some public attributes | 22:33:42 |
connor (burnt/out) (UTC-8) | Welp, time to figure out how I managed to break the multiplexing builder | 22:34:16 |
connor (burnt/out) (UTC-8) | derp | 22:40:42 |
connor (burnt/out) (UTC-8) | diff --git a/pkgs/top-level/cuda-packages.nix b/pkgs/top-level/cuda-packages.nix
index fc4beb3cea0d..a4a8086c7bf1 100644
--- a/pkgs/top-level/cuda-packages.nix
+++ b/pkgs/top-level/cuda-packages.nix
@@ -40,7 +40,7 @@ let
# Utilities
mkVersionedPackageName =
- name: version: "name_${lib.replaceStrings [ "." ] [ "_" ] (lib.versions.majorMinor version)}";
+ name: version: name + "_" + lib.replaceStrings [ "." ] [ "_" ] (lib.versions.majorMinor version);
in
{
config,
| 22:40:45 |
connor (burnt/out) (UTC-8) | SomeoneSerge (UTC+U[-12,12]): you okay with me merging https://github.com/NixOS/nixpkgs/pull/405031? | 22:51:56 |
SomeoneSerge (back on matrix) | Si por favor | 22:57:06 |
SomeoneSerge (back on matrix) | connor (he/him) (UTC-7): do you think we're creating more confusion by renaming fixups? | 23:04:29 |
connor (burnt/out) (UTC-8) | I like(d) the name fixups because it's distinct from "override" (and all the connotations that carries); I wanted something that gets at the fact the generic builder will get you most of the way to a working package, and that these functions provide the fixes required to go all the way. | 23:07:09 |
connor (burnt/out) (UTC-8) | Since callPackage is the thing adding .override, I also wanted to steer clear of calling them that because they're supplied to .overrideAttrs and not .override. | 23:07:59 |
connor (burnt/out) (UTC-8) | It does seem that the current practice in tree is to call them overrides; honestly I'm not sure that anyone is really digging into the CUDA packaging outside of a few people in this room ;) | 23:08:39 |
SomeoneSerge (back on matrix) | Well that's exactly how lua and node "overrides" are used | 23:10:03 |
SomeoneSerge (back on matrix) | But the ordering (potential lack of commutativity) issues and the fact they are matched on pname rather than on attribute name has me hesitating | 23:11:01 |
SomeoneSerge (back on matrix) | Another note: node-packages/overrides.nix uses .override all over, whereas lua-modules/overrides.nix makes a mixed usage of .overrideAttrs and .override. Moreover, if I were to type the content of such an overrides.nix file, I'd say that it evaluates into an "overlay", which I'd say is another word for "extension" in the sense of composeMultipleExtensions | 23:13:23 |
connor (burnt/out) (UTC-8) | Ah yeah, they are typically overlays, and I agree that overlay is synonymous with extension | 23:15:25 |
SomeoneSerge (back on matrix) | Do "overlays"/"extensions" consist of "overrides"? Well not quite, because we cannot easily take an overlay: Overlay and extract an o: Override that can be applied to a particular package: p.override o. | 23:16:16 |
SomeoneSerge (back on matrix) | If you know in advance all of the names you need to put in prev for the overlay not to throw exception, you could in principle extract them, but that's kind of stretched | 23:17:12 |
SomeoneSerge (back on matrix) | I think I convinced myself that overrides.nix neither are "overrides" nor consist of "overrides" | 23:17:51 |
SomeoneSerge (back on matrix) | So maybe we keep your name and call it a day | 23:18:03 |
connor (burnt/out) (UTC-8) | isn't that similar to what it does currently here https://github.com/NixOS/nixpkgs/blob/293a5c5051586eb28a7eb42ff2dc4fd9943258ed/pkgs/development/cuda-modules/cuda/overrides.nix#L2-L28? | 23:18:45 |
SomeoneSerge (back on matrix) | Well here overrides.nix are already called with a valid prev | 23:20:01 |
connor (burnt/out) (UTC-8) | OH | 23:20:12 |
connor (burnt/out) (UTC-8) | Ah okay I see what you mean | 23:20:17 |
SomeoneSerge (back on matrix) | But it's a good point that previously cuda's overrides.nix was used both for overrides and for new definitions | 23:21:31 |
SomeoneSerge (back on matrix) | I guess now these all can go to fixups/ and packages/ resp. | 23:21:46 |
connor (burnt/out) (UTC-8) | In the cuda-packages rework, packages exists for things which must be built explicitly because they're not from a manifest (e.g., nccl and cudnn-frontend) -- all the packages which come from manifest files are added implicitly by way of traversing the manifest and transforming it into packages. | 23:25:37 |
SomeoneSerge (back on matrix) | Sure, and "must be built explicitly" = "new definitions"? | 23:26:18 |
connor (burnt/out) (UTC-8) | At the least, I'd say "not in a manifest" -> "must be built explicitly"
Does "new definitions" mean things added by an extension, or something else | 23:27:46 |
SomeoneSerge (back on matrix) | Well in the context of what used to be something-like-an-overlay | 23:30:41 |