New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add recurseOnHydra function #43670
Add recurseOnHydra function #43670
Conversation
This has similar behavior to recurseIntoAttrs. The main difference is that nix-env -qa is not affected. These attribute sets will be built on Hydra but not listed on nix-env -qa. Most of the time this is what is wanted.
This will significantly improve times to run ‘nix-env -qa’. Instead of using recurseIntoAttrs we use recurseOnHydra. This is usually what is desired. $ time nix-env -qa -f before >/dev/null 8.319 secs $ time nix-env -qa -f after >/dev/null 3.805 secs
recurseIntoAttrs only affects nix-env so it should not break anything. These recurseIntoAttrs uses were causing duplicates see (NixOS#39563).
But that also means those packages are all undiscoverable now? |
Yes but you can always do |
These either had no effect or didn’t make sense in the context.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if all this belongs in all-packages or release.nix.
/cc @grahamc Does this impact the ofborg evaluation checker?
@@ -45,7 +49,7 @@ with pkgs; | |||
by Hydra. | |||
''; | |||
|
|||
tests = recurseIntoAttrs (callPackages ../test {}); | |||
tests = callPackages ../test {}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does release.nix recurse these? they are referenced by the constituent jobsets so this would cause evaluation errors if that's not the case
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry my bad
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it definitively shouldn't be recursed for nix-env tho, nobody is going to want to install cc-wrapper-test
. 😄
Yeah I kind of like just putting it in release.nix now that I think about it. I think there is definitely a case to be made for including these into |
We already hide some stuff and 8s is definitively too slow IMHO. What about adding something like a |
Unfortunately this has broken evaluation, it seems to never terminate.
|
My concern (beyond it breaking nix-env / ofborg) is now it isn't an easy list of packages which are hidden (oh you want haskell? here. oh, you want r? here.), but a massive list of packages. We haven't suitably solved the discoverability problem with the easy to remember list, and I think we should try to solve that before expanding the list of secret, hidden, hard to find, hard for new users, package list. |
Sometimes, perhaps, but in case of the package sets that's not true; users want to be able to find packages.
Search times for users are improved with the
Correct |
an example of how the current situation is very easy to remember |
Closing for now. I think a better approach is to slowly move |
Motivation for this change
This has similar behavior to recurseIntoAttrs. The main difference is
that nix-env -qa will not find the attributes. These attribute sets will be built
on Hydra but not listed on nix-env -qa. Most of the time this is what
is actually wanted. On the downside they become less discoverable
in
nix-env -qa
output.This will significantly improve times to run ‘nix-env -qa’.
$ time nix-env -qa -f before >/dev/null
8.319 secs
$ time nix-env -qa -f after >/dev/null
3.805 secs