| 6 Oct 2023 |
infinisil | Merged it myself, it's small enough and I tested it well enough that I felt confident doing that :) | 03:35:32 |
| 9 Oct 2023 |
Artturin | infinisil: Lol your pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/pkgs/by-name/fo/foo/package.nix/default.nix pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix tests cause errors in nixpkgs-lint https://github.com/nix-community/nixpkgs-lint/blob/master/src/find.rs | 07:10:19 |
Artturin | * infinisil: Lol your pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/pkgs/by-name/fo/foo/package.nix/default.nix pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix tests cause errors in nixpkgs-lint https://github.com/nix-community/nixpkgs-lint/blob/6af572ac6994d9919bcb54578eb8430bcbf1f6e0/src/find.rs | 07:29:33 |
Artturin | * infinisil: Lol your pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/pkgs/by-name/fo/foo/package.nix/default.nix pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix tests cause errors in nixpkgs-lint https://github.com/nix-community/nixpkgs-lint/blob/6af572ac6994d9919bcb54578eb8430bcbf1f6e0/src/find.rs
fixed https://github.com/nix-community/nixpkgs-lint/commit/f56d5c4efb3bb3cdb2ab46fda8c598105d6e8af1
| 07:35:04 |
infinisil | In reply to @artturin:matrix.org
infinisil: Lol your pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/pkgs/by-name/fo/foo/package.nix/default.nix pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix tests cause errors in nixpkgs-lint https://github.com/nix-community/nixpkgs-lint/blob/6af572ac6994d9919bcb54578eb8430bcbf1f6e0/src/find.rs
fixed https://github.com/nix-community/nixpkgs-lint/commit/f56d5c4efb3bb3cdb2ab46fda8c598105d6e8af1
Haha nice | 07:55:42 |
| 10 Oct 2023 |
| @cafkafk:gitter.im changed their display name from Christina Sørensen to cafkafk. | 03:39:06 |
| @cafkafk:gitter.im changed their profile picture. | 03:39:26 |
| 11 Oct 2023 |
@piegames:matrix.org | inherit (callPackage ../desktops/gnome/extensions { })
gnomeExtensions
gnome38Extensions
gnome40Extensions
gnome41Extensions
gnome42Extensions
gnome43Extensions
gnome44Extensions
gnome45Extensions
;
I find this a bit silly, since I'm simply inheriting all attributes from the attrset. This is noisy, adds churn and is error-prone.
I know that using something like by-name isn't a thing yet for package sets, but why couldn't I just // (callPackage ../desktops/gnome/extensions { }) to the attrset instead? Much simpler and less pain to maintain
| 14:35:32 |
infinisil | piegames: That would give you infinite recursion, because the attribute names of an overlay now depends on final | 14:36:15 |
@piegames:matrix.org | Ah and also as I've recently learned, the above is sub-optimal in the current Nix interpreter, because it will stupidly re-do the callPackage import for every single attribute | 14:36:20 |
@piegames:matrix.org | In reply to @infinisil:matrix.org piegames: That would give you infinite recursion, because the attribute names of an overlay now depends on final Um, I don't understand that | 14:36:38 |
infinisil | piegames: I guess here's a way to show the problem: What if the gnome extensions set defines callPackage = ? | 14:40:02 |
@piegames:matrix.org | Hm, fair. Can we somehow prevent that with some infrastructure? Some helper function which says "import everything from here into our attrset, and make sure to use super.callPackage to avoid infinite recursion" | 14:42:49 |
@piegames:matrix.org | On the other hand, shouldn't this still work as long as the package set doesn't define a callPackage? Because stuff is lazy etc. | 14:43:28 |
@piegames:matrix.org | Well, attribute names are not, but still | 14:43:39 |
infinisil | Actually lazy attribute sets would allow this: https://github.com/NixOS/nix/issues/4090 | 14:43:59 |
infinisil | piegames: It can't now whether it defines a callPackage without evaluating it | 14:44:25 |
tomberek | lazy attrsets... lazy attsets ... lazy attrsets. Or __getter (https://github.com/NixOS/nix/issues/8187#issuecomment-1501258036) or builtins.mkProxy..... or something | 14:45:43 |
@piegames:matrix.org | Hm, are there any other ways to solve my current problem? | 14:45:53 |
@piegames:matrix.org | How does by-name work around this? | 14:46:01 |
@piegames:matrix.org | While I do approve of the function-as-attrset idea, I have a very strong aversion towards underscoreunderscore magic attribute names, and generally want to see less of them in the language | 14:47:29 |
infinisil | piegames: The attribute names of pkgs/by-name don't depend on final, they're only computed using lib | 15:28:58 |
infinisil | See https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/by-name-overlay.nix | 15:29:17 |
@piegames:matrix.org | but it does self.callPackage? | 15:30:10 |
infinisil | piegames: It doesn't need that to compute the attribute names though | 15:31:47 |
infinisil | It's only the attribute values defined using callPackage, which is the same as all-packages.nix | 15:32:15 |
tomberek | making it a builtin is another way to do it | 15:33:07 |
@piegames:matrix.org | But what is one puts some by-name/callPackage in there? (hypothetically) | 15:34:39 |
infinisil | piegames: The order of overlays would determine which one gets the final (hah) say: https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/stage.nix#L284-L295 | 15:37:49 |
@piegames:matrix.org | So my idea would work if I represent it as an overlay? | 15:38:17 |